summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2018-07-16 14:01:40 +1000
committerTimothy Arceri <[email protected]>2018-07-23 09:48:51 +1000
commit78f391d343609dca85fdaf1753a3403cf32a3842 (patch)
tree472310a2f6190f3194566e19b56486316b90734d /src/gallium
parent257128079cdd83d6badcab34d647ff6a6fc87d3e (diff)
radeonsi/nir: make use of nir_lower_load_const_to_scalar()
This allows NIR to CSE more operations. LLVM does this also so the impact is limited, however doing this in NIR allows other opts to make progress. For example some loops in Civilization Beyond Earth shaders are unrolled. Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/radeonsi/si_shader_nir.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 6eb114ad5c0..4ae5b006593 100644
--- a/src/gallium/drivers/radeonsi/si_shader_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
@@ -802,6 +802,8 @@ si_lower_nir(struct si_shader_selector* sel)
ac_lower_indirect_derefs(sel->nir, sel->screen->info.chip_class);
+ NIR_PASS_V(sel->nir, nir_lower_load_const_to_scalar);
+
bool progress;
do {
progress = false;