mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-10-25 13:31:41 +00:00
Fix some error handling in the libplacebo renderer
This commit is contained in:
1 parent
6fc7e81683
commit
ac296864ac
1 file changed
+11
@@ -769,6 +769,7 @@ bool PlVkRenderer::populateQueues(int videoFormat)
|
||||
vkDeviceContext->nb_comp_queues = m_Vulkan->queue_compute.count;
|
||||
|
||||
// Select a video decode queue that is capable of decoding our chosen format
|
||||
vkDeviceContext->queue_family_decode_index = -1;
|
||||
for (uint32_t i = 0; i < queueFamilyCount; i++) {
|
||||
if (queueFamilies[i].queueFamilyProperties.queueFlags & VK_QUEUE_VIDEO_DECODE_BIT_KHR) {
|
||||
if (videoFormat & VIDEO_FORMAT_MASK_H264) {
|
||||
@@ -897,6 +898,16 @@ void PlVkRenderer::waitToRender()
|
||||
return;
|
||||
}
|
||||
|
||||
// If a swapchain (re)creation failed, m_Swapchain is NULL. We can't render
|
||||
// or resize it, and a device reset has already been requested, so skip this
|
||||
// frame and let the main thread recreate the renderer.
|
||||
if (m_Swapchain == nullptr) {
|
||||
SDL_Event event;
|
||||
event.type = SDL_RENDER_DEVICE_RESET;
|
||||
SDL_PushEvent(&event);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef Q_OS_WIN32
|
||||
// With libplacebo's Vulkan backend, all swap_buffers does is wait for queued
|
||||
// presents to finish. This happens to be exactly what we want to do here, since
|
||||
|
||||
Reference in new issue
Block a user