【发布时间】:2021-05-21 14:16:30
【问题描述】:
我有一个使用 OpenGL 绘制输出图像的应用程序。出于测试目的,我正在尝试创建参考图像,然后使用精度散列将它们与程序输出进行比较。虽然它在单台计算机的环境中完美运行,但在运行不同 GPU 的计算机上使用相同的方法时,我遇到了奇怪的问题。虽然在不同 GPU 上生成的图像看起来与人眼完全相同,但它们在相互比较时无法通过精度哈希测试,并且逐像素比较表明有几个像素“关闭”。几天来,我一直试图在我的代码中找到问题,但无济于事,这种行为在我使用的所有着色器上都表现出来。这可能是由于不同硬件制造商的 OpenGL 实现不同造成的吗?将在不同 GPU 上生成的图像与 phash 进行比较以进行测试是一种有效的方法吗?
【问题讨论】:
-
在 OpenGL 中定义的实现有很多东西,所以是的,不同 GPU 上的结果可能会有所不同,具体取决于您所做的事情。他们甚至可能在具有不同驱动程序版本的同一个 GPU 上进行延迟。