mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-13 09:15:36 +00:00
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:
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user