Hi, I’m facing many issues trying to run some OpenGL ES 3.0 code on a PowerVR 6430 (device = Asus Fonepad 7)
One of this issues happens while trying to use the GL_EXT_separate_shader_objects feature.
I first compile a shader as usual, then call glCreateProgram()
then try to set it as SEPARABLE raise an error code 0x500
GLuint ui_ProgramId = glCreateProgram();
ReportError( “glCreateProgram” );
glProgramParameteri( ui_ProgramId, GL_PROGRAM_SEPARABLE, GL_TRUE);
ReportError( “ProgramParameteri GL_PROGRAM_SEPARABLE” );
All of this is running fine on Windows platform (AMD, NVidia, Intel), and Android (Intel, Qualcomm, Mali) devices I can use.
re-re-taking a look at glProgramParameteri documentation states that in OpenGL ES 3.0, the only valid argument is GL_PROGRAM_BINARY_RETRIEVABLE_HINT
so this error (InvalidEnum) is valid
BUT as the driver reports the implementation of GL_EXT_separate_shader_objects, I understand that calling glProgramParameteri with GL_PROGRAM_SEPARABLE as argument should be valid, am I wrong ?
It works on everything I tried before, and if it’s not legal, how can I use the GL_PROGRAM_SEPARABLE feature without telling the driver via a call to glProgramParameteri ?
Hi Ronan,
Please try calling the extension version of the function “ProgramParameteriEXT”, as detailed in the spec: www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt
Kind regards,
Paul.
Thank you very much Paul, it works fine now
(other vendor implementation, I mean using the base ProgramParameteri function is easier to use, only one function)
Thanks again