Builtins already have locations assigned so this shouldn't changing anything. We want to call it earlier so we can tranform GLSL IR to NIR earlier. --- src/compiler/glsl/linker.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 02d16ec..2fefccf 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -4587,8 +4587,12 @@ link_varyings_and_uniforms(unsigned first, unsigned last, /* If the program is made up of only a single stage */ if (first == last) { - gl_linked_shader *const sh = prog->_LinkedShaders[last]; + + do_dead_builtin_varyings(ctx, NULL, sh, 0, NULL); + do_dead_builtin_varyings(ctx, sh, NULL, num_tfeedback_decls, + tfeedback_decls); + if (prog->SeparateShader) { const uint64_t reserved_slots = reserved_varying_slot(sh, ir_var_shader_in); @@ -4604,10 +4608,6 @@ link_varyings_and_uniforms(unsigned first, unsigned last, reserved_slots)) return false; } - - do_dead_builtin_varyings(ctx, NULL, sh, 0, NULL); - do_dead_builtin_varyings(ctx, sh, NULL, num_tfeedback_decls, - tfeedback_decls); } else { /* Linking the stages in the opposite order (from fragment to vertex) * ensures that inter-shader outputs written to in an earlier stage @@ -4627,16 +4627,16 @@ link_varyings_and_uniforms(unsigned first, unsigned last, const uint64_t reserved_in_slots = reserved_varying_slot(sh_next, ir_var_shader_in); + do_dead_builtin_varyings(ctx, sh_i, sh_next, + next == MESA_SHADER_FRAGMENT ? num_tfeedback_decls : 0, + tfeedback_decls); + if (!assign_varying_locations(ctx, mem_ctx, prog, sh_i, sh_next, next == MESA_SHADER_FRAGMENT ? num_tfeedback_decls : 0, tfeedback_decls, reserved_out_slots | reserved_in_slots)) return false; - do_dead_builtin_varyings(ctx, sh_i, sh_next, - next == MESA_SHADER_FRAGMENT ? num_tfeedback_decls : 0, - tfeedback_decls); - /* This must be done after all dead varyings are eliminated. */ if (sh_i != NULL) { unsigned slots_used = _mesa_bitcount_64(reserved_out_slots); -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev