glsl: Enable split of lower UBOs and SSBO also for compute shaders
authorMarta Lofstedt <marta.lofstedt@intel.com>
Wed, 14 Oct 2015 11:35:32 +0000 (13:35 +0200)
committerMarta Lofstedt <marta.lofstedt@linux.intel.com>
Wed, 14 Oct 2015 14:05:42 +0000 (16:05 +0200)
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.

V2: Changed to use MESA_SHADER_STAGES instead of
MESA_SHADER_COMPUTE

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Marta Lofstedt <marta.lofstedt@linux.intel.com>
src/glsl/linker.cpp

index c61c76e..c15034b 100644 (file)
@@ -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_STAGES; i++) {
       if (prog->_LinkedShaders[i] != NULL) {
          gl_shader *sh = prog->_LinkedShaders[i];
          split_ubos_and_ssbos(sh,