diff options
| author | shuffle2 <godisgovernment@gmail.com> | 2016-10-04 01:47:59 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-04 01:47:59 -0700 |
| commit | ea33405febf183058bb30a22f4f627fed4bb8e17 (patch) | |
| tree | 6222aceb31b2d6d922a8b3e45331b42fa1abba2d /Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp | |
| parent | 037f0a1803c274ce7e9f97ff9b7baed2955b9004 (diff) | |
| parent | 28e5fa8d261cd486e9339a66d91b4713e83d9a14 (diff) | |
Merge pull request #4270 from stenzek/vulkan-defer-fix
Vulkan: Miscellaneous minor fixes
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp b/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp index 531327f53a..f78cf9953f 100644 --- a/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp +++ b/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp @@ -46,6 +46,7 @@ FramebufferManager::~FramebufferManager() DestroyReadbackRenderPasses(); DestroyPokeVertexBuffer(); + DestroyPokeShaders(); } bool FramebufferManager::Initialize() @@ -207,6 +208,12 @@ void FramebufferManager::DestroyEFBRenderPass() m_efb_load_render_pass = VK_NULL_HANDLE; } + if (m_efb_clear_render_pass != VK_NULL_HANDLE) + { + vkDestroyRenderPass(g_vulkan_context->GetDevice(), m_efb_clear_render_pass, nullptr); + m_efb_clear_render_pass = VK_NULL_HANDLE; + } + if (m_depth_resolve_render_pass != VK_NULL_HANDLE) { vkDestroyRenderPass(g_vulkan_context->GetDevice(), m_depth_resolve_render_pass, nullptr); @@ -352,6 +359,18 @@ void FramebufferManager::DestroyEFBFramebuffer() m_efb_framebuffer = VK_NULL_HANDLE; } + if (m_efb_convert_framebuffer != VK_NULL_HANDLE) + { + vkDestroyFramebuffer(g_vulkan_context->GetDevice(), m_efb_convert_framebuffer, nullptr); + m_efb_convert_framebuffer = VK_NULL_HANDLE; + } + + if (m_depth_resolve_framebuffer != VK_NULL_HANDLE) + { + vkDestroyFramebuffer(g_vulkan_context->GetDevice(), m_depth_resolve_framebuffer, nullptr); + m_depth_resolve_framebuffer = VK_NULL_HANDLE; + } + m_efb_color_texture.reset(); m_efb_convert_color_texture.reset(); m_efb_depth_texture.reset(); @@ -899,9 +918,15 @@ bool FramebufferManager::CreateReadbackRenderPasses() void FramebufferManager::DestroyReadbackRenderPasses() { if (m_copy_color_render_pass != VK_NULL_HANDLE) + { vkDestroyRenderPass(g_vulkan_context->GetDevice(), m_copy_color_render_pass, nullptr); + m_copy_color_render_pass = VK_NULL_HANDLE; + } if (m_copy_depth_render_pass != VK_NULL_HANDLE) + { vkDestroyRenderPass(g_vulkan_context->GetDevice(), m_copy_depth_render_pass, nullptr); + m_copy_depth_render_pass = VK_NULL_HANDLE; + } } bool FramebufferManager::CompileReadbackShaders() @@ -1238,6 +1263,7 @@ bool FramebufferManager::CreatePokeVertexBuffer() void FramebufferManager::DestroyPokeVertexBuffer() { + m_poke_vertex_stream_buffer.reset(); } bool FramebufferManager::CompilePokeShaders() |
