Ring buffer tex display descriptor sets, so multiple images can be drawn

* Otherwise the UpdateDescriptorSet for the second render overwrites the
  descriptor for the first render without a sync&flush in between.
This commit is contained in:
baldurk
2015-10-22 15:23:18 +02:00
parent 11ce77e8cd
commit 4b33e0957d
3 changed files with 49 additions and 33 deletions
+8 -1
View File
@@ -91,10 +91,17 @@ class VulkanDebugManager
VkDescriptorSetLayout m_TexDisplayDescSetLayout;
VkPipelineLayout m_TexDisplayPipeLayout;
VkDescriptorSet m_TexDisplayDescSet;
VkDescriptorSet m_TexDisplayDescSet[16]; // ring buffered to allow multiple texture renders between flushes
uint32_t m_TexDisplayNextSet;
VkPipeline m_TexDisplayPipeline, m_TexDisplayBlendPipeline;
GPUBuffer m_TexDisplayUBO;
VkDescriptorSet GetTexDisplayDescSet()
{
m_TexDisplayNextSet = (m_TexDisplayNextSet+1)%ARRAY_COUNT(m_TexDisplayDescSet);
return m_TexDisplayDescSet[m_TexDisplayNextSet];
}
VkDeviceMemory m_PickPixelImageMem;
VkImage m_PickPixelImage;
VkImageView m_PickPixelImageView;