Cauldron
Cauldron copied to clipboard
Fix validation error given no async compute queue
On an old integrated graphic card, the sample crashes when switching scenes. It's rooted in driver implementation and resource translation between same queue family may not work properly. The crash disappears after the fix.
Exception thrown at 0x00007FFAA4FABE39 (igvk64.dll) in GLTFSample_VKd.exe: 0xC0000005: Access violation reading location 0x00000000000000D2.
There's a validation error and perhaps some resource handling inside driver that cannot transfer resources properly when src/dst queue family are the same.
Validation Error: [ VUID-VkDeviceCreateInfo-queueFamilyIndex-02802 ] Object 0: handle = 0x1275c88d200, type = VK_OBJECT_TYPE_PHYSICAL_DEVICE; | MessageID = 0x29498778 | CreateDevice(): pCreateInfo->pQueueCreateInfos[1].queueFamilyIndex (=0) is not unique and was also used in pCreateInfo->pQueueCreateInfos[0]. The Vulkan spec states: The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkDeviceCreateInfo-queueFamilyIndex-02802)