From d0ea039a776f529cce420330611e5bb32e3b77b7 Mon Sep 17 00:00:00 2001 From: mstoeckl Date: Tue, 8 Oct 2024 14:31:28 -0400 Subject: [PATCH] Stop when Wayland library has a fatal error (#1153) --- base/vulkanexamplebase.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 460d68af..ea6c06e2 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -299,12 +299,19 @@ void VulkanExampleBase::renderLoop() if (benchmark.active) { #if defined(VK_USE_PLATFORM_WAYLAND_KHR) while (!configured) - wl_display_dispatch(display); + { + if (wl_display_dispatch(display) == -1) + break; + } while (wl_display_prepare_read(display) != 0) - wl_display_dispatch_pending(display); + { + if (wl_display_dispatch_pending(display) == -1) + break; + } wl_display_flush(display); wl_display_read_events(display); - wl_display_dispatch_pending(display); + if (wl_display_dispatch_pending(display) == -1) + return; #endif benchmark.run([=] { render(); }, vulkanDevice->properties); @@ -522,12 +529,19 @@ void VulkanExampleBase::renderLoop() } while (!configured) - wl_display_dispatch(display); + { + if (wl_display_dispatch(display) == -1) + break; + } while (wl_display_prepare_read(display) != 0) - wl_display_dispatch_pending(display); + { + if (wl_display_dispatch_pending(display) == -1) + break; + } wl_display_flush(display); wl_display_read_events(display); - wl_display_dispatch_pending(display); + if (wl_display_dispatch_pending(display) == -1) + break; render(); frameCounter++;