Ensure D3D12 triangle size overlay is in a consistent state before pass

This commit is contained in:
baldurk
2018-11-01 12:23:13 +00:00
parent bfb64300e4
commit 2d7bb94e6a
+15
View File
@@ -836,6 +836,18 @@ ResourceId D3D12Replay::RenderOverlay(ResourceId texid, CompType typeHint, Debug
events.push_back(eventId);
if(overlay == DebugOverlay::TriangleSizePass)
{
list->Close();
list = NULL;
m_pDevice->ReplayLog(0, events[0], eReplay_WithoutDraw);
list = m_pDevice->GetNewList();
}
pipe = m_pDevice->GetResourceManager()->GetCurrentAs<WrappedID3D12PipelineState>(rs.pipe);
D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC pipeDesc;
pipe->Fill(pipeDesc);
pipeDesc.pRootSignature = m_General.ConstOnlyRootSig;
@@ -903,6 +915,9 @@ ResourceId D3D12Replay::RenderOverlay(ResourceId texid, CompType typeHint, Debug
D3D12_RECT scissor = {0, 0, 16384, 16384};
list->RSSetScissorRects(1, &scissor);
list->OMSetStencilRef(rs.stencilRef);
list->OMSetBlendFactor(rs.blendFactor);
list->SetGraphicsRootSignature(m_General.ConstOnlyRootSig);
list->SetGraphicsRootConstantBufferView(