From df954d8522bd694adb2e3acadd8aabaaa1478efa Mon Sep 17 00:00:00 2001 From: Greg Wells Date: Sun, 6 Jul 2025 06:49:33 -0400 Subject: [PATCH] single use command buffers --- .../src/commands/command_buffer/vulkan_command_buffer.c | 6 +++++- .../vulkan/src/commands/command_pool/vulkan_command_pool.c | 2 -- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/projects/apis/vulkan/src/commands/command_buffer/vulkan_command_buffer.c b/projects/apis/vulkan/src/commands/command_buffer/vulkan_command_buffer.c index bda2ef0..8b1ad3e 100644 --- a/projects/apis/vulkan/src/commands/command_buffer/vulkan_command_buffer.c +++ b/projects/apis/vulkan/src/commands/command_buffer/vulkan_command_buffer.c @@ -30,9 +30,13 @@ void resetCommandBuffer(gnCommandBufferHandle commandBuffer) { gnReturnCode beginCommandBuffer(gnCommandBufferHandle commandBuffer) { VkCommandBufferBeginInfo beginInfo = { - .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO + .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, + .flags = 0 }; + if ((commandBuffer->commandPool->info.flags & GN_REUSE_COMMAND_BUFFERS) != GN_REUSE_COMMAND_BUFFERS) + beginInfo.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; + if (vkBeginCommandBuffer(commandBuffer->commandBuffer->buffer, &beginInfo) != VK_SUCCESS) { return GN_FAILED_TO_BEGIN_RECORDING; } diff --git a/projects/apis/vulkan/src/commands/command_pool/vulkan_command_pool.c b/projects/apis/vulkan/src/commands/command_pool/vulkan_command_pool.c index a3ce176..59121b4 100644 --- a/projects/apis/vulkan/src/commands/command_pool/vulkan_command_pool.c +++ b/projects/apis/vulkan/src/commands/command_pool/vulkan_command_pool.c @@ -10,8 +10,6 @@ gnReturnCode createCommandPool(gnCommandPool commandPool, gnDevice device, gnCom .queueFamilyIndex = info.queueIndex, }; - if ((info.flags & GN_REUSE_COMMAND_BUFFERS) != GN_REUSE_COMMAND_BUFFERS) poolInfo.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - if (vkCreateCommandPool(device->outputDevice->device, &poolInfo, NULL, &commandPool->commandPool->commandPool) != VK_SUCCESS) { return GN_FAILED_TO_CREATE_COMMAND_POOL; }