diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index b498ebc5b75..304e5687546 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -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; }