diff options
author | Timothy Arceri <[email protected]> | 2018-07-16 14:01:40 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2018-07-23 09:48:51 +1000 |
commit | 78f391d343609dca85fdaf1753a3403cf32a3842 (patch) | |
tree | 472310a2f6190f3194566e19b56486316b90734d | |
parent | 257128079cdd83d6badcab34d647ff6a6fc87d3e (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]>
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader_nir.c | 2 |
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; |