Single submission
This commit is contained in:
parent
7ef09ae2a8
commit
825227a067
1 changed files with 11 additions and 24 deletions
|
|
@ -64,7 +64,6 @@ private:
|
||||||
VkPipeline pipeline;
|
VkPipeline pipeline;
|
||||||
VkRenderPass renderPass;
|
VkRenderPass renderPass;
|
||||||
VkCommandPool commandPool;
|
VkCommandPool commandPool;
|
||||||
std::vector<VkCommandBuffer> cmdBuffers;
|
|
||||||
std::vector<VkFramebuffer*> frameBuffers;
|
std::vector<VkFramebuffer*> frameBuffers;
|
||||||
std::vector<VkPipelineShaderStageCreateInfo> shaderStages;
|
std::vector<VkPipelineShaderStageCreateInfo> shaderStages;
|
||||||
|
|
||||||
|
|
@ -79,6 +78,8 @@ public:
|
||||||
|
|
||||||
bool visible = true;
|
bool visible = true;
|
||||||
|
|
||||||
|
std::vector<VkCommandBuffer> cmdBuffers;
|
||||||
|
|
||||||
TextOverlay(
|
TextOverlay(
|
||||||
vks::VulkanDevice *vulkanDevice,
|
vks::VulkanDevice *vulkanDevice,
|
||||||
VkQueue queue,
|
VkQueue queue,
|
||||||
|
|
@ -622,24 +623,6 @@ public:
|
||||||
VK_CHECK_RESULT(vkEndCommandBuffer(cmdBuffers[i]));
|
VK_CHECK_RESULT(vkEndCommandBuffer(cmdBuffers[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Submit the text command buffers to a queue
|
|
||||||
// Does a queue wait idle
|
|
||||||
void submit(VkQueue queue, uint32_t bufferindex)
|
|
||||||
{
|
|
||||||
if (!visible)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
VkSubmitInfo submitInfo = {};
|
|
||||||
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;submitInfo.commandBufferCount = 1;
|
|
||||||
submitInfo.pCommandBuffers = &cmdBuffers[bufferindex];
|
|
||||||
|
|
||||||
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE));
|
|
||||||
VK_CHECK_RESULT(vkQueueWaitIdle(queue));
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -936,16 +919,20 @@ public:
|
||||||
{
|
{
|
||||||
VulkanExampleBase::prepareFrame();
|
VulkanExampleBase::prepareFrame();
|
||||||
|
|
||||||
|
std::vector<VkCommandBuffer> commandBuffers = {
|
||||||
|
drawCmdBuffers[currentBuffer]
|
||||||
|
};
|
||||||
|
if (textOverlay->visible) {
|
||||||
|
commandBuffers.push_back(textOverlay->cmdBuffers[currentBuffer]);
|
||||||
|
}
|
||||||
|
|
||||||
// Command buffer to be sumitted to the queue
|
// Command buffer to be sumitted to the queue
|
||||||
submitInfo.commandBufferCount = 1;
|
submitInfo.commandBufferCount = static_cast<uint32_t>(commandBuffers.size());
|
||||||
submitInfo.pCommandBuffers = &drawCmdBuffers[currentBuffer];
|
submitInfo.pCommandBuffers = commandBuffers.data();
|
||||||
|
|
||||||
// Submit to queue
|
// Submit to queue
|
||||||
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE));
|
VK_CHECK_RESULT(vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE));
|
||||||
|
|
||||||
// Submit text overlay to queue
|
|
||||||
textOverlay->submit(queue, currentBuffer);
|
|
||||||
|
|
||||||
VulkanExampleBase::submitFrame();
|
VulkanExampleBase::submitFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue