On Mon, 2015-09-28 at 16:30 +0200, Samuel Iglesias Gonsálvez wrote: > > On 28/09/15 14:23, Timothy Arceri wrote: > > On Mon, 2015-09-28 at 12:46 +0200, Samuel Iglesias Gonsálvez wrote: > > > > > > On 28/09/15 12:39, Samuel Iglesias Gonsálvez wrote: > > > > > > > > > > > > On 27/09/15 23:15, Timothy Arceri wrote: > > > > > 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)++;; > > > > > } > > > > > } > > > > > > > > > > > > > Yeah, that works too. I will change it. Do you give R-b to this > > > > change? > > > > > > Mmm, looking at the OpenGL 4.3 spec, 7.6 Uniform Variables: > > > > > > "Active uniform blocks are those that contain active uniforms > > > after a > > > program has been compiled and linked." > > > > > > And active uniform blocks have been gathered in > > > ProgramResourceList[]. > > > So I prefer my original patch even when we loop through the > > > entire > > > resource list. > > > > > > What do you think? > > > > UniformBlocks satisfies the spec also as far as I can tell. In fact > > ProgramResourceList is just filled with the values from > > UniformBlocks > > so I don't really see the problem. > > True. I'll do the change then.
Great. With that change: Reviewed-by: Timothy Arceri <t_arc...@yahoo.com.au> > > Sam > > > > > > > > > > Sam > > > > > > > > > > > Sam > > > > > > > > > > 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