From 6f499141f5b25de4def889b4151e954cf044a3a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Wed, 15 Oct 2025 14:07:41 +0200 Subject: [PATCH] radv: Disable compute queues when the regalloc bug is present Compute queues may run compute dispatches in parallel with the graphics queue, even from other processes/apps. At the moment we can't make sure that all compute shaders use a workgroup size of 256 to mitigate the regalloc hang, so disable compute queues on affected chips. Can be reverted if a better mitigation is found in the future. Cc: mesa-stable Part-of: --- src/amd/vulkan/radv_physical_device.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 1009b017dd5..389a859313d 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -100,6 +100,15 @@ radv_video_encode_queue_enabled(const struct radv_physical_device *pdev) bool radv_compute_queue_enabled(const struct radv_physical_device *pdev) { + /* Compute queues may run compute dispatches in parallel with + * the graphics queue, even from other processes/apps. + * At the moment we can't make sure that all compute shaders + * use a workgroup size of 256 to mitigate the regalloc hang, + * so disable compute queues on affected chips. + */ + if (pdev->info.has_cs_regalloc_hang_bug) + return false; + const struct radv_instance *instance = radv_physical_device_instance(pdev); return pdev->info.ip[AMD_IP_COMPUTE].num_queues > 0 &&