diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index 909d5623ad8..fcc53115a0d 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -23,6 +23,7 @@ QT_WARNING_POP #include #include #include +#include #include QT_BEGIN_NAMESPACE @@ -407,6 +408,15 @@ QRhiVulkan::QRhiVulkan(QRhiVulkanInitParams *params, QRhiVulkanNativeHandles *im : ofr(this) { inst = params->inst; + if (!inst) { + // This builds on the fact that Qt Quick also uses QVulkanDefaultInstance. While + // this way we can support a null inst, it has consequences, so only do it with a + // warning. (e.g. if Qt Quick initializes afterwards, its attempt to set flags on + // QVulkanDefaultInstance will be futile) + qWarning("QRhi for Vulkan attempted to be initialized without a QVulkanInstance; using QVulkanDefaultInstance."); + inst = QVulkanDefaultInstance::instance(); + } + maybeWindow = params->window; // may be null requestedDeviceExtensions = params->deviceExtensions;