diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c index 1204a80151d..5c97955888c 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -146,6 +146,7 @@ static const driOptionDescription radv_dri_options[] = { DRI_CONF_RADV_TEX_NON_UNIFORM(false) DRI_CONF_RADV_RT(false) DRI_CONF_RADV_FLUSH_BEFORE_TIMESTAMP_WRITE(false) + DRI_CONF_RADV_RT_WAVE64(false) DRI_CONF_RADV_APP_LAYER() DRI_CONF_SECTION_END }; @@ -207,6 +208,8 @@ radv_init_dri_options(struct radv_instance *instance) instance->flush_before_timestamp_write = driQueryOptionb(&instance->dri_options, "radv_flush_before_timestamp_write"); + + instance->force_rt_wave64 = driQueryOptionb(&instance->dri_options, "radv_rt_wave64"); } static const struct vk_instance_extension_table radv_instance_extensions_supported = { diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index afe87554fe4..fce403e12a3 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -2061,7 +2061,7 @@ radv_physical_device_try_create(struct radv_instance *instance, drmDevicePtr drm * problematic) */ if (!(device->instance->perftest_flags & RADV_PERFTEST_RT_WAVE_64) && - device->rad_info.gfx_level < GFX11) + !(device->instance->force_rt_wave64) && device->rad_info.gfx_level < GFX11) device->rt_wave_size = 32; } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index c7ed6b3b13c..01b7a09c069 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -416,6 +416,7 @@ struct radv_instance { bool enable_unified_heap_on_apu; bool tex_non_uniform; bool flush_before_timestamp_write; + bool force_rt_wave64; char *app_layer; }; diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf index f127955f515..7ff99aad5d8 100644 --- a/src/util/00-radv-defaults.conf +++ b/src/util/00-radv-defaults.conf @@ -156,6 +156,12 @@ Application bugs worked around in this file: