Mesa (main): ir3: opt_deref in opt loop to remove unnecessary tex casts
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Feb 1 17:40:33 UTC 2022
Module: Mesa
Branch: main
Commit: f917c735288835a18b8aba799b8e48acc75bdcf9
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f917c735288835a18b8aba799b8e48acc75bdcf9
Author: Danylo Piliaiev <dpiliaiev at igalia.com>
Date: Tue Feb 1 14:32:02 2022 +0200
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 at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14819>
---
src/freedreno/ir3/ir3_nir.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c
index 331576db804..25029dc2c99 100644
--- a/src/freedreno/ir3/ir3_nir.c
+++ b/src/freedreno/ir3/ir3_nir.c
@@ -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;
More information about the mesa-commit
mailing list