nir/print: stop trying to match i/o vars using base/driver_location

this is broken

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28552>
This commit is contained in:
Mike Blumenkrantz 2024-04-03 12:26:20 -04:00 committed by Marge Bot
parent 52cc12b8d2
commit a83fd26d0e

View file

@ -1632,12 +1632,15 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
}
nir_foreach_variable_with_modes(var, state->shader, var_mode) {
if ((var->data.driver_location == nir_intrinsic_base(instr)) &&
(instr->intrinsic == nir_intrinsic_load_uniform ||
(nir_intrinsic_component(instr) >= var->data.location_frac &&
if (!var->name)
continue;
if (((instr->intrinsic == nir_intrinsic_load_uniform &&
var->data.driver_location == nir_intrinsic_base(instr)) ||
(instr->intrinsic != nir_intrinsic_load_uniform &&
var->data.location == nir_intrinsic_io_semantics(instr).location)) &&
((nir_intrinsic_component(instr) >= var->data.location_frac &&
nir_intrinsic_component(instr) <
(var->data.location_frac + glsl_get_components(var->type)))) &&
var->name) {
(var->data.location_frac + glsl_get_components(var->type))))) {
fprintf(fp, " // %s", var->name);
break;
}