diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp index b9b020291e..81655bfdc4 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp @@ -320,7 +320,16 @@ HRESULT Create(int adapter, HWND wnd, bool _fullscreen, int _resolution, int aa_ void Close() { - dev->Release(); + if (back_buffer_z) + back_buffer_z->Release(); + back_buffer_z = NULL; + back_buffer->Release(); + back_buffer = NULL; + + ULONG references = dev->Release(); + if (references) + ERROR_LOG(VIDEO, "Unreleased references: %i.", references); + dev = 0; } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp index 698246bcc0..79ee04218c 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp @@ -247,9 +247,15 @@ void VertexShaderCache::Shutdown() if (SimpleVertexShader) SimpleVertexShader->Release(); SimpleVertexShader = NULL; + + if (ClearVertexShader) + ClearVertexShader->Release(); + ClearVertexShader = NULL; + if (FSAAVertexShader) FSAAVertexShader->Release(); FSAAVertexShader = NULL; + Clear(); g_vs_disk_cache.Sync(); g_vs_disk_cache.Close();