像素缓冲区对象,gReadPixels和GL_UNSIGNED_INT_8_8_8_8_REV

时间:2015-04-05 17:23:17

标签: macos opengl driver

我无法获得像素缓冲区对象,使用GL_PIXEL_PACK_BUFFER在OS X 10.10上使用像素缓冲区使异步glReadPixels正常工作(但是它有效但没有加速)。

我从glReadPixels中的GL_UNSIGNED_BYTE切换到GL_UNSIGNED_INT_8_8_8_8_REV

glReadPixels从20ms降至0.6毫秒 - 换句话说,它开始真正意义上的异步工作。

我的问题是: 将GL_UNSIGNED_INT_8_8_8_8_REV设置为像素格式是否可以在其他mac系统上运行,还是需要对它们进行全部测试?

1 个答案:

答案 0 :(得分:0)

如果您想确信它在所有配置上都能表现良好,那么您必须全部测试它们。如果特定路径缓慢或快速,它通常取决于GPU供应商。不同GPU代的驱动程序之间的结果也可能不同,甚至可以从软件版本更改为软件版本。

您在这个具体示例中测量的内容非常奇怪。 GL_UNSIGNED_BYTEGL_UNSIGNED_INT_8_8_8_8_REV实际上是小端机器上的相同格式。没有充分的理由为什么其中一个应该比另一个更快。在检查是否可以使用快速路径时,这很可能只是一个遗漏。