Posts by mbucchia

    Great, I'm glad we can clear out the statement from the original post!

    The situation with WMR is a bit inconvenient, however as mentioned you can always use SteamVR OpenXR, which will work with WMR. I believe the applications I mentioned all have a note somewhere in their release saying: "if you are on WMR, make sure you selected SteamVR OpenXR".

    Re: OpenXR-Vk-D3D12, it does pretty much what you understood. To be clear though, there is no real "conversion" process for the images, it's a simple memory mapping, so there is zero performance overhead (no copy, no blitting).

    I believe the BeamNG.drive developer has a note on their release page recommending to install this program. But alternatively, you could also embed it as an "implicit OpenXR API layer" into the app. It would kick in only on WMR and otherwise the Vulkan support for the underlying OpenXR runtime would be used when possible.

    Sorry, we do not support OpenXR directly as OpenXR itself doesn't support Vulkan currently.

    Hi admin! I'd like to put a little correction on that for anybody else who might right this in the future.

    OpenXR does support Vulkan, and it has since the very beginning.

    Developers may use the XR_KHR_vulkan_enable family of core extensions to enable Vulkan in their application, as described here.

    There is also a complete example of OpenXR+Vulkan application: hello_xr.

    There are multiple OpenXR applications commercially available using OpenXR+Vulkan.

    BeamNG.drive, Abobe Substance Modeler and X-Plane 12 all use Vulkan for rendering and OpenXR to access the VR headset.

    One thing that has been a challenge in the past was certain OpenXR implementations not supporting the Vulkan extensions. You can see a full list of OpenXR runtimes extensions support here. Here is a screenshot of the Vulkan support matrix:

    (Note that certain of these devices/runtimes are not PCVR, however you can spot many of the "big players": Oculus, Virtual Desktop, Varjo, and most importantly SteamVR).

    The big absent is Windows Mixed Reality, which does not have support in their native OpenXR runtime. However there are still 3 options to use Vulkan on this platform (and more generally, in a universal way):

    - Use SteamVR OpenXR - this runtime is compatible with every VR headset on the market, and offers Vulkan out of the box.

    - Use mbucchia/OpenXR-Vk-D3D12: OpenXR API layer to run Vulkan applications with OpenXR runtimes that have support for Direct3D 12, a small program that will extend the Windows Mixed Reality OpenXR runtime with Vulkan support.

    - Implement a Vulkan -> D3D submission bridge (this is what X-Plane 12 does). One can reuse the code from OpenXR-Vk-D3D12 above.


    So in a nutshell: OpenXR supports Vulkan no problem. There are applications demonstrating it, and the small caveat of Windows Mixed Reality support is easily addressed.

    I hope this helps.