From 0c6fbfca0c91ef012e8ab767a317c07f1f6dc5e6 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 16 Aug 2022 12:10:34 -0700 Subject: [PATCH] turnip: lower the queue priority to 1 To match the default priority of the gallium driver. Cc: mesa-stable Part-of: --- src/freedreno/vulkan/tu_device.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index 877939ca02a..5984fb202e3 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -1488,6 +1488,20 @@ tu_queue_init(struct tu_device *device, int idx, const VkDeviceQueueCreateInfo *create_info) { + + /* Match the default priority of fd_context_init. We ignore + * pQueuePriorities because the spec says + * + * An implementation may allow a higher-priority queue to starve a + * lower-priority queue on the same VkDevice until the higher-priority + * queue has no further commands to execute. The relationship of queue + * priorities must not cause queues on one VkDevice to starve queues on + * another VkDevice. + * + * We cannot let one VkDevice starve another. + */ + const int priority = 1; + VkResult result = vk_queue_init(&queue->vk, &device->vk, create_info, idx); if (result != VK_SUCCESS) return result; @@ -1497,7 +1511,7 @@ tu_queue_init(struct tu_device *device, queue->vk.driver_submit = tu_queue_submit; #endif - int ret = tu_drm_submitqueue_new(device, 0, &queue->msm_queue_id); + int ret = tu_drm_submitqueue_new(device, priority, &queue->msm_queue_id); if (ret) return vk_startup_errorf(device->instance, VK_ERROR_INITIALIZATION_FAILED, "submitqueue create failed");