On Wed, 2015-10-07 at 09:21 +0200, Samuel Iglesias Gonsalvez wrote: > From ARB_shader_storage_buffer_object: > > "When using the ARB_program_interface_query extension to enumerate > the > set of active buffer variables, only the first element of arrays > (sized > or unsized) will be enumerated" > > _mesa_program_resource_array_size() is used when getting the name > (and > name length) of the active variables. When it is an unsized array, > we want to indicate it has one active element so the returned name > would have "[0]" at the end. > > v2: > - Use array_stride > 0 and array_elements == 0 to detect unsized > arrays. Because of that, we don't need is_unsized_array flag > (Timothy) > > Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com>
Reviewed-by: Timothy Arceri <t_arc...@yahoo.com.au> > --- > src/mesa/main/shader_query.cpp | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/main/shader_query.cpp > b/src/mesa/main/shader_query.cpp > index 56f990b..3748b10 100644 > --- a/src/mesa/main/shader_query.cpp > +++ b/src/mesa/main/shader_query.cpp > @@ -485,8 +485,14 @@ _mesa_program_resource_array_size(struct > gl_program_resource *res) > case GL_COMPUTE_SUBROUTINE_UNIFORM: > case GL_TESS_CONTROL_SUBROUTINE_UNIFORM: > case GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: > - case GL_BUFFER_VARIABLE: > return RESOURCE_UNI(res)->array_elements; > + case GL_BUFFER_VARIABLE: > + /* Unsized arrays */ > + if (RESOURCE_UNI(res)->array_stride > 0 && > + RESOURCE_UNI(res)->array_elements == 0) > + return 1; > + else > + return RESOURCE_UNI(res)->array_elements; > case GL_VERTEX_SUBROUTINE: > case GL_GEOMETRY_SUBROUTINE: > case GL_FRAGMENT_SUBROUTINE: _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev