PowerVR - glDrawElements上的GL_OUT_OF_MEMORY

问题描述:

我在PowerVR GPU上调用glDrawElements后遇到GL_OUT_OF_MEMORY错误。这发生在以下设备:PowerVR - glDrawElements上的GL_OUT_OF_MEMORY

  • 摩托罗拉Atrix 2与股票4.0(的PowerVR SGX540)
  • 技嘉GSmart GS202与股票4.x版(PowerVR的SGX531u)
  • 一些LG手机与股票4.x版(还有一些PowerVR芯片)。

根据glDrawElements specs它根本不会导致GL_OUT_OF_MEMORY错误,但我肯定会在PowerVR硬件上发生此错误。

这是由ETC1纹理实现中的一些错误引起的。如果我使用尺寸为1x1像素的ETC1纹理,则会在GPU上产生PowerVR上的此错误。我已经通过使用4x4纹理(ETC1最小块的大小)来修复它。

如果ETC1纹理与mipmap一起使用,则不会复制此问题 - 在本例中,它适用于所有mipmap。