From b1bc24f826f4d08f22efd26f067621de84a100f0 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 28 Jan 2020 15:18:14 +1100 Subject: [PATCH] glsl: dont try to assign uniform storage for uniform blocks MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes a crash in some shaders. Reviewed-by: Alejandro Piñeiro Part-of: --- src/compiler/glsl/gl_nir_link_uniforms.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/gl_nir_link_uniforms.c b/src/compiler/glsl/gl_nir_link_uniforms.c index ec0c7afca55..f57d2e9a3da 100644 --- a/src/compiler/glsl/gl_nir_link_uniforms.c +++ b/src/compiler/glsl/gl_nir_link_uniforms.c @@ -132,14 +132,16 @@ nir_setup_uniform_remap_tables(struct gl_context *ctx, unsigned num_slots = glsl_get_component_slots(uniform->type); - uniform->storage = &data[data_pos]; + if (uniform->block_index == -1) + uniform->storage = &data[data_pos]; /* Set remap table entries point to correct gl_uniform_storage. */ for (unsigned j = 0; j < entries; j++) { unsigned element_loc = uniform->remap_location + j; prog->UniformRemapTable[element_loc] = uniform; - data_pos += num_slots; + if (uniform->block_index == -1) + data_pos += num_slots; } } } -- 2.30.2