[Mesa-dev] [PATCH v2] main: Fix block index when mixing UBO and SSBO blocks

Tapani Pälli tapani.palli at intel.com
Wed Sep 30 23:47:12 PDT 2015


Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

On 10/01/2015 09:39 AM, Iago Toral Quiroga wrote:
> Since we store both in UniformBlocks, we can't just compute the index by
> subtracting the array address start, we need to count the number of
> buffers of the approriate type.
>
> v2:
>    - Just fall back to calc_resource_index (Tapani)
> ---
>   src/mesa/main/shader_query.cpp | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp
> index 0cada50..09fe2a7 100644
> --- a/src/mesa/main/shader_query.cpp
> +++ b/src/mesa/main/shader_query.cpp
> @@ -613,11 +613,10 @@ _mesa_program_resource_index(struct gl_shader_program *shProg,
>         return GL_INVALID_INDEX;
>
>      switch (res->Type) {
> -   case GL_UNIFORM_BLOCK:
> -   case GL_SHADER_STORAGE_BLOCK:
> -      return RESOURCE_UBO(res)- shProg->UniformBlocks;
>      case GL_ATOMIC_COUNTER_BUFFER:
>         return RESOURCE_ATC(res) - shProg->AtomicBuffers;
> +   case GL_UNIFORM_BLOCK:
> +   case GL_SHADER_STORAGE_BLOCK:
>      case GL_TRANSFORM_FEEDBACK_VARYING:
>      default:
>         return calc_resource_index(shProg, res);
>


More information about the mesa-dev mailing list