PVRVFrame - old bugs - ES2

The follwing two bugs are still present in PVRVFrame (also tested on 2.8.28.*).

1. After using the glGetBooleanv(GL_SHADER_COMPILER,… some gl calls involving shaders starts to generate errors.

GLboolean bShaderCompiler = GL_FALSE;
glGetBooleanv(GL_SHADER_COMPILER, &bShaderCompiler); // bShaderCompiler=GL_TRUE, err=GL_NO_ERROR
GLuint vsh = glCreateShader(GL_VERTEX_SHADER); // err=GL_NO_ERROR
GLuint fsh = glCreateShader(GL_FRAGMENT_SHADER); // err=GL_NO_ERROR
GLboolean b1 = glIsShader(vsh); // err=GL_INVALID_ENUM !!!
// PVRVFrame: "In glIsShader error: 500 (GL_INVALID_ENUM) : (null)"
GLboolean b2 = glIsShader(fsh); // err=GL_NO_ERROR
if (b1) glDeleteShader(vsh); // err=GL_NO_ERROR
if (b2) glDeleteShader(fsh); // err=GL_NO_ERROR
In the above example even a glIsShader generates an GL_INVALID_ENUM.
Note that glIsShader should not rise any error flags no matter of the
input param. Also, before that call glGetError returns GL_NO_ERRROR.

2.  glReleaseShaderCompiler should only generate GL_INVALID_OPERATION if a shader compiler is not supported. But, shader compiler is supported. glGetBooleanv(GL_SHADER_COMPILER, &mbShaderCompiler); returns mbShaderCompiler=GL_TRUE and other shader related gl calls works too.

glReleaseShaderCompiler(); // err=GL_INVALID_OPERATION !!!
// PVRVFrame: "In glReleaseShaderCompiler error: 502 (GL_INVALID_OPERATION) : this function is not yet supported by the emulator"

Hi diafera,

Thank you for your bug report! I’ve submitted a bug into our internal bug tracker for this and your other reports (BRN34824).