Fence for text overlay command buffer submission

This commit is contained in:
saschawillems 2016-08-10 20:55:12 +02:00
parent 820e23b085
commit f1fe33f37f
2 changed files with 10 additions and 4 deletions

View file

@ -66,6 +66,7 @@ private:
VkCommandPool commandPool; VkCommandPool commandPool;
std::vector<VkFramebuffer*> frameBuffers; std::vector<VkFramebuffer*> frameBuffers;
std::vector<VkPipelineShaderStageCreateInfo> shaderStages; std::vector<VkPipelineShaderStageCreateInfo> shaderStages;
VkFence fence;
// Used during text updates // Used during text updates
glm::vec4 *mappedLocal = nullptr; glm::vec4 *mappedLocal = nullptr;
@ -138,7 +139,7 @@ public:
vkDestroyRenderPass(vulkanDevice->logicalDevice, renderPass, nullptr); vkDestroyRenderPass(vulkanDevice->logicalDevice, renderPass, nullptr);
vkFreeCommandBuffers(vulkanDevice->logicalDevice, commandPool, static_cast<uint32_t>(cmdBuffers.size()), cmdBuffers.data()); vkFreeCommandBuffers(vulkanDevice->logicalDevice, commandPool, static_cast<uint32_t>(cmdBuffers.size()), cmdBuffers.data());
vkDestroyCommandPool(vulkanDevice->logicalDevice, commandPool, nullptr); vkDestroyCommandPool(vulkanDevice->logicalDevice, commandPool, nullptr);
vkDestroyFence(vulkanDevice->logicalDevice, waitFence, nullptr); vkDestroyFence(vulkanDevice->logicalDevice, fence, nullptr);
} }
/** /**
@ -346,6 +347,10 @@ public:
VkPipelineCacheCreateInfo pipelineCacheCreateInfo = {}; VkPipelineCacheCreateInfo pipelineCacheCreateInfo = {};
pipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; pipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
VK_CHECK_RESULT(vkCreatePipelineCache(vulkanDevice->logicalDevice, &pipelineCacheCreateInfo, nullptr, &pipelineCache)); VK_CHECK_RESULT(vkCreatePipelineCache(vulkanDevice->logicalDevice, &pipelineCacheCreateInfo, nullptr, &pipelineCache));
// Command buffer execution fence
VkFenceCreateInfo fenceCreateInfo = vkTools::initializers::fenceCreateInfo();
VK_CHECK_RESULT(vkCreateFence(vulkanDevice->logicalDevice, &fenceCreateInfo, nullptr, &fence));
} }
/** /**
@ -688,9 +693,10 @@ public:
submitInfo.pCommandBuffers = &cmdBuffers[bufferindex]; submitInfo.pCommandBuffers = &cmdBuffers[bufferindex];
submitInfo.commandBufferCount = 1; submitInfo.commandBufferCount = 1;
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE)); VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, fence));
//todo: fence VK_CHECK_RESULT(vkWaitForFences(vulkanDevice->logicalDevice, 1, &fence, VK_TRUE, UINT64_MAX));
VK_CHECK_RESULT(vkResetFences(vulkanDevice->logicalDevice, 1, &fence));
} }
/** /**

View file

@ -145,7 +145,7 @@ namespace vkTools
VkFramebufferCreateInfo framebufferCreateInfo(); VkFramebufferCreateInfo framebufferCreateInfo();
VkSemaphoreCreateInfo semaphoreCreateInfo(); VkSemaphoreCreateInfo semaphoreCreateInfo();
VkFenceCreateInfo fenceCreateInfo(VkFenceCreateFlags flags); VkFenceCreateInfo fenceCreateInfo(VkFenceCreateFlags flags = VK_FLAGS_NONE);
VkEventCreateInfo eventCreateInfo(); VkEventCreateInfo eventCreateInfo();
VkSubmitInfo submitInfo(); VkSubmitInfo submitInfo();