xrCreateSession
принимает XrInstance
и XrSessionCreateInfo
.
XrInstanceCreateInfo
, используемый для создания экземпляра, не особенно интересен: единственные параметры примечания: enabledExtensionCount
(= 1
) и enabledExtensionNames
(= XR_KHR_VULKAN_ENABLE_EXTENSION_NAME
). Остальное - это произвольная информация о названии / версии.
В XRSessionCreateInfo
, используемом для создания сеанса, systemId
установлено на результат xrGetSystem
, а next
установлено на указатель типа XrGraphicsBindingVulkanKHR
.
Значения, которые просто указывают на экземпляр vulkan, PhysicalDevice, device, queueFamilyIndex и queueIndex Я достаточно уверен, что собрал правильно (у меня vulkan отлично работает без openXR).
Но вызывается второй 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
(с разными номерами для блока заголовка, заголовок, блок слияния, et c ... ).
На данный момент я еще не предоставил SPIR-V ни для vulkan, ни для openXR, поэтому я не уверен, что находится под моим контролем.
Почему я получаю эти ошибки ? Что можно сделать, чтобы их предотвратить?