compiler/nir: check whether var is an input in lower_fragcoord_wtrans

Otherwise the lowering pass might try to lower any other load from
a deref if its data.location value happens to be zero.

Fixes: 418c4c0d7d
  compiler/nir: extend lower_fragcoord_wtrans to support VARYING_SLOT_POS

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10577>
This commit is contained in:
Gert Wollny
2021-05-02 14:41:21 +02:00
committed by Marge Bot
parent 0f04a90ea3
commit e418710f8b

View File

@@ -46,6 +46,9 @@ lower_fragcoord_wtrans_filter(const nir_instr *instr, UNUSED const void *_option
return false;
nir_variable *var = nir_intrinsic_get_var(intr, 0);
if (var->data.mode != nir_var_shader_in)
return false;
return var->data.location == VARYING_SLOT_POS;
}