From d0816231810e95b8c9a67042b2e60dd3bc490e35 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 13 Dec 2017 12:01:43 +0000 Subject: [PATCH] Removing a resource replacement also needs to clear PostVS cache --- renderdoc/driver/d3d11/d3d11_replay.cpp | 1 + renderdoc/driver/d3d12/d3d12_replay.cpp | 2 ++ renderdoc/driver/gl/gl_replay.cpp | 1 + renderdoc/driver/vulkan/vk_replay.cpp | 1 + 4 files changed, 5 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_replay.cpp b/renderdoc/driver/d3d11/d3d11_replay.cpp index 3dcec1f63..3acb1b9c8 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.cpp +++ b/renderdoc/driver/d3d11/d3d11_replay.cpp @@ -1385,6 +1385,7 @@ void D3D11Replay::ReplaceResource(ResourceId from, ResourceId to) void D3D11Replay::RemoveReplacement(ResourceId id) { m_pDevice->GetResourceManager()->RemoveReplacement(id); + m_pDevice->GetDebugManager()->ClearPostVSCache(); } vector D3D11Replay::EnumerateCounters() diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index 453535ed4..6574ede06 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -1637,6 +1637,8 @@ void D3D12Replay::RemoveReplacement(ResourceId id) } } } + + m_pDevice->GetDebugManager()->ClearPostVSCache(); } void D3D12Replay::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_t mip, diff --git a/renderdoc/driver/gl/gl_replay.cpp b/renderdoc/driver/gl/gl_replay.cpp index 16327f165..a731289a3 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -2839,6 +2839,7 @@ void GLReplay::RemoveReplacement(ResourceId id) { MakeCurrentReplayContext(&m_ReplayCtx); m_pDriver->RemoveReplacement(id); + ClearPostVSCache(); } void GLReplay::FreeTargetResource(ResourceId id) diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 91aece1a2..bfc982471 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -5311,6 +5311,7 @@ void VulkanReplay::ReplaceResource(ResourceId from, ResourceId to) void VulkanReplay::RemoveReplacement(ResourceId id) { GetDebugManager()->RemoveReplacement(id); + GetDebugManager()->ClearPostVSCache(); } void VulkanReplay::FreeTargetResource(ResourceId id)