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:
+
+
+
+
+
diff --git a/src/util/driconf.h b/src/util/driconf.h
index 108cc017c43..fa6fb75c7e2 100644
--- a/src/util/driconf.h
+++ b/src/util/driconf.h
@@ -645,6 +645,10 @@
DRI_CONF_OPT_B(radv_flush_before_timestamp_write, def, \
"Wait for previous commands to finish before writing timestamps")
+#define DRI_CONF_RADV_RT_WAVE64(def) \
+ DRI_CONF_OPT_B(radv_rt_wave64, def, \
+ "Force wave64 in RT shaders")
+
#define DRI_CONF_RADV_APP_LAYER() DRI_CONF_OPT_S_NODEF(radv_app_layer, "Select an application layer.")
/**