intel/fs: Enable nir_opt_uniform_atomics in all shader stages

The problem seems to have been related to
nir_intrinsic_load_global_block_intel being marked as non-divergent.

No shader-db or fossil-db changes on any Intel platform.

v2: Rebase on splitting ELK from BRW. Remove devinfo->ver >= 8 check.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27044>
This commit is contained in:
Ian Romanick
2024-01-11 14:15:39 -08:00
parent 75de4458a1
commit b22fff90d5
+1 -13
View File
@@ -1699,19 +1699,7 @@ brw_postprocess_nir(nir_shader *nir, const struct brw_compiler *compiler,
NIR_PASS(_, nir, nir_convert_to_lcssa, true, true);
NIR_PASS_V(nir, nir_divergence_analysis);
/* 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.
*/
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)) {
if (OPT(nir_opt_uniform_atomics)) {
const nir_lower_subgroups_options subgroups_options = {
.ballot_bit_size = 32,
.ballot_components = 1,