mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
nir/print: Do not access invalid indices of load_uniform
load_uniform does not have io_semantics and component. Fixes:a83fd26("nir/print: stop trying to match i/o vars using base/driver_location") Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28962> (cherry picked from commitea863c0c1c)
This commit is contained in:
parent
d994133c8b
commit
3e37814956
2 changed files with 12 additions and 8 deletions
|
|
@ -224,7 +224,7 @@
|
||||||
"description": "nir/print: Do not access invalid indices of load_uniform",
|
"description": "nir/print: Do not access invalid indices of load_uniform",
|
||||||
"nominated": true,
|
"nominated": true,
|
||||||
"nomination_type": 1,
|
"nomination_type": 1,
|
||||||
"resolution": 0,
|
"resolution": 1,
|
||||||
"main_sha": null,
|
"main_sha": null,
|
||||||
"because_sha": "a83fd26d0effc8e65ff601c2ad3314058b98f107",
|
"because_sha": "a83fd26d0effc8e65ff601c2ad3314058b98f107",
|
||||||
"notes": null
|
"notes": null
|
||||||
|
|
|
||||||
|
|
@ -1639,13 +1639,17 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
|
||||||
nir_foreach_variable_with_modes(var, state->shader, var_mode) {
|
nir_foreach_variable_with_modes(var, state->shader, var_mode) {
|
||||||
if (!var->name)
|
if (!var->name)
|
||||||
continue;
|
continue;
|
||||||
if (((instr->intrinsic == nir_intrinsic_load_uniform &&
|
|
||||||
var->data.driver_location == nir_intrinsic_base(instr)) ||
|
bool match;
|
||||||
(instr->intrinsic != nir_intrinsic_load_uniform &&
|
if (instr->intrinsic == nir_intrinsic_load_uniform) {
|
||||||
var->data.location == nir_intrinsic_io_semantics(instr).location)) &&
|
match = var->data.driver_location == nir_intrinsic_base(instr);
|
||||||
((nir_intrinsic_component(instr) >= var->data.location_frac &&
|
} else {
|
||||||
nir_intrinsic_component(instr) <
|
match = nir_intrinsic_component(instr) >= var->data.location_frac &&
|
||||||
(var->data.location_frac + glsl_get_components(var->type))))) {
|
nir_intrinsic_component(instr) <
|
||||||
|
(var->data.location_frac + glsl_get_components(var->type));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (match) {
|
||||||
fprintf(fp, " // %s", var->name);
|
fprintf(fp, " // %s", var->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue