diff options
Diffstat (limited to 'src/frygon/vulkan/fgvk_queue.c')
| -rw-r--r-- | src/frygon/vulkan/fgvk_queue.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/frygon/vulkan/fgvk_queue.c b/src/frygon/vulkan/fgvk_queue.c new file mode 100644 index 00000000000..739de7f5bb4 --- /dev/null +++ b/src/frygon/vulkan/fgvk_queue.c @@ -0,0 +1,44 @@ +/* + * Copyright © 2025 Lucas Francisco Fryzek + * SPDX-License-Identifier: MIT + */ +#include "fgvk_queue.h" + +static VkResult +fgvk_queue_submit(struct vk_queue *vk_queue, + struct vk_queue_submit *submit) +{ + return VK_SUCCESS; +} + +VkResult +fgvk_queue_create(struct fgvk_device *dev, + const VkDeviceQueueCreateInfo *pCreateInfo, + uint32_t index_in_family) +{ + VkResult result; + struct fgvk_queue *queue = vk_zalloc(&dev->vk.alloc, sizeof(struct fgvk_queue), + 8, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); + if (!queue) + return VK_ERROR_OUT_OF_HOST_MEMORY; + + result = vk_queue_init(&queue->vk, &dev->vk, pCreateInfo, index_in_family); + if (result != VK_SUCCESS) + goto fail_alloc; + + queue->vk.driver_submit = fgvk_queue_submit; + + return VK_SUCCESS; + +fail_alloc: + vk_free(&dev->vk.alloc, queue); + + return result; +} + +void +fgvk_queue_destroy(struct fgvk_device *dev, struct fgvk_queue *queue) +{ + vk_queue_finish(&queue->vk); + vk_free(&dev->vk.alloc, queue); +} |