mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-11 05:26:24 +02:00
Merge pull request #10057 from unknownbrackets/vulkan-minor
Fix framebuffer leak in Vulkan
This commit is contained in:
2 files changed
+22
-3
No files matched your search
@@ -326,8 +326,8 @@ void VulkanQueueRunner::PerformRenderPass(const VKRStep &step, VkCommandBuffer c
|
||||
|
||||
vkCmdPipelineBarrier(cmd, srcStage, dstStage, 0, 0, nullptr, 0, nullptr, 1, &barrier);
|
||||
iter.fb->color.layout = barrier.newLayout;
|
||||
iter.fb->Release();
|
||||
}
|
||||
iter.fb->Release();
|
||||
}
|
||||
|
||||
// This is supposed to bind a vulkan render pass to the command buffer.
|
||||
|
||||
@@ -616,8 +616,27 @@ void VulkanRenderManager::Finish() {
|
||||
|
||||
void VulkanRenderManager::Wipe() {
|
||||
int curFrame = vulkan_->GetCurFrame();
|
||||
for (auto iter : steps_) {
|
||||
delete iter;
|
||||
for (auto step : steps_) {
|
||||
// Need to release held framebuffers.
|
||||
switch (step->stepType) {
|
||||
case VKRStepType::RENDER:
|
||||
for (const auto &iter : step->preTransitions) {
|
||||
iter.fb->Release();
|
||||
}
|
||||
break;
|
||||
case VKRStepType::COPY:
|
||||
step->copy.src->Release();
|
||||
step->copy.dst->Release();
|
||||
break;
|
||||
case VKRStepType::BLIT:
|
||||
step->blit.src->Release();
|
||||
step->blit.dst->Release();
|
||||
break;
|
||||
case VKRStepType::READBACK:
|
||||
step->readback.src->Release();
|
||||
break;
|
||||
}
|
||||
delete step;
|
||||
}
|
||||
steps_.clear();
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user