From 4915097d93adba1c0dfe3948ee7ccfc0d9fd9fda Mon Sep 17 00:00:00 2001 From: donkopunchstania Date: Thu, 25 Feb 2010 03:14:40 +0000 Subject: [PATCH] fix some D3D memory leaks git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5127 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp | 11 ++++++++++- .../Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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();