summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
diff options
context:
space:
mode:
authorshuffle2 <godisgovernment@gmail.com>2016-10-04 01:47:59 -0700
committerGitHub <noreply@github.com>2016-10-04 01:47:59 -0700
commitea33405febf183058bb30a22f4f627fed4bb8e17 (patch)
tree6222aceb31b2d6d922a8b3e45331b42fa1abba2d /Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
parent037f0a1803c274ce7e9f97ff9b7baed2955b9004 (diff)
parent28e5fa8d261cd486e9339a66d91b4713e83d9a14 (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.cpp26
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()