You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
That is, using Vulkan version 1.2 and passing features of version 1.3, the device is created correctly and we can use the functions of the extension. But if we activate the validation layers the above code fails, because it's not correct to enable a 1.3 core feature using version 1.2:
pCreateInfo->pNext includes a pointer to a VkStructureType (VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES) which was added in VK_API_VERSION_1_3 but the current effective API version is 1.2.283 (0x0040211b). The Vulkan spec states: Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid struct for extending VkDeviceCreateInfo
From the documentation I have been able to deduce that the correct way to activate the extension is this:
But the above code does not activate the extensions.
I have tested creating the device and loading the extension functions manually, without using vk-bootstrap, and it works without problems. I don't know if the problem is that the documentation doesn't explain the correct way to load the extensions or if it's a bug.
The text was updated successfully, but these errors were encountered:
Did you set the instance apiVersion to 1.3? That is alos a requirement.
There certainly could be a bug in the extension enablement - how else are you checking that the extensions were in fact enabled? Loading function pointers and checking for null isn't necessarily the best way to do it. (if you do, be sure to use vkGetDeviceProcAddr). I would suggest looking at the list of extensions passed into vkCreateDevice - if those contain the ones you want and the device is successfully created, then that would be how I validate success.
It is not clear at all from the documentation how to enable device extensions.
Specifically, with MoltenVK, the API 1.3 is not currently available, but most of the extensions, including Dynamic Rendering, are available.
The following code works correctly as long as the validation layers are not enabled:
That is, using Vulkan version 1.2 and passing features of version 1.3, the device is created correctly and we can use the functions of the extension. But if we activate the validation layers the above code fails, because it's not correct to enable a 1.3 core feature using version 1.2:
From the documentation I have been able to deduce that the correct way to activate the extension is this:
But the above code does not activate the extensions.
I have tested creating the device and loading the extension functions manually, without using vk-bootstrap, and it works without problems. I don't know if the problem is that the documentation doesn't explain the correct way to load the extensions or if it's a bug.
The text was updated successfully, but these errors were encountered: