Use initial viewport for triangle size overlay

* Due to the way we render the triangle size overlay we don't respect state
  changes mid-way through a pass, but we should at least correctly use the
  viewport from the start of the pass.
This commit is contained in:
baldurk
2018-11-01 12:23:11 +00:00
parent 8c3cc36e9c
commit 2f297157ba
2 changed files with 6 additions and 4 deletions
+5 -3
View File
@@ -648,9 +648,6 @@ ResourceId D3D11Replay::RenderOverlay(ResourceId texid, CompType typeHint, Debug
ID3D11Buffer *psbuf = GetDebugManager()->MakeCBuffer(&overdrawRamp[0].x, sizeof(overdrawRamp));
Vec4f viewport = Vec4f((float)details.texWidth, (float)details.texHeight);
ID3D11Buffer *gsbuf = GetDebugManager()->MakeCBuffer(&viewport.x, sizeof(viewport));
float overlayConsts[] = {0.0f, 0.0f, 0.0f, 0.0f};
m_pImmediateContext->ClearRenderTargetView(rtv, overlayConsts);
@@ -666,6 +663,11 @@ ResourceId D3D11Replay::RenderOverlay(ResourceId texid, CompType typeHint, Debug
events.push_back(eventId);
D3D11_VIEWPORT view = m_pImmediateContext->GetCurrentPipelineState()->RS.Viewports[0];
Vec4f viewport = Vec4f(view.Width, view.Height);
ID3D11Buffer *gsbuf = GetDebugManager()->MakeCBuffer(&viewport.x, sizeof(viewport));
for(size_t i = 0; i < events.size(); i++)
{
D3D11RenderState oldstate = *m_pImmediateContext->GetCurrentPipelineState();
+1 -1
View File
@@ -854,7 +854,7 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
drv.glBindBuffer(eGL_COPY_WRITE_BUFFER, DebugData.UBOs[2]);
v = (Vec4f *)drv.glMapBufferRange(eGL_COPY_WRITE_BUFFER, 0, sizeof(Vec4f),
GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT);
*v = Vec4f((float)texDetails.width, (float)texDetails.height);
*v = Vec4f(rs.Viewports[0].width, rs.Viewports[0].height);
drv.glUnmapBuffer(eGL_COPY_WRITE_BUFFER);
vector<uint32_t> events = passEvents;