From d18920e03a991064c265634029190c4e56e8af9c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Tue, 6 Jul 2021 08:45:33 +0200 Subject: [PATCH] radv: Run algebraic optimizations before NGG lowering. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This makes culling shaders more efficient because they split the shader in two parts. It is better to optimize before this split happens. Signed-off-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 96bdb2c..df8f47d 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -1001,6 +1001,9 @@ void radv_lower_ngg(struct radv_device *device, struct nir_shader *nir, nir->info.stage == MESA_SHADER_TESS_EVAL) { assert(key->vs_common_out.as_ngg); + if (consider_culling) + radv_optimize_nir_algebraic(nir, false); + out_conf = ac_nir_lower_ngg_nogs( nir, -- 2.7.4