From 0f7fc5fbeaae0020c715ac43f3f98a1c446af8e3 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 d3cae9c3a..b68cdeefa 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.cpp +++ b/renderdoc/driver/d3d11/d3d11_replay.cpp @@ -1504,6 +1504,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 5756e81a1..879d99842 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -1673,6 +1673,8 @@ void D3D12Replay::RemoveReplacement(ResourceId id) } } } + + m_pDevice->GetDebugManager()->ClearPostVSCache(); } byte *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 b3cf4cf23..c1883d238 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -2947,6 +2947,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 9f15e7d4a..e528afa97 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -5283,6 +5283,7 @@ void VulkanReplay::ReplaceResource(ResourceId from, ResourceId to) void VulkanReplay::RemoveReplacement(ResourceId id) { GetDebugManager()->RemoveReplacement(id); + GetDebugManager()->ClearPostVSCache(); } void VulkanReplay::FreeTargetResource(ResourceId id)