From ca07c1626e086abce43cb158127dc4fdc7ffbaad Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 16 Jan 2020 11:52:29 +0000 Subject: [PATCH] Fix MSAA mismatch in mesh view output rendering --- renderdoc/driver/d3d12/d3d12_outputwindow.cpp | 10 +++++----- renderdoc/driver/d3d12/d3d12_replay.cpp | 4 ++-- renderdoc/driver/d3d12/d3d12_replay.h | 1 - 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_outputwindow.cpp b/renderdoc/driver/d3d12/d3d12_outputwindow.cpp index e2a7abc93..5beb119ac 100644 --- a/renderdoc/driver/d3d12/d3d12_outputwindow.cpp +++ b/renderdoc/driver/d3d12/d3d12_outputwindow.cpp @@ -446,7 +446,7 @@ void D3D12Replay::GetOutputWindowData(uint64_t id, bytebuf &retData) dst.PlacedFootprint = layout; // resolve or copy from colour to backbuffer - if(outw.multisampled) + if(outw.colResolve) { D3D12_RESOURCE_BARRIER resolvebarrier = {}; @@ -585,7 +585,7 @@ void D3D12Replay::FlipOutputWindow(uint64_t id) colbarrier.Transition.pResource = outw.col; colbarrier.Transition.StateBefore = D3D12_RESOURCE_STATE_RENDER_TARGET; colbarrier.Transition.StateAfter = - outw.multisampled ? D3D12_RESOURCE_STATE_RESOLVE_SOURCE : D3D12_RESOURCE_STATE_COPY_SOURCE; + outw.colResolve ? D3D12_RESOURCE_STATE_RESOLVE_SOURCE : D3D12_RESOURCE_STATE_COPY_SOURCE; bbbarrier.Transition.pResource = outw.bb[outw.bbIdx]; bbbarrier.Transition.StateBefore = D3D12_RESOURCE_STATE_PRESENT; @@ -598,7 +598,7 @@ void D3D12Replay::FlipOutputWindow(uint64_t id) ID3D12GraphicsCommandList *list = m_pDevice->GetNewList(); // resolve or copy from colour to backbuffer - if(outw.multisampled) + if(outw.colResolve) { // transition colour to resolve source, resolve target to resolve dest, backbuffer to copy dest list->ResourceBarrier(1, &colbarrier); @@ -641,13 +641,13 @@ void D3D12Replay::FlipOutputWindow(uint64_t id) if(m_D3D12On7) { - ID3D12Resource *res = outw.multisampled ? outw.colResolve : outw.col; + ID3D12Resource *res = outw.colResolve ? outw.colResolve : outw.col; D3D12_RESOURCE_BARRIER toPresent = {}; toPresent.Transition.pResource = res; toPresent.Transition.StateBefore = - outw.multisampled ? D3D12_RESOURCE_STATE_COPY_SOURCE : D3D12_RESOURCE_STATE_RENDER_TARGET; + outw.colResolve ? D3D12_RESOURCE_STATE_COPY_SOURCE : D3D12_RESOURCE_STATE_RENDER_TARGET; toPresent.Transition.StateAfter = D3D12_RESOURCE_STATE_PRESENT; list->ResourceBarrier(1, &toPresent); diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index 6fbf9af54..a8b804c2e 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -1678,8 +1678,8 @@ void D3D12Replay::RenderCheckerboard() list->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); - list->SetPipelineState(outw.multisampled ? m_General.CheckerboardMSAAPipe - : m_General.CheckerboardPipe); + list->SetPipelineState(outw.colResolve ? m_General.CheckerboardMSAAPipe + : m_General.CheckerboardPipe); list->SetGraphicsRootSignature(m_General.CheckerboardRootSig); diff --git a/renderdoc/driver/d3d12/d3d12_replay.h b/renderdoc/driver/d3d12/d3d12_replay.h index 63e029c40..58049e37c 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.h +++ b/renderdoc/driver/d3d12/d3d12_replay.h @@ -312,7 +312,6 @@ private: void MakeDSV(); int width, height; - bool multisampled; }; float m_OutputWidth = 1.0f;