GL_EXT_separate_shader_objects issue in OpenGL ES 3.0

This topic contains 2 replies, has 2 voices, and was last updated by  RonanBel 3 years ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #31907


    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:

    Kind regards,



    Thank you very much Paul, it works fine now :smiley:
    (other vendor implementation, I mean using the base ProgramParameteri function is easier to use, only one function)
    Thanks again 🙂

Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic.