diff --git a/src/intel/vulkan/anv_instance.c b/src/intel/vulkan/anv_instance.c
index 0a3b43522ce..aa270a39efb 100644
--- a/src/intel/vulkan/anv_instance.c
+++ b/src/intel/vulkan/anv_instance.c
@@ -40,6 +40,7 @@ static const driOptionDescription anv_dri_options[] = {
DRI_CONF_ANV_QUERY_COPY_WITH_SHADER_THRESHOLD(6)
DRI_CONF_ANV_FORCE_INDIRECT_DESCRIPTORS(false)
DRI_CONF_ANV_DISABLE_LINK_TIME_OPTIMIZATION(false)
+ DRI_CONF_ANV_ENABLE_OPT_DIVERGENT_ATOMICS(0)
DRI_CONF_SHADER_SPILLING_RATE(11)
DRI_CONFIG_INTEL_FORCE_COMPUTE_SURFACE_PREFETCH(true)
DRI_CONFIG_INTEL_FORCE_SAMPLER_PREFETCH(false)
@@ -268,6 +269,8 @@ anv_init_dri_options(struct anv_instance *instance)
instance->disable_lto =
driQueryOptionb(&instance->dri_options, "anv_disable_link_time_optimization");
+ instance->enable_opt_divergent_atomics =
+ driQueryOptioni(&instance->dri_options, "anv_enable_opt_divergent_atomics");
instance->stack_ids = driQueryOptioni(&instance->dri_options, "intel_stack_id");
switch (instance->stack_ids) {
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index a01a0d2d5e4..e4b9ccfc5be 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1848,6 +1848,7 @@ struct anv_instance {
* Performance workarounds
*/
bool disable_lto;
+ enum brw_divergent_atomics_flags enable_opt_divergent_atomics;
/**
* Ray tracing configuration.
diff --git a/src/intel/vulkan/anv_shader_compile.c b/src/intel/vulkan/anv_shader_compile.c
index 4bf599d70af..e5f67bcd3df 100644
--- a/src/intel/vulkan/anv_shader_compile.c
+++ b/src/intel/vulkan/anv_shader_compile.c
@@ -293,6 +293,7 @@ populate_base_prog_key(struct brw_base_prog_key *key,
*/
if (rs != NULL)
key->robust_flags = anv_get_robust_flags(rs);
+ key->divergent_atomics_flags = pdevice->instance->enable_opt_divergent_atomics;
key->limit_trig_input_range = pdevice->instance->limit_trig_input_range;
}
diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf
index 45c656b63dc..800233970d1 100644
--- a/src/util/00-mesa-defaults.conf
+++ b/src/util/00-mesa-defaults.conf
@@ -1131,6 +1131,16 @@ TODO: document the other workarounds.
+
+
+
+
+
+
+
+
+
+