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

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

(с разными номерами для блока заголовка, заголовка, блока слияния и т. д.).

На данный момент я еще не предоставил SPIR-V ни для vulkan, ни для openXR, поэтому я не уверен, что находится под моим контролем.

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

0 ответов

Другие вопросы по тегам