更新到 iOS 10 后,我的图像处理应用在配备 A7 芯片的设备(iPhone 5s 和 iPad Mini 2 测试)上的行为非常奇怪:
渲染需要很长时间并且会产生损坏的结果。 Instruments 揭示了一些 glDrawElements 调用返回 GL_INVALID_OPERATION 。不过,我无法找出原因。
相同的代码在较新的设备(A8 和更好的设备)和 iOS 9 的所有设备上运行良好。Apple 是否改变了我不知道的事情?
更多背景信息:
- 我部分使用
GL_HALF_FLOAT_OES 类型的纹理
- 我使用
EXT_color_buffer_half_float 扩展来渲染这些纹理
- 我使用
EXT_shader_framebuffer_fetch 扩展来就地处理一些过滤器中的像素
Best Answer-推荐答案 strong>
事实证明,我只是在一些着色器(例如 gl_FragColor.rg = vec2(1.0, 0.0); )中部分分配了 gl_FragColor ,这导致iOS 10 中的错误行为。不过,可能仅与 GL_HALF_FLOAT_OES 类型的渲染目标结合使用。
当我总是分配完整的向量时(即使其他部分未使用......),它就像一个魅力。
关于ios - iOS 10 中 A7 设备上的 OpenGL 错误,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39534245/
|