mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-19 09:19:05 +02:00
Vulkan: Fix vulkan2d deletion order.
This commit is contained in:
1 parent
39d6ea2985
commit
8b5aba9d93
3 files changed
+9
-6
No files matched your search
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -81,6 +81,7 @@ public:
|
||||
|
||||
void DeviceLost();
|
||||
void DeviceRestore(VulkanContext *vulkan);
|
||||
void Shutdown();
|
||||
|
||||
VkPipeline GetPipeline(VkPipelineCache cache, VkRenderPass rp, VkShaderModule vs, VkShaderModule fs);
|
||||
|
||||
|
||||
Reference in new issue
Block a user