On Mon, 2015-10-26 at 11:22 +0200, Tapani Pälli wrote:
> Patch adds additional check to make sure we don't return locations
> for
> structures or arrays of structures.
> 
> From page 79 of the OpenGL 4.2 spec:
>     "A valid name cannot be a structure, an array of structures, or
> any
>     portion of a single vector or a matrix."
> 
> No Piglit or CTS regressions observed.
> 
> Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
> ---
>  src/mesa/main/shader_query.cpp | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/src/mesa/main/shader_query.cpp
> b/src/mesa/main/shader_query.cpp
> index 8182d3d..b0707a4 100644
> --- a/src/mesa/main/shader_query.cpp
> +++ b/src/mesa/main/shader_query.cpp
> @@ -808,6 +808,16 @@ program_resource_location(struct
> gl_shader_program *shProg,
>        if (RESOURCE_UNI(res)->builtin)
>           return -1;
>  
> +     /* From page 79 of the OpenGL 4.2 spec:
> +      *
> +      *     "A valid name cannot be a structure, an array of
> structures, or any
> +      *     portion of a single vector or a matrix."
> +      */
> +      if (RESOURCE_UNI(res)->type->is_record() ||
> +          (RESOURCE_UNI(res)->type->is_array() &&
> +           RESOURCE_UNI(res)->type->fields.array->is_record()))
> +         return -1;
> +

This could just be RESOURCE_UNI(res)->type->without_array()
->is_record() then it would also work for arrays of arrays.

>        /* From the GL_ARB_uniform_buffer_object spec:
>         *
>         *     "The value -1 will be returned if <name> does not
> correspond to an
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to