godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.97k stars 20.18k forks source link

Black screen in XR on linux when using compatibility renderer #94455

Closed DanielKinsman closed 1 month ago

DanielKinsman commented 2 months ago

Tested versions

Reproducible in 4.2.2, 97b8ad1

System information

Godot v4.2.2.stable unknown - Arch Linux #1 SMP PREEMPT_DYNAMIC Fri, 12 Jul 2024 00:06:53 +0000 - Wayland - GLES3 (Compatibility) - AMD Radeon RX 6800 XT (radeonsi, navi21, LLVM 18.1.8, DRM 3.57, 6.9.9-arch1-1) () - AMD Ryzen 7 5800X3D 8-Core Processor (16 Threads)

Issue description

When using the compat renderer in XR only blackness is presented in the headset and the desktop window. The mobile renderer works correctly.

Verbose output: glcompatpico4blackscreen.log

glxinfo.txt including mesa version etc.

Setup in case it helps:

Apologies if this ends up being a mesa, alvr or steamvr bug instead. I suspect it has only started occurring recently but I can't remember if I was using the compat renderer 6 months ago or not.

Steps to reproduce

  1. Get ALVR and steamvr set up and running on linux (edit: you do not need a headset to do this).
  2. Launch an xr project that uses the compatibility renderer

I've attached a min repo project below but the same behaviour occurs for all godot projects, including these: https://itch.io/jam/godot-xr-game-jam-july-2024/entries. Except for the dog one, because I made that using the mobile renderer.

Minimal reproduction project (MRP)

glcompattest2.tar.gz

DanielKinsman commented 1 month ago

I should note that you do not need a VR headset to replicate this, simply installing and starting ALVR and SteamVR is enough.

DanielKinsman commented 1 month ago

Pretty sure this is because mesa lacks GL_OVR_multiview/GL_OVR_multiview2 extension support.

https://gitlab.freedesktop.org/mesa/mesa/-/issues/10712

Similar to #85422 but with a different vendor and the gl extension not the webxr extension. I hear vision os also doesn't support the webxr extension?