Imagination PowerVR SDK Blog



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 a previously saved binary shader.

This shader exports 2 FLOAT4 vectors (interleaved attribs) in one stream.

At the first run, the shader is compiled, calling glGetProgramiv reports GL_INTERLEAVED_ATTRIBS and 2 attribs of the valid type, and all the uniforms that are used. Then the binary is saved (I even call glValidateProgram before saving it)

At the second run, the binary version is loaded. glGetProgramiv reports GL_INTERLEAVED_ATTRIBS and ZERO attribs (and all the uniforms used)

reading (hexa reader) the content of the binary file, I can find the strings of the 2 FLOAT4 vectors (the name that are passed to glTransformFeedbackVaryings when the shader is compiled during the first run)

All of this is running fine on Windows platform (AMD, NVidia, Intel), and Android (Intel, Qualcomm, Mali) devices I can use.

I can provide the source code of the shader, the binary file of the results of the compilation.


(now it works both with “compact” and separate shaders, I can say that this issue occurs in both modes.


Hello Ronan,

Could you please clarify what you mean by now it works with compact and separate shaders?




Hi Paul, sorry for my unclear post. I meant that now my code works both with compact (not separate) and with separate shaders.

And my issue stated in the original post occurs in both modes (separate and “linked”)