xrCreateSession
接受一个XrInstance
和一个XrSessionCreateInfo
。
XrInstanceCreateInfo
用于创建实例的 不是特别有趣:唯一需要注意的参数是( enabledExtensionCount
)= 1
和enabledExtensionNames
( = XR_KHR_VULKAN_ENABLE_EXTENSION_NAME
)。其余的是任意标题/版本信息。
XRSessionCreateInfo
用于创建会话的 已设置systemId
为 的结果xrGetSystem
,并next
设置为类型的指针XrGraphicsBindingVulkanKHR
。
它的值只是指向一个 vulkan 实例、physicalDevice、device、queueFamilyIndex 和 queueIndex,我有理由相信我已经正确收集(没有 openXR,我的 vulkan 工作正常)。
但是第二个xrCreateSession
被调用,我得到了大约 20 个以下形式的验证错误:
Validation Error: [ UNASSIGNED-CoreValidation-Shader-InconsistentSpirv ] Object 0: handle = 0x24341691190, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x6bbb14 | SPIR-V module not valid: Header block 512[%512] is contained in the loop construct headed by 505[%505], but its merge block 513[%513] is not
%512 = OpLabel
(对于标题块、以、合并块等为首的具有不同的编号......)。
目前我还没有向 vulkan 和 openXR 提供任何 SPIR-V,所以我不确定什么在我的控制范围内。
为什么我会收到这些错误?可以做些什么来防止它们?