[Mesa-dev] [PATCH] glsl: set matrix_stride for non matrices with atomic counter buffers

Ilia Mirkin imirkin at alum.mit.edu
Thu Nov 12 07:47:03 PST 2015


On Mon, Nov 2, 2015 at 6:36 AM, Tapani Pälli <tapani.palli at intel.com> wrote:
> Patch sets matrix_stride as 0 for non matrix uniforms that are in a
> atomic counter buffer. Matrix stride calculation for actual matrix
> uniforms is done during link_assign_uniform_locations.
>
> From ARB_program_interface_query specification:
>
> GL_MATRIX_STRIDE:
>
>    "For active variables not declared as a matrix or array of matrices,
>    zero is written to <params>.  For active variables not backed by a
>    buffer object, -1 is written to <params>, regardless of the variable
>    type."
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  src/glsl/link_atomics.cpp | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/glsl/link_atomics.cpp b/src/glsl/link_atomics.cpp
> index cdcc06d..3aa52db 100644
> --- a/src/glsl/link_atomics.cpp
> +++ b/src/glsl/link_atomics.cpp
> @@ -240,6 +240,8 @@ link_assign_atomic_counter_resources(struct gl_context *ctx,
>           storage->offset = var->data.atomic.offset;
>           storage->array_stride = (var->type->is_array() ?
>                                    var->type->without_array()->atomic_size() : 0);
> +         if (!var->type->is_matrix())
> +            storage->matrix_stride = 0;

Can atomics ever be in matrices?

  -ilia


More information about the mesa-dev mailing list