diff options
| author | donkopunchstania <donkopunchstania@gmail.com> | 2010-02-25 03:14:40 +0000 |
|---|---|---|
| committer | donkopunchstania <donkopunchstania@gmail.com> | 2010-02-25 03:14:40 +0000 |
| commit | 4915097d93adba1c0dfe3948ee7ccfc0d9fd9fda (patch) | |
| tree | 39b54a4352841d1ca5be5096a96078cecd13b062 /Source | |
| parent | aa1081348ddea851fff3f41ba6cd4c965c111f9e (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.cpp | 11 | ||||
| -rw-r--r-- | Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp | 6 |
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(); |
