Don't get command buffer too early in vulkan replay

* This is because we always submit all command buffers we fetch, and we don't
  want to submit empty command buffers.
This commit is contained in:
baldurk
2020-01-14 18:02:11 +00:00
parent 3d8f9cfade
commit 0b5ac81ff0
2 changed files with 6 additions and 3 deletions
+2 -1
View File
@@ -157,7 +157,6 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn
const bool f32render = (flags & eTexDisplay_32Render) != 0;
VkDevice dev = m_pDriver->GetDev();
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
const VkDevDispatchTable *vt = ObjDisp(dev);
ImageLayouts &layouts = m_pDriver->m_ImageLayouts[cfg.resourceId];
@@ -477,6 +476,8 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn
vt->UpdateDescriptorSets(Unwrap(dev), (uint32_t)writeSets.size(), &writeSets[0], 0, NULL);
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL,
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT};
+4 -2
View File
@@ -2157,7 +2157,6 @@ bool VulkanReplay::GetMinMax(ResourceId texid, const Subresource &sub, CompType
bool stencil, float *minval, float *maxval)
{
VkDevice dev = m_pDriver->GetDev();
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
const VkDevDispatchTable *vt = ObjDisp(dev);
ImageLayouts &layouts = m_pDriver->m_ImageLayouts[texid];
@@ -2353,6 +2352,8 @@ bool VulkanReplay::GetMinMax(ResourceId texid, const Subresource &sub, CompType
VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL,
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT};
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo);
DoPipelineBarrier(cmd, setupBarriers.size(), setupBarriers.data());
@@ -2451,7 +2452,6 @@ bool VulkanReplay::GetHistogram(ResourceId texid, const Subresource &sub, CompTy
return false;
VkDevice dev = m_pDriver->GetDev();
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
const VkDevDispatchTable *vt = ObjDisp(dev);
ImageLayouts &layouts = m_pDriver->m_ImageLayouts[texid];
@@ -2656,6 +2656,8 @@ bool VulkanReplay::GetHistogram(ResourceId texid, const Subresource &sub, CompTy
VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL,
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT};
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo);
rdcarray<VkImageMemoryBarrier> setupBarriers, cleanupBarriers;