почему openxr 'xrCreateSession' приводит к многочисленным ошибкам проверки "модуль SPIR-V недействителен:" (и как я могу это исправить)? - PullRequest
1 голос
/ 13 июля 2020

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, поэтому я не уверен, что находится под моим контролем.

Почему я получаю эти ошибки ? Что можно сделать, чтобы их предотвратить?

...