philpax / wgpu-openxr-example

a barebones example of how to integrate OpenXR with wgpu (Vulkan-only)
MIT License
49 stars 9 forks source link

When trying to run the xr flags, the app panics. #11

Open 2-3-5-41 opened 1 year ago

2-3-5-41 commented 1 year ago

Error logs

Error [GENERAL | xrCreateInstance | OpenXR-Loader] : ApiLayerInterface::LoadApiLayers - failed to find layer XR_APILAYER_LUNARG_core_validation
Error [GENERAL | xrCreateInstance | OpenXR-Loader] : Failed loading layer information
Error [GENERAL | xrCreateInstance | OpenXR-Loader] : xrCreateInstance failed
Error: a requested API layer is not present or could not be loaded
error: process didn't exit successfully: `target\debug\wgpu-openxr-example.exe desktop-with-xr-resolution` (exit code: 1)

Hardware and software

hrolfurgylfa commented 1 year ago

I'm also getting the same error when I run either desktop-with-xr-resolution or xr.

When I run desktop it doesn't crash but I'm getting a lot of errors from Vulcan:

2022-11-21T00:56:35.732349Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkSubpassDescription2-multiview-06558 (0x449380de)]
        Validation Error: [ VUID-VkSubpassDescription2-multiview-06558 ] Object 0: handle = 0x17047bf2030, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x449380de | vkCreateRenderPass(): pCreateInfo->pSubpasses[0].viewMask is 3, but multiview feature is not enabled. The Vulkan spec states: If the multiview feature is not enabled, viewMask must be 0 (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkSubpassDescription2-multiview-06558)
2022-11-21T00:56:35.732550Z ERROR wgpu_hal::vulkan::instance:   objects: (type: DEVICE, hndl: 0x17047bf2030, name: ?)

2022-11-21T00:56:35.732894Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkShaderModuleCreateInfo-pCode-01091 (0xa7bb8db6)]
        Validation Error: [ VUID-VkShaderModuleCreateInfo-pCode-01091 ] Object 0: handle = 0x17047bf2030, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xa7bb8db6 | vkCreateShaderModule(): The SPIR-V Capability (MultiView) was declared, but none of the requirements were met to use it. The Vulkan spec states: If pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkShaderModuleCreateInfo-pCode-01091)
2022-11-21T00:56:35.733019Z ERROR wgpu_hal::vulkan::instance:   objects: (type: DEVICE, hndl: 0x17047bf2030, name: ?)

2022-11-21T00:56:35.756628Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkSubpassDescription2-multiview-06558 (0x449380de)]
        Validation Error: [ VUID-VkSubpassDescription2-multiview-06558 ] Object 0: handle = 0x17047bf2030, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x449380de | vkCreateRenderPass(): pCreateInfo->pSubpasses[0].viewMask is 3, but multiview feature is not enabled. The Vulkan spec states: If the multiview feature is not enabled, viewMask must be 0 (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkSubpassDescription2-multiview-06558)
2022-11-21T00:56:35.756804Z ERROR wgpu_hal::vulkan::instance:   objects: (type: DEVICE, hndl: 0x17047bf2030, name: ?)

2022-11-21T00:56:35.756995Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkShaderModuleCreateInfo-pCode-01091 (0xa7bb8db6)]
        Validation Error: [ VUID-VkShaderModuleCreateInfo-pCode-01091 ] Object 0: handle = 0x17047bf2030, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xa7bb8db6 | vkCreateShaderModule(): The SPIR-V Capability (MultiView) was declared, but none of the requirements were met to use it. The Vulkan spec states: If pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkShaderModuleCreateInfo-pCode-01091)
2022-11-21T00:56:35.757141Z ERROR wgpu_hal::vulkan::instance:   objects: (type: DEVICE, hndl: 0x17047bf2030, name: ?)

2022-11-21T00:56:35.759794Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 (0x7cd0911d)]
        Validation Error: [ VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 ] Object 0: handle = 0x17047bf2030, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x7cd0911d | vkCreateSwapchainKHR() called with imageExtent = (1424,714), which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (800,600), minImageExtent = (800,600), maxImageExtent = (800,600). The Vulkan spec states: imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageExtent-01274)
2022-11-21T00:56:35.759940Z ERROR wgpu_hal::vulkan::instance:   objects: (type: DEVICE, hndl: 0x17047bf2030, name: ?)

2022-11-21T00:56:35.771772Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkSubpassDescription2-multiview-06558 (0x449380de)]
        Validation Error: [ VUID-VkSubpassDescription2-multiview-06558 ] Object 0: handle = 0x17047bf2030, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x449380de | vkCreateRenderPass(): pCreateInfo->pSubpasses[0].viewMask is 3, but multiview feature is not enabled. The Vulkan spec states: If the multiview feature is not enabled, viewMask must be 0 (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkSubpassDescription2-multiview-06558)
2022-11-21T00:56:35.771958Z ERROR wgpu_hal::vulkan::instance:   objects: (type: DEVICE, hndl: 0x17047bf2030, name: ?)

2022-11-21T00:56:35.772169Z ERROR wgpu_hal::vulkan::instance: VALIDATION [VUID-VkFramebufferCreateInfo-renderPass-02531 (0xae537265)]
        Validation Error: [ VUID-VkFramebufferCreateInfo-renderPass-02531 ] Object 0: handle = 0x1d4e2e0000000062, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xae537265 | vkCreateFramebuffer(): VkFramebufferCreateInfo has #2 layers but renderPass (VkRenderPass 0x1d4e2e0000000062[]) was specified with non-zero view masks
 The Vulkan spec states: If renderPass was specified with non-zero view masks, layers must be 1 (https://vulkan.lunarg.com/doc/view/1.3.211.0/windows/1.3-extensions/vkspec.html#VUID-VkFramebufferCreateInfo-renderPass-02531)
2022-11-21T00:56:35.772304Z ERROR wgpu_hal::vulkan::instance:   objects: (type: RENDER_PASS, hndl: 0x1d4e2e0000000062, name: ?)

I also tried removing "XR_APILAYER_LUNARG_core_validation" from the list in xr.rs line 80 but that resulted in failure to create the Vulcan instance without much more information on why:

...
2022-11-21T01:11:18.752711Z  INFO wgpu_openxr_example::xr: available xr layers: []
2022-11-21T01:11:19.382256Z  INFO wgpu_openxr_example::xr: loaded OpenXR runtime: SteamVR/OpenXR 0.1.0 SteamVR/OpenXR : oculus
2022-11-21T01:11:19.410621Z  INFO wgpu_openxr_example::xr: creating vulkan instance with these extensions: [
    "VK_KHR_surface",
    "VK_KHR_win32_surface",
    "VK_KHR_get_physical_device_properties2",
    "VK_EXT_swapchain_colorspace",
    "VK_KHR_swapchain",
]
Error: XR error creating Vulkan instance

Caused by:
    the runtime failed to handle the function in an unexpected way that is not covered by another error result
error: process didn't exit successfully: `target\debug\wgpu-openxr-example.exe xr` (exit code: 1)

System:

PZerua commented 1 year ago

Hi! I'm facing the same issue, did you manage to workaround/fix this?

I'm using a Quest2 and executing the application through Oculus Link.

BleyChimera commented 1 year ago

I am also getting the exact same errors as the ones in the opening issue. SteamVR doesn't startup and it doesn't seem to interact with the program even if started up.

I think we simply don't have some dll needed to use this version of OpenXR? Or maybe is some path somewhere that is broken?