Vulkan: Fix vulkan2d deletion order.

This commit is contained in:
Unknown W. Brackets committed 2016-10-09 12:43:27 -07:00
1 parent 39d6ea2985
commit 8b5aba9d93
3 files changed
+9 -6

No files matched your search

+4 -6
View File
@@ -100,6 +100,7 @@ FramebufferManagerVulkan::FramebufferManagerVulkan(VulkanContext *vulkan) :
FramebufferManagerVulkan::~FramebufferManagerVulkan() {
delete[] convBuf_;
vulkan2D_.Shutdown();
DestroyDeviceObjects();
}
@@ -237,10 +238,7 @@ void FramebufferManagerVulkan::DestroyDeviceObjects() {
vulkan_->Delete().QueueDeleteSampler(linearSampler_);
if (nearestSampler_ != VK_NULL_HANDLE)
vulkan_->Delete().QueueDeleteSampler(nearestSampler_);
if (pipelineBasicTex_ != VK_NULL_HANDLE)
vulkan_->Delete().QueueDeletePipeline(pipelineBasicTex_);
if (pipelinePostShader_ != VK_NULL_HANDLE)
vulkan_->Delete().QueueDeletePipeline(pipelinePostShader_);
// pipelineBasicTex_ and pipelineBasicTex_ come from vulkan2D_.
if (pipelineCache2D_ != VK_NULL_HANDLE)
vulkan_->Delete().QueueDeletePipelineCache(pipelineCache2D_);
}
@@ -1541,11 +1539,11 @@ void FramebufferManagerVulkan::EndFrame() {
}
void FramebufferManagerVulkan::DeviceLost() {
vulkan2D_.DeviceLost();
DestroyAllFBOs(false);
DestroyDeviceObjects();
resized_ = false;
vulkan2D_.DeviceLost();
}
void FramebufferManagerVulkan::DeviceRestore(VulkanContext *vulkan) {
+4
View File
@@ -55,6 +55,10 @@ Vulkan2D::~Vulkan2D() {
DestroyDeviceObjects();
}
void Vulkan2D::Shutdown() {
DestroyDeviceObjects();
}
void Vulkan2D::DestroyDeviceObjects() {
for (int i = 0; i < 2; i++) {
if (frameData_[i].descPool != VK_NULL_HANDLE) {
+1
View File
@@ -81,6 +81,7 @@ public:
void DeviceLost();
void DeviceRestore(VulkanContext *vulkan);
void Shutdown();
VkPipeline GetPipeline(VkPipelineCache cache, VkRenderPass rp, VkShaderModule vs, VkShaderModule fs);