diff options
-rw-r--r-- | src/compiler/nir/nir_lower_wpos_center.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_lower_wpos_center.c b/src/compiler/nir/nir_lower_wpos_center.c index 74f4d2a9701..3c114936f7e 100644 --- a/src/compiler/nir/nir_lower_wpos_center.c +++ b/src/compiler/nir/nir_lower_wpos_center.c @@ -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); |