From 1cfa46e7714e6aa15d6056d0b54f31b337edd63c Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 18 Oct 2019 15:35:38 +0100 Subject: [PATCH] Don't call D3D12 FirstFrame() on destruct, but on construct --- renderdoc/driver/d3d12/d3d12_device.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 0be120fae..0412a95ec 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -444,6 +444,11 @@ WrappedID3D12Device::WrappedID3D12Device(ID3D12Device *realDevice, D3D12InitPara { RDCDEBUG("Couldn't get ID3D12InfoQueue."); } + + if(!RenderDoc::Inst().IsReplayApp()) + { + FirstFrame(NULL); + } } WrappedID3D12Device::~WrappedID3D12Device() @@ -523,11 +528,6 @@ WrappedID3D12Device::~WrappedID3D12Device() if(RenderDoc::Inst().GetCrashHandler()) RenderDoc::Inst().GetCrashHandler()->UnregisterMemoryRegion(this); - - if(!RenderDoc::Inst().IsReplayApp()) - { - FirstFrame(NULL); - } } HRESULT WrappedID3D12Device::QueryInterface(REFIID riid, void **ppvObject) @@ -908,7 +908,7 @@ void WrappedID3D12Device::FirstFrame(IDXGISwapper *swapper) // if we have to capture the first frame, begin capturing immediately if(IsBackgroundCapturing(m_State) && RenderDoc::Inst().ShouldTriggerCapture(0)) { - RenderDoc::Inst().StartFrameCapture((ID3D12Device *)this, swapper->GetHWND()); + RenderDoc::Inst().StartFrameCapture((ID3D12Device *)this, swapper ? swapper->GetHWND() : NULL); m_AppControlledCapture = false; }