From f190398049643c28e9b54e8d7f572b598680d4cb Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 31 May 2022 09:36:42 +1000 Subject: [PATCH] nvk: Add initial queue Part-of: --- src/nouveau/vulkan/nvk_device.c | 15 +++++++++++++++ src/nouveau/vulkan/nvk_device.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/nouveau/vulkan/nvk_device.c b/src/nouveau/vulkan/nvk_device.c index 74afc2a..4d0b7cd 100644 --- a/src/nouveau/vulkan/nvk_device.c +++ b/src/nouveau/vulkan/nvk_device.c @@ -5,6 +5,12 @@ #include "vulkan/wsi/wsi_common.h" +static VkResult +nvk_queue_submit(struct vk_queue *vqueue, struct vk_queue_submit *submission) +{ + return VK_SUCCESS; +} + VKAPI_ATTR VkResult VKAPI_CALL nvk_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, @@ -32,12 +38,20 @@ nvk_CreateDevice(VkPhysicalDevice physicalDevice, if (result != VK_SUCCESS) goto fail_alloc; + result = vk_queue_init(&device->queue, &device->vk, &pCreateInfo->pQueueCreateInfos[0], 0); + if (result != VK_SUCCESS) + goto fail_init; + + device->queue.driver_submit = nvk_queue_submit; + device->pdev = physical_device; *pDevice = nvk_device_to_handle(device); return VK_SUCCESS; + fail_init: + vk_device_finish(&device->vk); fail_alloc: vk_free(&device->vk.alloc, device); return result; @@ -51,6 +65,7 @@ nvk_DestroyDevice(VkDevice _device, const VkAllocationCallbacks *pAllocator) if (!device) return; + vk_queue_finish(&device->queue); vk_device_finish(&device->vk); vk_free(&device->vk.alloc, device); } diff --git a/src/nouveau/vulkan/nvk_device.h b/src/nouveau/vulkan/nvk_device.h index 5f1d47f..d080f9c 100644 --- a/src/nouveau/vulkan/nvk_device.h +++ b/src/nouveau/vulkan/nvk_device.h @@ -4,11 +4,14 @@ #include "nvk_private.h" #include "vulkan/runtime/vk_device.h" +#include "vulkan/runtime/vk_queue.h" struct nvk_physical_device; struct nvk_device { struct vk_device vk; struct nvk_physical_device *pdev; + + struct vk_queue queue; }; VK_DEFINE_HANDLE_CASTS(nvk_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE) -- 2.7.4