From 0e819a64e8779c97637d47038153203dd4eeeb44 Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Fri, 20 May 2022 11:27:12 -0400 Subject: [PATCH] vulkan(Windows): verify layer VK_LAYER_KHRONOS_validation exists Add a supplementary check after calling QVulkanInstance::create to make sure the requested validation layer was created. Gitlab: #746 Change-Id: Ibe3004fa1a1a38401be8625aaea34e0bef185d0a --- src/app/main.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index f886cdb98..bf56278a3 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -119,12 +119,21 @@ main(int argc, char* argv[]) #if defined(HAS_VULKAN) && !defined(Q_OS_LINUX) QVulkanInstance inst; inst.setLayers({"VK_LAYER_KHRONOS_validation"}); - return inst.create(); + bool ok = inst.create(); + if (!ok) { + qWarning() << "QVulkanInstance cannot be created."; + return false; + } + if (!inst.layers().contains("VK_LAYER_KHRONOS_validation")) { + qWarning() << "VK_LAYER_KHRONOS_validation layer is not available."; + return false; + } + return true; #else return false; #endif }) - && qgetenv("WAYLAND_DISPLAY").isEmpty()) { + && qEnvironmentVariableIsEmpty("WAYLAND_DISPLAY")) { // https://bugreports.qt.io/browse/QTBUG-99684 - Vulkan on // Wayland is not really supported as window decorations are // removed. So we need to re-implement this (custom controls) -- GitLab