nvk: Add initial queue
authorDave Airlie <airlied@redhat.com>
Mon, 30 May 2022 23:36:42 +0000 (09:36 +1000)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:31:53 +0000 (21:31 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>

src/nouveau/vulkan/nvk_device.c
src/nouveau/vulkan/nvk_device.h

index 74afc2a..4d0b7cd 100644 (file)
@@ -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);
 }
index 5f1d47f..d080f9c 100644 (file)
@@ -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)