I am seeing the same issue I think when trying to use slimevr or wayvr with steamvr
The overlays are functional when in-game, but are invisible. The overlays are visible in the wireframe prior to game launch
The issue is not that the overlay is rendering behind the scenes, but rather that the VRLink encoding path specifically does not do multiple draw passes (for several reasons). This is also the underlying cause for games that use separate 2D overlays (or the keyboard) having those elements fail to display. (As with the bugs I closed out as duplicates.)
I've got a preliminary fix done, however, and can confirm that with it in place, the Python test script in the first comment works, as does the keyboard in Fallout 4 VR, as do menus in various games that use separate 2D overlays. So there will be a fix in an upcoming build!
The issue is not that the overlay is rendering behind the scenes, but rather that the VRLink encoding path specifically does not do multiple draw passes (for several reasons). This is also the underlying cause for games that use separate 2D overlays (or the keyboard) having those elements fail to display. (As with the bugs I closed out as duplicates.)
I've got a preliminary fix done, however, and can confirm that with it in place, the Python test script in the first comment works, as does the keyboard in Fallout 4 VR, as do menus in various games that use separate 2D overlays. So there will be a fix in an upcoming build!
Thank you so much for the update, cant wait to test it!
Fixed in 2.16.1 (currently the beta branch for SteamVR)
Nothing extracted yet.
Description
Custom OpenVR overlays created via IVROverlay::createOverlay() render behind the scene application (game) on Linux, making them invisible during gameplay. The overlays work correctly in the SteamVR grid/void environment and appear grayed out in the dashboard when pressed, confirming they are loaded and active but rendered at the wrong depth/layer.
The same overlay code works correctly on Windows where overlays render in front of the game scene as expected.
Steps to Reproduce
Expected Behavior
Overlays created via IVROverlay::createOverlay() should render in front of the game scene during gameplay, as they do on Windows. Per OpenVR documentation: "The vr::IVROverlay
interface provides access to draw 2D images over the 3D scene no matter which application is running."
Actual Behavior
Overlays render behind the scene application and are invisible during gameplay. They only become visible when:
Minimal Reproduction Code
Flags/Settings Tested (None Fixed the Issue)
System Information
Games Tested
Both exhibit identical behavior - overlays invisible during gameplay.
Additional Context