我在PowerVR GPU上调用glDrawElements
后遇到了GL_OUT_OF_MEMORY
错误。这发生在以下设备上:
- 摩托罗拉Atrix 2与库存4.0 (PowerVR SGX540)
- 技嘉GSmart GS202,库存4.x(PowerVR SGX531u) 一些
- 带有库存4.x的LG手机(也带有一些PowerVR芯片)。
根据glDrawElements
规格,它根本不会导致GL_OUT_OF_MEMORY
错误,但我肯定会在PowerVR硬件上收到此错误。
这是由 ETC1 纹理实现中的一些错误引起的。如果我使用尺寸为1x1像素的ETC1纹理,则会导致PowerVR GPU上的此错误。我已经使用 4x4 纹理(ETC1 最小块的大小)修复了它。
如果 ETC1 纹理与 mipmap 一起使用,则不会重现此问题 - 在这种情况下,它适用于所有 mipmap。