From 78f391d343609dca85fdaf1753a3403cf32a3842 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 16 Jul 2018 14:01:40 +1000 Subject: [PATCH] radeonsi/nir: make use of nir_lower_load_const_to_scalar() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/gallium/drivers/radeonsi/si_shader_nir.c | 2 ++ 1 file changed, 2 insertions(+) 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; -- 2.30.2