From 5187093ddcb2926d7bed005820085c55631c69c4 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Thu, 24 Feb 2022 22:06:00 -0800 Subject: [PATCH] reset command buffers on the thread they were spawned --- src/Refresh_Driver_Vulkan.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/Refresh_Driver_Vulkan.c b/src/Refresh_Driver_Vulkan.c index ea34b3d..1b3aa84 100644 --- a/src/Refresh_Driver_Vulkan.c +++ b/src/Refresh_Driver_Vulkan.c @@ -8218,6 +8218,7 @@ static Refresh_CommandBuffer* VULKAN_AcquireCommandBuffer( uint8_t fixed ) { VulkanRenderer *renderer = (VulkanRenderer*) driverData; + VkResult result; SDL_threadID threadID = SDL_ThreadID(); @@ -8244,6 +8245,16 @@ static Refresh_CommandBuffer* VULKAN_AcquireCommandBuffer( commandBuffer->renderPassInProgress = 0; commandBuffer->renderPassColorTargetCount = 0; + result = renderer->vkResetCommandBuffer( + commandBuffer->commandBuffer, + VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT + ); + + if (result != VK_SUCCESS) + { + LogVulkanResultAsError("vkResetCommandBuffer", result); + } + VULKAN_INTERNAL_BeginCommandBuffer(renderer, commandBuffer); return (Refresh_CommandBuffer*) commandBuffer; @@ -8418,21 +8429,8 @@ static void VULKAN_INTERNAL_CleanCommandBuffer( ) { uint32_t i; VulkanUniformBuffer *uniformBuffer; - VkResult result; DescriptorSetData *descriptorSetData; - result = renderer->vkResetCommandBuffer( - commandBuffer->commandBuffer, - VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT - ); - - if (result != VK_SUCCESS) - { - LogVulkanResultAsError("vkResetCommandBuffer", result); - } - - commandBuffer->submitted = 0; - /* Bound uniform buffers are now available */ for (i = 0; i < commandBuffer->boundUniformBufferCount; i += 1)