Enable Vulkan multiview extension in OpenXR the right way?

Looking for sources on how do you enable VK_KHR_multiview for your OpenXR application, it actually seems fairly easy: you enable the extension on graphics api device creation, you include the additional VkRenderPassMultiviewCreateInfo data on renderpass creation, texture array on swapchain creation, and so on. Yet, when it comes to OpenXR itself, there is something that does not seem quite right.

At some point in the hello_xr app, the code performs the two expected xrEnumerateViewConfigurationViews() calls to get, among other things, the number of views that should be used to render. Thing is, despite doing everything to enable multiview rendering from the Vulkan side, these calls still report that there are 2 views to be used, instead of just the one. These calls are performed before creating the swapchains themselves - you’re expected, after all, to create one swapchain per view.

Am I forgetting something here? Is there something else I should be telling OpenXR besides enabling the extension in the Vulkan device, before getting the number of views from XR? Or am I just simply misunderstanding how does this work?

Any light you can shed on this will be highly appreciated!

Hi. I’m not positive, but I think you want to create one swapchain where each image has a layer depth of 2 (for stereo). I think the session knows how to present a two-layer image properly.