panvk: Use vk_queue
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 23 Sep 2021 16:49:21 +0000 (11:49 -0500)
committerMarge Bot <eric+marge@anholt.net>
Tue, 28 Sep 2021 21:08:25 +0000 (21:08 +0000)
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003>

src/panfrost/vulkan/panvk_device.c
src/panfrost/vulkan/panvk_private.h

index 5392307..0cb1127 100644 (file)
@@ -914,7 +914,9 @@ panvk_queue_init(struct panvk_device *device,
 {
    const struct panfrost_device *pdev = &device->physical_device->pdev;
 
-   vk_object_base_init(&device->vk, &queue->base, VK_OBJECT_TYPE_QUEUE);
+   VkResult result = vk_queue_init(&queue->vk, &device->vk);
+   if (result != VK_SUCCESS)
+      return result;
    queue->device = device;
    queue->queue_family_index = queue_family_index;
    queue->flags = flags;
@@ -924,8 +926,10 @@ panvk_queue_init(struct panvk_device *device,
    };
 
    int ret = drmIoctl(pdev->fd, DRM_IOCTL_SYNCOBJ_CREATE, &create);
-   if (ret)
+   if (ret) {
+      vk_queue_finish(&queue->vk);
       return VK_ERROR_OUT_OF_HOST_MEMORY;
+   }
 
    queue->sync = create.handle;
    return VK_SUCCESS;
@@ -934,6 +938,7 @@ panvk_queue_init(struct panvk_device *device,
 static void
 panvk_queue_finish(struct panvk_queue *queue)
 {
+   vk_queue_finish(&queue->vk);
 }
 
 VkResult
index 7286649..9c48023 100644 (file)
@@ -53,6 +53,7 @@
 #include "vk_instance.h"
 #include "vk_object.h"
 #include "vk_physical_device.h"
+#include "vk_queue.h"
 #include "wsi_common.h"
 
 #include "drm-uapi/panfrost_drm.h"
@@ -247,7 +248,7 @@ struct panvk_pipeline_cache {
 #define PANVK_MAX_QUEUE_FAMILIES 1
 
 struct panvk_queue {
-   struct vk_object_base base;
+   struct vk_queue vk;
    struct panvk_device *device;
    uint32_t queue_family_index;
    VkDeviceQueueCreateFlags flags;
@@ -1021,7 +1022,7 @@ VK_DEFINE_HANDLE_CASTS(panvk_cmd_buffer, base, VkCommandBuffer, VK_OBJECT_TYPE_C
 VK_DEFINE_HANDLE_CASTS(panvk_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
 VK_DEFINE_HANDLE_CASTS(panvk_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE)
 VK_DEFINE_HANDLE_CASTS(panvk_physical_device, vk.base, VkPhysicalDevice, VK_OBJECT_TYPE_PHYSICAL_DEVICE)
-VK_DEFINE_HANDLE_CASTS(panvk_queue, base, VkQueue, VK_OBJECT_TYPE_QUEUE)
+VK_DEFINE_HANDLE_CASTS(panvk_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE)
 
 VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_cmd_pool, base, VkCommandPool, VK_OBJECT_TYPE_COMMAND_POOL)
 VK_DEFINE_NONDISP_HANDLE_CASTS(panvk_buffer, base, VkBuffer, VK_OBJECT_TYPE_BUFFER)