radv: fix registering queues for RGP with compute only

This crashes if the graphics queue isn't created.

Fixes: 930e77e903 ("radv/sqtt: add support for queue info")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10136
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26183>
(cherry picked from commit 627d593443)
This commit is contained in:
Samuel Pitoiset 2023-11-14 08:35:58 +01:00 committed by Eric Engestrom
parent dbb2f6ed66
commit 0960a0c5dd
2 changed files with 7 additions and 3 deletions

View file

@ -174,7 +174,7 @@
"description": "radv: fix registering queues for RGP with compute only",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "930e77e9036a75196e080cb4b780c47104bf0ef2",
"notes": null

View file

@ -579,7 +579,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]);
}
@ -587,7 +589,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]);
}