diff --git a/renderdoc/driver/gl/gl_replay.cpp b/renderdoc/driver/gl/gl_replay.cpp index 79124daa1..3d802195b 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -37,6 +37,9 @@ static const char *SPIRVDisassemblyTarget = "SPIR-V (RenderDoc)"; GLReplay::GLReplay() { + if(RenderDoc::Inst().GetCrashHandler()) + RenderDoc::Inst().GetCrashHandler()->RegisterMemoryRegion(this, sizeof(GLReplay)); + m_pDriver = NULL; m_Proxy = false; diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index f6c892226..60b47f45e 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -89,6 +89,9 @@ void VkInitParams::Set(const VkInstanceCreateInfo *pCreateInfo, ResourceId inst) WrappedVulkan::WrappedVulkan() : m_RenderState(this, &m_CreationInfo) { + if(RenderDoc::Inst().GetCrashHandler()) + RenderDoc::Inst().GetCrashHandler()->RegisterMemoryRegion(this, sizeof(WrappedVulkan)); + if(RenderDoc::Inst().IsReplayApp()) { if(VkMarkerRegion::vk == NULL) diff --git a/renderdoc/driver/vulkan/vk_debug.cpp b/renderdoc/driver/vulkan/vk_debug.cpp index 4eebd2f5e..3c6f18fe7 100644 --- a/renderdoc/driver/vulkan/vk_debug.cpp +++ b/renderdoc/driver/vulkan/vk_debug.cpp @@ -393,6 +393,9 @@ static void create(WrappedVulkan *driver, const char *objName, const int line, V VulkanDebugManager::VulkanDebugManager(WrappedVulkan *driver) { + if(RenderDoc::Inst().GetCrashHandler()) + RenderDoc::Inst().GetCrashHandler()->RegisterMemoryRegion(this, sizeof(VulkanDebugManager)); + m_pDriver = driver; m_Device = m_pDriver->GetDev(); diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 71b7f178b..2685b9cb8 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -42,6 +42,9 @@ static const char *LiveDriverDisassemblyTarget = "Live driver disassembly"; VulkanReplay::VulkanReplay() { + if(RenderDoc::Inst().GetCrashHandler()) + RenderDoc::Inst().GetCrashHandler()->RegisterMemoryRegion(this, sizeof(VulkanReplay)); + m_pDriver = NULL; m_Proxy = false; diff --git a/renderdoc/replay/replay_controller.cpp b/renderdoc/replay/replay_controller.cpp index e68d58ea4..424b19b62 100644 --- a/renderdoc/replay/replay_controller.cpp +++ b/renderdoc/replay/replay_controller.cpp @@ -178,6 +178,9 @@ ReplayController::ReplayController() m_D3D12PipelineState = NULL; m_GLPipelineState = NULL; m_VulkanPipelineState = NULL; + + if(RenderDoc::Inst().GetCrashHandler()) + RenderDoc::Inst().GetCrashHandler()->RegisterMemoryRegion(this, sizeof(ReplayController)); } ReplayController::~ReplayController() diff --git a/renderdoc/replay/replay_output.cpp b/renderdoc/replay/replay_output.cpp index 1bcb8c4e4..0ca7d079d 100644 --- a/renderdoc/replay/replay_output.cpp +++ b/renderdoc/replay/replay_output.cpp @@ -104,6 +104,9 @@ ReplayOutput::ReplayOutput(ReplayController *parent, WindowingData window, Repla m_pDevice->GetOutputWindowDimensions(m_MainOutput.outputID, m_Width, m_Height); m_CustomShaderResourceId = ResourceId(); + + if(RenderDoc::Inst().GetCrashHandler()) + RenderDoc::Inst().GetCrashHandler()->RegisterMemoryRegion(this, sizeof(ReplayController)); } ReplayOutput::~ReplayOutput()