[Mesa-dev] [PATCH] glsl: Enable split of lower UBOs and SSBO also for compute shaders

Lofstedt, Marta marta.lofstedt at intel.com
Wed Oct 14 06:00:11 PDT 2015


I have found a couple of more places in linker.cpp where we loop up to MESA_SHADER_FRAGMENT.
Should these now also be up to MESA_SHADER_COMPUTE instead?

/Marta

> -----Original Message-----
> From: Marta Lofstedt [mailto:marta.lofstedt at linux.intel.com]
> Sent: Wednesday, October 14, 2015 2:56 PM
> To: mesa-dev at lists.freedesktop.org
> Cc: Lofstedt, Marta; Marta Lofstedt
> Subject: [PATCH] glsl: Enable split of lower UBOs and SSBO also for compute
> shaders
> 
> From: Marta Lofstedt <marta.lofstedt at intel.com>
> 
> The split of Uniform blocks and shader storage block only loops up to
> MESA_SHADER_FRAGMENT and igonres compute shaders.
> This cause segfault when running the OpenGL ES 3.1 CTS tests with
> GL_ARB_compute_shader enabled.
> 
> Signed-off-by: Marta Lofstedt <marta.lofstedt at linux.intel.com>
> ---
>  src/glsl/linker.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index c61c76e..5b5d6e6
> 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -4392,7 +4392,7 @@ link_shaders(struct gl_context *ctx, struct
> gl_shader_program *prog)
>      * for gl_shader_program and gl_shader, so that drivers that need separate
>      * index spaces for each set can have that.
>      */
> -   for (unsigned i = MESA_SHADER_VERTEX; i <=
> MESA_SHADER_FRAGMENT; i++) {
> +   for (unsigned i = MESA_SHADER_VERTEX; i <= MESA_SHADER_COMPUTE;
> i++)

Remove new line.

> + {
>        if (prog->_LinkedShaders[i] != NULL) {
>           gl_shader *sh = prog->_LinkedShaders[i];
>           split_ubos_and_ssbos(sh,
> --
> 2.1.4



More information about the mesa-dev mailing list