SteamVR

SteamVR

chewbdet Sep 2, 2021 @ 8:38am
OpenXR available extensions
Hello,

I've been slowly integrating OpenXR, mostly using it with an HTC Vive, through the SteamVR runtime, but there are some things that still baffle me.

Case in point : the extensions. xrEnumerateInstanceExtensionProperties is supposed to present the "available" extensions. According to the runtime, I suppose. But how does it decide ? Is it possible to somehow add some extensions manually ? Or are more and more supposed to be accepted by SteamVR over time ? Or have I just not understood how extensions work at all ?

For instance, I'd like to use some overlays to my VR scene, hence I need to use the XR_EXTX_overlay extension... But xrEnumerateInstanceExtensionProperties indicates it's not available, so I'm just stuck on that front.

Thanks a lot for your help !
< >
Showing 1-4 of 4 comments
Rectus Sep 2, 2021 @ 9:57am 
It just shows the extensions the SteamVR runtime reports as avalable, so if one doesn't show up SteamVR does not currently support it. They keep slowly adding extensions to SteamVR, but there is no communcation on which ones are planned or they are working on.

OpenXR has support for API layers, which could be used to add support for extensions that SteamVR does not support by loading a separte program in between the user application and the runtime. It does not have access to any internal workings of the runtime though, so for example support for overlays might (at least in theory) mean an program that renders the overlay onto the frame before passing it on to SteamVR. This would be more useful for things like adding custom input devices.
chrix Sep 2, 2021 @ 2:24pm 
Like OpenGL or Vulkan extensions, they are something that a runtime vendor needs to implement.

For example for the overlay extension, you set XrSessionCreateInfo -> next to a XrSessionCreateInfoOverlayEXTX. Once a runtime like SteamVR implements the extension, it will look at this struct and do something useful with it. Pretty much all extensions are optional.

There is an API layer that implements the overlay extension but it is... limited https://github.com/LunarG/OpenXR-OverlayLayer
76561199580317032 Feb 12, 2024 @ 5:21am 
Originally posted by chrix:
Like OpenGL or Vulkan extensions, they are something that a runtime vendor needs to implement.

For example for the overlay extension, you set XrSessionCreateInfo -> next to a XrSessionCreateInfoOverlayEXTX. Once a runtime like SteamVR implements the extension, it will look at this struct and do something useful with it. Pretty much all extensions are optional.

There is an API layer that implements the overlay extension but it is... limited {LINK REMOVED}

Can you guide me to use the OpenXR-OverlayLayer {LINK REMOVED}
thanks
Rectus Feb 12, 2024 @ 6:32am 
Originally posted by mohsenkondori:
Can you guide me to use the OpenXR-OverlayLayer ( https://github.com/LunarG/OpenXR-OverlayLayer )?
thanks

What are you looking at getting out of it? If you just want to write an overlay application, using OpenVR is a much better option. If you don't want to use OpenVR, you are probably better off directly writing an OpenXR API layer (although that is still a very janky solution).
< >
Showing 1-4 of 4 comments
Per page: 1530 50