Vulkan overlay TriangleSize (Pass) : set the viewport per event

The viewport might change during the pass leading to different Triangle Size results for (Pass) and (Draw) modes
This commit is contained in:
Jake Turner
2026-06-04 11:34:47 +01:00
parent 83d996b369
commit d3c5312377
+18 -18
View File
@@ -3771,26 +3771,26 @@ ResourceId VulkanReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, D
lastView = 31 - Bits::CountLeadingZeroes(multiviewMask);
}
for(uint32_t view = firstView; view <= lastView; view++)
{
Vec4f *ubo = (Vec4f *)m_Overlay.m_TriSizeUBO.Map(&viewOffset[view]);
if(!ubo)
return ResourceId();
if(viewportPerView)
{
*ubo = Vec4f(state.views[view].width, state.views[view].height, 0.0f, 0.0f);
}
else
{
*ubo = Vec4f(state.views[0].width, state.views[0].height, 0.0f, 0.0f);
}
m_Overlay.m_TriSizeUBO.Unmap();
}
for(size_t i = 0; i < events.size(); i++)
{
for(uint32_t view = firstView; view <= lastView; view++)
{
Vec4f *ubo = (Vec4f *)m_Overlay.m_TriSizeUBO.Map(&viewOffset[view]);
if(!ubo)
return ResourceId();
if(viewportPerView)
{
*ubo = Vec4f(state.views[view].width, state.views[view].height, 0.0f, 0.0f);
}
else
{
*ubo = Vec4f(state.views[0].width, state.views[0].height, 0.0f, 0.0f);
}
m_Overlay.m_TriSizeUBO.Unmap();
}
cmd = m_pDriver->GetNextCmd();
if(cmd == VK_NULL_HANDLE)