On Fri, 2015-09-25 at 10:24 +0200, Samuel Iglesias Gonsalvez wrote: > NumUniformBlocks also counts shader storage blocks. > NumUniformBlocks variable will be renamed in a later patch to avoid > misunderstandings. > > Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > --- > src/mesa/main/shaderapi.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c > index edc23bc..7866a20 100644 > --- a/src/mesa/main/shaderapi.c > +++ b/src/mesa/main/shaderapi.c > @@ -725,12 +725,17 @@ get_programiv(struct gl_context *ctx, GLuint > program, GLenum pname, > *params = max_len; > return; > } > - case GL_ACTIVE_UNIFORM_BLOCKS: > + case GL_ACTIVE_UNIFORM_BLOCKS: { > + unsigned i; > + > if (!has_ubo) > break; > > - *params = shProg->NumUniformBlocks; > + for (i = 0, *params = 0; i < shProg->NumProgramResourceList; > i++) > + if (shProg->ProgramResourceList[i].Type == > GL_UNIFORM_BLOCK) > + (*params)++; > return; > + }
Rather than loop through the entire resource list you could just looping over the uniform block list right? for (unsigned i = 0; i < shProg->NumUniformBlocks; i++) { if (!shProg->UniformBlocks[i].IsShaderStorage) { (*params)++;; } } > case GL_PROGRAM_BINARY_RETRIEVABLE_HINT: > /* This enum isn't part of the OES extension for OpenGL ES > 2.0. It is > * only available with desktop OpenGL 3.0+ with the _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev