Module: Mesa Branch: main Commit: 984678300116a6b9d4c9f5a1f764ee1ecc8ef27a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=984678300116a6b9d4c9f5a1f764ee1ecc8ef27a
Author: Jason Ekstrand <[email protected]> Date: Thu Sep 23 11:49:21 2021 -0500 panvk: Use vk_queue Reviewed-by: Boris Brezillon <[email protected]> Tested-by: Boris Brezillon <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13003> --- src/panfrost/vulkan/panvk_device.c | 9 +++++++-- src/panfrost/vulkan/panvk_private.h | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/panfrost/vulkan/panvk_device.c b/src/panfrost/vulkan/panvk_device.c index 53923077f57..0cb1127220e 100644 --- a/src/panfrost/vulkan/panvk_device.c +++ b/src/panfrost/vulkan/panvk_device.c @@ -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 diff --git a/src/panfrost/vulkan/panvk_private.h b/src/panfrost/vulkan/panvk_private.h index 72866495e24..9c4802396cb 100644 --- a/src/panfrost/vulkan/panvk_private.h +++ b/src/panfrost/vulkan/panvk_private.h @@ -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)
