From 1b1b436fa7cf92cce23018ea923597c4d7290d57 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Wed, 4 Dec 2019 00:24:35 +1100 Subject: [PATCH] glsl: make use of active_shader_mask when building resource list MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This allows us to avoid walking the entire IR looking for used uniforms. Reviewed-by: Tapani Pälli --- src/compiler/glsl/linker.cpp | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index f686fe96bfc..1b30a59d8fb 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -4213,20 +4213,8 @@ build_program_resource_list(struct gl_context *ctx, if (shProg->data->UniformStorage[i].hidden) continue; - uint8_t stageref = - build_stageref(shProg, shProg->data->UniformStorage[i].name, - ir_var_uniform); - - /* Add stagereferences for uniforms in a uniform block. */ bool is_shader_storage = shProg->data->UniformStorage[i].is_shader_storage; - int block_index = shProg->data->UniformStorage[i].block_index; - if (block_index != -1) { - stageref |= is_shader_storage ? - shProg->data->ShaderStorageBlocks[block_index].stageref : - shProg->data->UniformBlocks[block_index].stageref; - } - GLenum type = is_shader_storage ? GL_BUFFER_VARIABLE : GL_UNIFORM; if (!link_util_should_add_buffer_variable(shProg, &shProg->data->UniformStorage[i], @@ -4269,6 +4257,7 @@ build_program_resource_list(struct gl_context *ctx, buffer_block_index = shProg->data->UniformStorage[i].block_index; } + uint8_t stageref = shProg->data->UniformStorage[i].active_shader_mask; if (!link_util_add_program_resource(shProg, resource_set, type, &shProg->data->UniformStorage[i], stageref)) return; -- 2.30.2