iOS 10 中 A7 设备上的 OpenGL 错误
OpenGL errors on A7-devices in iOS 10
更新到 iOS 10 后,我的图像处理应用程序在带有 A7 芯片的设备上表现非常奇怪(iPhone 5s 和 iPad Mini 2 测试):
渲染需要很长时间并且产生了错误的结果。 Instruments 揭示了一些 glDrawElements
调用 return 与 GL_INVALID_OPERATION
。不过,我无法找出原因。
相同的代码在较新的设备(A8 和更好的设备)和 iOS 中的所有设备上运行得非常好 9. Apple 是否改变了我不知道的东西?
更多背景信息:
- 我部分使用
GL_HALF_FLOAT_OES
类型的纹理
- 我使用
EXT_color_buffer_half_float
扩展来渲染这些纹理
- 我使用
EXT_shader_framebuffer_fetch
扩展来就地处理我的一些过滤器中的像素
事实证明,我只是在我的一些着色器(例如,gl_FragColor.rg = vec2(1.0, 0.0);
)中部分分配了 gl_FragColor
,这导致了 iOS 10 中的错误行为。可能仅在不过,与 GL_HALF_FLOAT_OES
类型的渲染目标相结合。
当我总是分配完整向量时(即使其他部分未使用......),它就像一个魅力。
更新到 iOS 10 后,我的图像处理应用程序在带有 A7 芯片的设备上表现非常奇怪(iPhone 5s 和 iPad Mini 2 测试):
渲染需要很长时间并且产生了错误的结果。 Instruments 揭示了一些 glDrawElements
调用 return 与 GL_INVALID_OPERATION
。不过,我无法找出原因。
相同的代码在较新的设备(A8 和更好的设备)和 iOS 中的所有设备上运行得非常好 9. Apple 是否改变了我不知道的东西?
更多背景信息:
- 我部分使用
GL_HALF_FLOAT_OES
类型的纹理 - 我使用
EXT_color_buffer_half_float
扩展来渲染这些纹理 - 我使用
EXT_shader_framebuffer_fetch
扩展来就地处理我的一些过滤器中的像素
事实证明,我只是在我的一些着色器(例如,gl_FragColor.rg = vec2(1.0, 0.0);
)中部分分配了 gl_FragColor
,这导致了 iOS 10 中的错误行为。可能仅在不过,与 GL_HALF_FLOAT_OES
类型的渲染目标相结合。
当我总是分配完整向量时(即使其他部分未使用......),它就像一个魅力。