From 7873276f6895eafc56514a666d54e4a4097f1365 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 4 May 2020 14:33:56 +1000 Subject: [PATCH] glsl/spirv: remove dead uniforms in spirv nir linker Reviewed-by: Kenneth Graunke Reviewed-by: Eric Anholt Part-of: --- src/compiler/glsl/gl_nir_linker.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/glsl/gl_nir_linker.c b/src/compiler/glsl/gl_nir_linker.c index 7c38f28cd3c..c0cd587d0a1 100644 --- a/src/compiler/glsl/gl_nir_linker.c +++ b/src/compiler/glsl/gl_nir_linker.c @@ -601,6 +601,14 @@ bool gl_nir_link_spirv(struct gl_context *ctx, struct gl_shader_program *prog, const struct gl_nir_linker_options *options) { + for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) { + struct gl_linked_shader *shader = prog->_LinkedShaders[i]; + if (shader) { + nir_remove_dead_variables(shader->Program->nir, nir_var_uniform, + &can_remove_uniform); + } + } + if (!gl_nir_link_uniform_blocks(ctx, prog)) return false; -- 2.30.2