compiler/nir: introduce a new helper to get varying name

As we now reuse the enums to remain within 64 values, we need to get
the proper name using the stage.

v2: Use enum type for parameter (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7795>
This commit is contained in:
Lionel Landwerlin
2020-11-27 12:26:34 +02:00
committed by Marge Bot
parent 1c9488e0d1
commit 244514addd
3 changed files with 22 additions and 6 deletions

View File

@@ -538,18 +538,23 @@ print_var_decl(nir_variable *var, print_state *state)
if (var->data.mode == nir_var_shader_in)
loc = gl_vert_attrib_name(var->data.location);
else if (var->data.mode == nir_var_shader_out)
loc = gl_varying_slot_name(var->data.location);
loc = gl_varying_slot_name_for_stage(var->data.location,
state->shader->info.stage);
break;
case MESA_SHADER_GEOMETRY:
if ((var->data.mode == nir_var_shader_in) ||
(var->data.mode == nir_var_shader_out))
loc = gl_varying_slot_name(var->data.location);
(var->data.mode == nir_var_shader_out)) {
loc = gl_varying_slot_name_for_stage(var->data.location,
state->shader->info.stage);
}
break;
case MESA_SHADER_FRAGMENT:
if (var->data.mode == nir_var_shader_in)
loc = gl_varying_slot_name(var->data.location);
else if (var->data.mode == nir_var_shader_out)
if (var->data.mode == nir_var_shader_in) {
loc = gl_varying_slot_name_for_stage(var->data.location,
state->shader->info.stage);
} else if (var->data.mode == nir_var_shader_out) {
loc = gl_frag_result_name(var->data.location);
}
break;
case MESA_SHADER_TESS_CTRL:
case MESA_SHADER_TESS_EVAL: