aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_master_semaphore.cpp')
-rw-r--r--src/video_core/renderer_vulkan/vk_master_semaphore.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
index be5a1144ce..ba364d99a0 100644
--- a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
+++ b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
@@ -104,7 +104,13 @@ void MasterSemaphore::Wait(u64 tick) {
}
// If none of the above is hit, fallback to a regular wait
- while (!semaphore.Wait(tick)) {
+ try {
+ while (!semaphore.Wait(tick)) {
+ }
+ } catch (const vk::Exception& exception) {
+ // The throw ends the process; say why first (a device loss reached nothing else here).
+ LOG_CRITICAL(Render_Vulkan, "Waiting for GPU tick {} failed: {}", tick, exception.what());
+ throw;
}
Refresh();