From f1dd4875316351eb32c878de8f184224e29b9210 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 21 Apr 2022 07:32:23 -0700 Subject: [PATCH] intel/nir: temporarly disable opt_uniform_atomics for RT/CL Not had time to investiguate what is going is on but it's definitely a contributor to failures. Signed-off-by: Lionel Landwerlin Acked-by: Caio Oliveira Part-of: --- src/intel/compiler/brw_nir.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index 87fff7c9b85..9ceb627cbb8 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -1236,8 +1236,17 @@ brw_postprocess_nir(nir_shader *nir, const struct brw_compiler *compiler, /* TODO: Enable nir_opt_uniform_atomics on Gfx7.x too. * It currently fails Vulkan tests on Haswell for an unknown reason. + * + * TODO: Using this optimization on RT/OpenCL kernels also seems to cause + * issues. Until we can understand those issues, disable it. */ - if (devinfo->ver >= 8 && OPT(nir_opt_uniform_atomics)) { + bool opt_uniform_atomic_stage_allowed = + devinfo->ver >= 8 && + nir->info.stage != MESA_SHADER_KERNEL && + nir->info.stage != MESA_SHADER_RAYGEN && + !gl_shader_stage_is_callable(nir->info.stage); + + if (opt_uniform_atomic_stage_allowed && OPT(nir_opt_uniform_atomics)) { const nir_lower_subgroups_options subgroups_options = { .ballot_bit_size = 32, .ballot_components = 1,