From b273739e66503cdcd1f0071156a25c85d386700b Mon Sep 17 00:00:00 2001 From: saschawillems Date: Sun, 9 Sep 2018 10:05:21 +0200 Subject: [PATCH] Command buffer fence ordering --- examples/multithreading/multithreading.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/multithreading/multithreading.cpp b/examples/multithreading/multithreading.cpp index b0a22157..6830008d 100644 --- a/examples/multithreading/multithreading.cpp +++ b/examples/multithreading/multithreading.cpp @@ -614,15 +614,6 @@ public: void draw() { - VulkanExampleBase::prepareFrame(); - - updateCommandBuffers(frameBuffers[currentBuffer]); - - submitInfo.commandBufferCount = 1; - submitInfo.pCommandBuffers = &primaryCommandBuffer; - - VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, renderFence)); - // Wait for fence to signal that all command buffers are ready VkResult fenceRes; do { @@ -631,6 +622,15 @@ public: VK_CHECK_RESULT(fenceRes); vkResetFences(device, 1, &renderFence); + updateCommandBuffers(frameBuffers[currentBuffer]); + + VulkanExampleBase::prepareFrame(); + + submitInfo.commandBufferCount = 1; + submitInfo.pCommandBuffers = &primaryCommandBuffer; + + VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, renderFence)); + VulkanExampleBase::submitFrame(); } @@ -638,7 +638,7 @@ public: { VulkanExampleBase::prepare(); // Create a fence for synchronization - VkFenceCreateInfo fenceCreateInfo = vks::initializers::fenceCreateInfo(VK_FLAGS_NONE); + VkFenceCreateInfo fenceCreateInfo = vks::initializers::fenceCreateInfo(VK_FENCE_CREATE_SIGNALED_BIT); vkCreateFence(device, &fenceCreateInfo, NULL, &renderFence); loadMeshes(); setupVertexDescriptions();