From caf863be4d2433c55609838cad8f02ee3f39a9b9 Mon Sep 17 00:00:00 2001 From: vlj Date: Thu, 4 Jun 2015 19:03:24 +0200 Subject: [PATCH] d3d12: Fix crash at exit --- rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp b/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp index 21246d4d25..d518770e14 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp @@ -84,6 +84,8 @@ void D3D12GSRender::ResourceStorage::Reset() m_constantsBufferIndex = 0; m_currentScaleOffsetBufferIndex = 0; m_currentTextureIndex = 0; + m_frameFinishedFence = nullptr; + m_frameFinishedHandle = 0; for (auto tmp : m_inUseConstantsBuffers) std::get<2>(tmp)->Release(); @@ -160,8 +162,10 @@ void D3D12GSRender::ResourceStorage::Release() m_commandAllocator->Release(); m_textureUploadCommandAllocator->Release(); m_downloadCommandAllocator->Release(); - CloseHandle(m_frameFinishedHandle); - m_frameFinishedFence->Release(); + if (m_frameFinishedHandle) + CloseHandle(m_frameFinishedHandle); + if (m_frameFinishedFence) + m_frameFinishedFence->Release(); } // 32 bits float to U8 unorm CS