mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-04-14 03:36:10 +00:00
Add libplacebo patch from Chiaki4Deck to resolve AppImage hangs on Steam Deck
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
From 78261eb6e2fe728fa5d3843b5b8962b1ca559b7e Mon Sep 17 00:00:00 2001
|
||||
From: David Rosca <nowrep@gmail.com>
|
||||
Date: Sat, 16 Dec 2023 14:52:01 +0100
|
||||
Subject: [PATCH] Vulkan: Don't try to reuse old swapchain
|
||||
|
||||
---
|
||||
src/vulkan/swapchain.c | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/vulkan/swapchain.c b/src/vulkan/swapchain.c
|
||||
index 0741fbfc..88bdf6a5 100644
|
||||
--- a/src/vulkan/swapchain.c
|
||||
+++ b/src/vulkan/swapchain.c
|
||||
@@ -610,13 +610,21 @@ static bool vk_sw_recreate(pl_swapchain sw, int w, int h)
|
||||
}
|
||||
#endif
|
||||
|
||||
+ {
|
||||
+ pl_gpu_flush(gpu);
|
||||
+ vk_wait_idle(vk);
|
||||
+ for (int i = 0; i < vk->pool_graphics->num_queues; i++)
|
||||
+ vk->QueueWaitIdle(vk->pool_graphics->queues[i]);
|
||||
+ vk->DestroySwapchainKHR(vk->dev, p->swapchain, PL_VK_ALLOC);
|
||||
+ }
|
||||
+
|
||||
// Calling `vkCreateSwapchainKHR` puts sinfo.oldSwapchain into a retired
|
||||
// state whether the call succeeds or not, so we always need to garbage
|
||||
// collect it afterwards - asynchronously as it may still be in use
|
||||
- sinfo.oldSwapchain = p->swapchain;
|
||||
+ /* sinfo.oldSwapchain = p->swapchain; */
|
||||
p->swapchain = VK_NULL_HANDLE;
|
||||
VkResult res = vk->CreateSwapchainKHR(vk->dev, &sinfo, PL_VK_ALLOC, &p->swapchain);
|
||||
- vk_dev_callback(vk, (vk_cb) destroy_swapchain, vk, vk_wrap_handle(sinfo.oldSwapchain));
|
||||
+ /* vk_dev_callback(vk, (vk_cb) destroy_swapchain, vk, vk_wrap_handle(sinfo.oldSwapchain)); */
|
||||
PL_VK_ASSERT(res, "vk->CreateSwapchainKHR(...)");
|
||||
|
||||
// Get the new swapchain images
|
||||
--
|
||||
2.43.0
|
||||
|
||||
Reference in New Issue
Block a user