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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37885>
This commit is contained in:
Timur Kristóf
2025-10-15 14:07:41 +02:00
committed by Marge Bot
parent 765a748840
commit 6f499141f5

View File

@@ -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 &&