diff --git a/renderdoc/driver/d3d11/d3d11_overlay.cpp b/renderdoc/driver/d3d11/d3d11_overlay.cpp index 7ddd1e0f6..65a5c13b2 100644 --- a/renderdoc/driver/d3d11/d3d11_overlay.cpp +++ b/renderdoc/driver/d3d11/d3d11_overlay.cpp @@ -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(); diff --git a/renderdoc/driver/gl/gl_overlay.cpp b/renderdoc/driver/gl/gl_overlay.cpp index 0818d3350..629fb854e 100644 --- a/renderdoc/driver/gl/gl_overlay.cpp +++ b/renderdoc/driver/gl/gl_overlay.cpp @@ -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 events = passEvents;