glsl: remove dead uniforms in the nir linker
This is now possible as we do uniform linking via a nir based linker. Shader-db results for IRIS (SKL): total instructions in shared programs: 14947192 -> 14946397 (<.01%) instructions in affected programs: 39498 -> 38703 (-2.01%) helped: 230 HURT: 18 total cycles in shared programs: 324868402 -> 324847058 (<.01%) cycles in affected programs: 706701 -> 685357 (-3.02%) helped: 599 HURT: 449 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4797>
This commit is contained in:

committed by
Marge Bot

parent
60bee4c70c
commit
a494b62410
@@ -654,6 +654,14 @@ check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog)
|
||||
bool
|
||||
gl_nir_link_glsl(struct gl_context *ctx, struct gl_shader_program *prog)
|
||||
{
|
||||
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_uniforms(ctx, prog, true))
|
||||
return false;
|
||||
|
||||
|
Reference in New Issue
Block a user