ir3: opt_deref in opt loop to remove unnecessary tex casts
Otherwise we may be left with such casts: vec1 32 ssa_72 = deref_var &shadow_map (uniform sampler2D) vec1 32 ssa_73 = deref_cast (texture2D *)ssa_72 (uniform texture2D) vec1 32 ssa_74 = deref_cast (sampler *)ssa_72 (uniform sampler) vec1 32 ssa_76 = (float32)tex ssa_73 (texture_deref), ssa_74 (sampler_deref), ssa_75 (coord), ssa_64 (comparator) And crash in ycbcr lowering since we aren't able to follow deref chain. Fixes crash in GFXBench Aztec Ruins Vulkan tests. See issue: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5945 Cc: mesa-stable Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14819>
This commit is contained in:
committed by
Marge Bot
parent
0248644c89
commit
f917c73528
@@ -87,6 +87,7 @@ ir3_optimize_loop(struct ir3_compiler *compiler, nir_shader *s)
|
||||
progress |= OPT(s, nir_lower_phis_to_scalar, false);
|
||||
|
||||
progress |= OPT(s, nir_copy_prop);
|
||||
progress |= OPT(s, nir_opt_deref);
|
||||
progress |= OPT(s, nir_opt_dce);
|
||||
progress |= OPT(s, nir_opt_cse);
|
||||
static int gcm = -1;
|
||||
|
||||
Reference in New Issue
Block a user