vulkan: Do not set the portability bit with old SDKs
Because it's a validation error with old ones, but required in some cases from 1.3.216 on (MoltenVK). Ridiculous. Amendsbb107fbc741d10andb018bc6e2d. Fixes: QTBUG-117412 Pick-to: 6.6 6.5 Change-Id: I9b4cacbe611d4e557ee1c156527142eb919d6b77 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
parent
6ca2008d6e
commit
8a5a5f6c97
|
|
@ -259,8 +259,13 @@ void QBasicPlatformVulkanInstance::initInstance(QVulkanInstance *instance, const
|
|||
VkInstanceCreateInfo instInfo = {};
|
||||
instInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||
instInfo.pApplicationInfo = &appInfo;
|
||||
if (!flags.testFlag(QVulkanInstance::NoPortabilityDrivers))
|
||||
instInfo.flags |= 0x00000001; // VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
|
||||
if (!flags.testFlag(QVulkanInstance::NoPortabilityDrivers)) {
|
||||
// With old Vulkan SDKs setting a non-zero flags gives a validation error.
|
||||
// Whereas from 1.3.216 on the portability bit is required for MoltenVK to function.
|
||||
// Hence the version check.
|
||||
if (m_supportedApiVersion >= QVersionNumber(1, 3, 216))
|
||||
instInfo.flags |= 0x00000001; // VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
|
||||
}
|
||||
|
||||
QList<const char *> layerNameVec;
|
||||
for (const QByteArray &ba : std::as_const(m_enabledLayers))
|
||||
|
|
|
|||
Loading…
Reference in New Issue