Open LambdAurora opened 2 years ago
Hi sorry for the delayed response. This is an issue which I've been aware of for a few months now but I have not been able to make much progress beyond using the layer you mentioned.
As far as I know this crash is entirely due to SteamVR's shoddy OpenXR OpenGL support as MCXR works perfectly with Monado. Since applications like Vivecraft and Boneworks use OpenVR they are not affected by this.
As hello_xr does work (with the layer) I have tried rewriting MCXR to match it however it still crashes on the xrCreateSwapchain call (with a different crash message in Arabic for some reason).
The solution I am working on now is a different OpenXR layer which will request a Vulkan swapchain from SteamVR and use interop to pass those as OpenGL textures to the application. Since this is what SteamVR already does internally there shouldn't be much of a performance hit. This might seem like overkill but I am already working on a similar layer to allow MCXR, Blender and Godot to run directly on the Windows Mixed Reality runtime which only exposes DirectX 11/12 swapchains.
For the record, that SteamVR OpenGL bug is NOT unique in any way, the exact same thing happens with StereoKit and is uber annoying
For example Godot works too. But SteroKit and StardustXR doesn't. The problem is that I cannot use Monado because of a regression with the Nvidia drivers, which causes Monado to just segfault.
As hello_xr does work (with the layer) I have tried rewriting MCXR to match it however it still crashes on the xrCreateSwapchain call (with a different crash message in Arabic for some reason).
That's unfortunate and very weird, I wonder why MCXR is not able to reproduce. I wonder if rewriting hello_xr in Java could help pin out the issue? if it doesn't work with the Java version of it, it could be an issue somewhere in how Java interacts with the native part, which would be quite weird.
stardust xr is based on stereokit so... yea of course it won't work :p
I've made some headway with the compatibility layer. With it enabled MCXR (and presumably all other OpenGL applications) work just as well as Vulkan applications on SteamVR.
For the time being there may be some performance issues as I'm only using a very basic submit call for copying the interop swapchain to the OpenXR swapchain and I've only been able to test it with the Monado null driver as I don't have access to an Index or Vive.
Try just download windows lol
shutt, steamvr on linux is only bad because valve doesn't put the time into it and monado actually works much more reliably than even steamvr on windows (i'm an XR dev who's worked on Monado myself)
On Thu, Mar 3, 2022 at 5:21 AM TNT-King @.***> wrote:
Try just download windows lol
— Reply to this email directly, view it on GitHub https://github.com/Sorenon/MCXR/issues/22#issuecomment-1057894104, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCU4EGTEJPB2H27TD7MOILU6CHBZANCNFSM5K6HIQEA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID: @.***>
Try just download windows lol
MCXR doesn't work on Linux with SteamVR (1.14 or 1.21.4) with NVIDIA GPUs.
Either the bindings or MCXR has an implementation issue since other OpenXR-based VR games has been confirmed working with the same setup (Boneworks, hello_xr for example).
All testing had to be done using https://github.com/ChristophHaag/gl_context_fix_layer, without the game would get stuck due to the OpenGL context being changed and Minecraft not fetching it back, meaning all remaining draw commands will get executed "in the void".
With the context fix layer, the game simply crashes:
And SteamVR displays this: