mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-14 05:50:51 +00:00
When transitioning image subresources, set the range on each iteration
This commit is contained in:
@@ -1046,6 +1046,7 @@ bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res)
|
||||
|
||||
for (size_t si = 0; si < layout->subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layout->subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.oldLayout = layout->subresourceStates[si].newLayout;
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -1094,6 +1095,7 @@ bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res)
|
||||
|
||||
for (size_t si = 0; si < layout->subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layout->subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.newLayout = layout->subresourceStates[si].newLayout;
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -1830,6 +1832,7 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager
|
||||
|
||||
for (size_t si = 0; si < m_ImageLayouts[id].subresourceStates.size(); si++)
|
||||
{
|
||||
barrier.subresourceRange = m_ImageLayouts[id].subresourceStates[si].subresourceRange;
|
||||
barrier.oldLayout = m_ImageLayouts[id].subresourceStates[si].newLayout;
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrierptr);
|
||||
}
|
||||
@@ -1847,6 +1850,7 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager
|
||||
|
||||
for (size_t si = 0; si < m_ImageLayouts[id].subresourceStates.size(); si++)
|
||||
{
|
||||
barrier.subresourceRange = m_ImageLayouts[id].subresourceStates[si].subresourceRange;
|
||||
barrier.newLayout = m_ImageLayouts[id].subresourceStates[si].newLayout;
|
||||
barrier.dstAccessMask |= MakeAccessMask(barrier.newLayout);
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrierptr);
|
||||
@@ -1880,6 +1884,7 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager
|
||||
|
||||
for (size_t si = 0; si < m_ImageLayouts[id].subresourceStates.size(); si++)
|
||||
{
|
||||
barrier.subresourceRange = m_ImageLayouts[id].subresourceStates[si].subresourceRange;
|
||||
barrier.oldLayout = m_ImageLayouts[id].subresourceStates[si].newLayout;
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrierptr);
|
||||
}
|
||||
@@ -1897,6 +1902,7 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager
|
||||
|
||||
for (size_t si = 0; si < m_ImageLayouts[id].subresourceStates.size(); si++)
|
||||
{
|
||||
barrier.subresourceRange = m_ImageLayouts[id].subresourceStates[si].subresourceRange;
|
||||
barrier.newLayout = m_ImageLayouts[id].subresourceStates[si].newLayout;
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrierptr);
|
||||
}
|
||||
@@ -1957,6 +1963,7 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager
|
||||
|
||||
for (size_t si = 0; si < m_ImageLayouts[id].subresourceStates.size(); si++)
|
||||
{
|
||||
dstimBarrier.subresourceRange = m_ImageLayouts[id].subresourceStates[si].subresourceRange;
|
||||
dstimBarrier.oldLayout = m_ImageLayouts[id].subresourceStates[si].newLayout;
|
||||
dstimBarrier.srcAccessMask = VK_ACCESS_ALL_WRITE_BITS | MakeAccessMask(dstimBarrier.oldLayout);
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
@@ -1976,6 +1983,7 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager
|
||||
|
||||
for (size_t si = 0; si < m_ImageLayouts[id].subresourceStates.size(); si++)
|
||||
{
|
||||
dstimBarrier.subresourceRange = m_ImageLayouts[id].subresourceStates[si].subresourceRange;
|
||||
dstimBarrier.newLayout = m_ImageLayouts[id].subresourceStates[si].newLayout;
|
||||
dstimBarrier.dstAccessMask |= MakeAccessMask(dstimBarrier.newLayout);
|
||||
ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
|
||||
@@ -1165,6 +1165,7 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn
|
||||
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.oldLayout = layouts.subresourceStates[si].newLayout;
|
||||
srcimBarrier.srcAccessMask = VK_ACCESS_ALL_WRITE_BITS | MakeAccessMask(srcimBarrier.oldLayout);
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
@@ -1198,6 +1199,7 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn
|
||||
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.newLayout = layouts.subresourceStates[si].newLayout;
|
||||
srcimBarrier.dstAccessMask = MakeAccessMask(srcimBarrier.newLayout);
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
@@ -3545,6 +3547,7 @@ bool VulkanReplay::GetMinMax(ResourceId texid, uint32_t sliceFace, uint32_t mip,
|
||||
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.oldLayout = layouts.subresourceStates[si].newLayout;
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -3574,6 +3577,7 @@ bool VulkanReplay::GetMinMax(ResourceId texid, uint32_t sliceFace, uint32_t mip,
|
||||
// image layout back to normal
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.newLayout = layouts.subresourceStates[si].newLayout;
|
||||
srcimBarrier.dstAccessMask = MakeAccessMask(srcimBarrier.newLayout);
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
@@ -3749,6 +3753,7 @@ bool VulkanReplay::GetHistogram(ResourceId texid, uint32_t sliceFace, uint32_t m
|
||||
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.oldLayout = layouts.subresourceStates[si].newLayout;
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -3780,6 +3785,7 @@ bool VulkanReplay::GetHistogram(ResourceId texid, uint32_t sliceFace, uint32_t m
|
||||
// image layout back to normal
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.newLayout = layouts.subresourceStates[si].newLayout;
|
||||
srcimBarrier.dstAccessMask = MakeAccessMask(srcimBarrier.newLayout);
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
@@ -4176,6 +4182,7 @@ byte *VulkanReplay::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_t m
|
||||
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.oldLayout = layouts.subresourceStates[si].newLayout;
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -4198,6 +4205,7 @@ byte *VulkanReplay::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_t m
|
||||
// image layout back to normal
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.newLayout = layouts.subresourceStates[si].newLayout;
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -4246,6 +4254,7 @@ byte *VulkanReplay::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_t m
|
||||
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.oldLayout = layouts.subresourceStates[si].newLayout;
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
@@ -4297,6 +4306,7 @@ byte *VulkanReplay::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_t m
|
||||
// image layout back to normal
|
||||
for (size_t si = 0; si < layouts.subresourceStates.size(); si++)
|
||||
{
|
||||
srcimBarrier.subresourceRange = layouts.subresourceStates[si].subresourceRange;
|
||||
srcimBarrier.newLayout = layouts.subresourceStates[si].newLayout;
|
||||
vt->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, 1, &barrier);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user