mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
nir/lower_wpos_center: Look at derefs for modes
This is instead of looking all the way back to the variable which may not exist for all derefs. This makes this code properly ignore casts with modes other than the mode[s] we care about (where casts aren't allowed). Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
867fe35a16
commit
cf7fb39805
1 changed files with 4 additions and 2 deletions
|
|
@ -82,10 +82,12 @@ lower_wpos_center_block(nir_builder *b, nir_block *block,
|
|||
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
|
||||
if (intr->intrinsic == nir_intrinsic_load_deref) {
|
||||
nir_deref_instr *deref = nir_src_as_deref(intr->src[0]);
|
||||
if (deref->mode != nir_var_shader_in)
|
||||
continue;
|
||||
|
||||
nir_variable *var = nir_deref_instr_get_variable(deref);
|
||||
|
||||
if (var->data.mode == nir_var_shader_in &&
|
||||
var->data.location == VARYING_SLOT_POS) {
|
||||
if (var->data.location == VARYING_SLOT_POS) {
|
||||
/* gl_FragCoord should not have array/struct derefs: */
|
||||
assert(deref->deref_type == nir_deref_type_var);
|
||||
update_fragcoord(b, intr, for_sample_shading);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue