diff --git a/src/amd/vulkan/radv_sqtt.c b/src/amd/vulkan/radv_sqtt.c index 45c360c3e4c..8c4466de1e1 100644 --- a/src/amd/vulkan/radv_sqtt.c +++ b/src/amd/vulkan/radv_sqtt.c @@ -723,7 +723,9 @@ radv_unregister_queue(struct radv_device *device, struct radv_queue *queue) static void radv_register_queues(struct radv_device *device, struct ac_sqtt *sqtt) { - radv_register_queue(device, &device->queues[RADV_QUEUE_GENERAL][0]); + if (device->queue_count[RADV_QUEUE_GENERAL] == 1) + radv_register_queue(device, &device->queues[RADV_QUEUE_GENERAL][0]); + for (uint32_t i = 0; i < device->queue_count[RADV_QUEUE_COMPUTE]; i++) radv_register_queue(device, &device->queues[RADV_QUEUE_COMPUTE][i]); } @@ -731,7 +733,9 @@ radv_register_queues(struct radv_device *device, struct ac_sqtt *sqtt) static void radv_unregister_queues(struct radv_device *device, struct ac_sqtt *sqtt) { - radv_unregister_queue(device, &device->queues[RADV_QUEUE_GENERAL][0]); + if (device->queue_count[RADV_QUEUE_GENERAL] == 1) + radv_unregister_queue(device, &device->queues[RADV_QUEUE_GENERAL][0]); + for (uint32_t i = 0; i < device->queue_count[RADV_QUEUE_COMPUTE]; i++) radv_unregister_queue(device, &device->queues[RADV_QUEUE_COMPUTE][i]); }