Imagination PowerVR SDK Blog

GL_POINT_SIZE_ARRAY_OES related BUG under Windows


#1

First call with GL_POINT_SIZE_ARRAY_OES i.e. glIsEnabled(GL_POINT_SIZE_ARRAY_OES) causes an instability in Windows emulation libraries 2.07.27.0484.
Instead of GLboolean value, above call returns 0xf0, but the glGetError() returns GL_NO_ERROR.
Then, first subsequent call to glTexImage2D with correct parameter values returns GL_INVALID_ENUM.
Finally any subsequent call related to GL_POINT_SIZE_ARRAY_OES and glTexImage2D does not cause any problems.




Run this code after initialization:

 

GLboolean result = glIsEnabled(GL_POINT_SIZE_ARRAY_OES); //the value of result is always 0xf0, you can check if it is GL_TRUE or GL_FALSE - in this case it is not.

 

GLuint tmp = 0;

glGenTextures(1, &tmp);

glBindTexture(GL_TEXTURE_2D, tmp);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);

GLenum error = glGetError(); //the value of error will be GL_INVALID_ENUM;

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);

error = glGetError(); //the value of error will be GL_NO_ERROR

 

This is also the workaround of this issue. After execution of this snippet you can use calls related to GL_POINT_SIZE_ARRAY_OES without problems.

 

Best Regards.

#2

thanks very much for you report we will be looking at that shortly.