summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authordonkopunchstania <donkopunchstania@gmail.com>2010-02-25 03:14:40 +0000
committerdonkopunchstania <donkopunchstania@gmail.com>2010-02-25 03:14:40 +0000
commit4915097d93adba1c0dfe3948ee7ccfc0d9fd9fda (patch)
tree39b54a4352841d1ca5be5096a96078cecd13b062 /Source
parentaa1081348ddea851fff3f41ba6cd4c965c111f9e (diff)
fix some D3D memory leaks
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5127 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source')
-rw-r--r--Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp11
-rw-r--r--Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp6
2 files changed, 16 insertions, 1 deletions
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();