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. + + + + + +