From 330483008647e4ea4734370eb0685aa012c6d3c8 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 13 Jul 2015 00:02:54 +0200 Subject: [PATCH] Fix pixel history shader output values when looking at a mip --- renderdoc/driver/d3d11/d3d11_analyse.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_analyse.cpp b/renderdoc/driver/d3d11/d3d11_analyse.cpp index 9cf8040a1..ea622ff61 100644 --- a/renderdoc/driver/d3d11/d3d11_analyse.cpp +++ b/renderdoc/driver/d3d11/d3d11_analyse.cpp @@ -3890,10 +3890,16 @@ vector D3D11DebugManager::PixelHistory(uint32_t frameID, vect uint32_t(intTex), }; + uint32_t shadoutsrcxyData[8]; + memcpy(shadoutsrcxyData, srcxyData, sizeof(srcxyData)); + srcxyData[2] = multisampled ? sampleIdx : 0; + ID3D11Buffer *srcxyCBuf = MakeCBuffer(sizeof(srcxyData)); + ID3D11Buffer *shadoutsrcxyCBuf = MakeCBuffer(sizeof(shadoutsrcxyData)); ID3D11Buffer *storexyCBuf = MakeCBuffer(sizeof(srcxyData)); FillCBuffer(srcxyCBuf, (float *)srcxyData, sizeof(srcxyData)); + FillCBuffer(shadoutsrcxyCBuf, (float *)srcxyData, sizeof(shadoutsrcxyData)); // so we do: // per sample: orig depth --copy--> depthCopyXXX (created/upsized on demand) --CS pixel copy--> pixstoreDepth @@ -4085,6 +4091,7 @@ vector D3D11DebugManager::PixelHistory(uint32_t frameID, vect SAFE_RELEASE(depthCopyD16_DepthSRV); SAFE_RELEASE(srcxyCBuf); + SAFE_RELEASE(shadoutsrcxyCBuf); SAFE_RELEASE(storexyCBuf); return history; @@ -5338,6 +5345,7 @@ vector D3D11DebugManager::PixelHistory(uint32_t frameID, vect shadoutCopyParams.sourceTex = shadoutCopyParams.srvTex = shadOutput; shadoutCopyParams.srv[0] = shadOutputSRV; shadoutCopyParams.uav = shadoutStoreUAV; + shadoutCopyParams.srcxyCBuf = shadoutsrcxyCBuf; depthCopyParams.sourceTex = depthCopyParams.srvTex = shaddepthOutput; depthCopyParams.srv[0] = shaddepthOutputDepthSRV; @@ -5861,6 +5869,7 @@ vector D3D11DebugManager::PixelHistory(uint32_t frameID, vect SAFE_RELEASE(depthCopyD16_DepthSRV); SAFE_RELEASE(srcxyCBuf); + SAFE_RELEASE(shadoutsrcxyCBuf); SAFE_RELEASE(storexyCBuf); return history;