protonscr

[BUG] Initialization failure from `QT_QPA_PLATFORM=wayland;xcb` on CachyOS / wayland session

steamvropen bug
ValveSoftware/SteamVR-for-Linux#697 · opened 2024-05-09 by MooMew64 · updated 2026-05-19 · 8 comments · github
MMooMew64 2024-05-09 github

Describe the bug

Steam VR fails to launch on a Plasma 6 Wayland desktop.

To Reproduce
Steps to reproduce the behavior:

Launch Steam VR

Expected behavior

Steam VR launches and awaits a headset connection.

System Information (please complete the following information):

Steam Runtime Version: steam-runtime_0.20240415.84615
Steam VR is latest beta.
Distro is CachyOS (Arch derivative).
GPU is a 7900XTX Red Devil, CPU is a 16 × AMD Ryzen 7 7800X3D 8-Core Processor

Runtime diagnostic:
steam-runtime-diagnostic.txt

Steam & Steam VR logs:
steam-logs.tar.gz

Minidumps:
steam-minidumps.tar.gz

Steam VR will start in an X11 session, however, it launches a blank window alongside the normal Steam VR window that cannot be closed unless the session is force stopped by logging out and going back to the PC's sign-in to start a new X11 or Wayland session. During a Wayland session, it crashes immediately and complains that a sudo prompt was denied and that xcb:wayland is missing.

Kkisak-valve maintainer 2024-05-09 github

Hello @SolarNyan, there's some hints to ponder here:
vrstartup-linux.txt

This application failed to start because it could not find or load the Qt platform plugin "wayland;xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.

Steam runtime diagnostics:

[...]
    "environment" : [
[...]
      "QT_QPA_PLATFORM=wayland;xcb",

Something's setting that environment variable when you run a wayland session and it's getting carried into the runtime environment where it's causing SteamVR to fall over.

Kkisak-valve maintainer 2024-05-10 github

As a workaround, can you test completely closing Steam, then run QT_QPA_PLATFORM=xcb steam from a terminal and see how it behaves?

MMooMew64 2024-05-10 github

As a workaround, can you test completely closing Steam, then run QT_QPA_PLATFORM=xcb steam from a terminal and see how it behaves?

Ah, this seems to be what the issue was! Setting the QT environment variable to xcb seems to have resolved it. The Steam VR applet now launches, I will see if I can get a headset to connect with it in just a moment.

Kkisak-valve maintainer 2024-05-10 github

It would be interesting to know where that variable got set and why.

MMooMew64 2024-05-10 github

It is very odd, and I haven't heard any other KDE users complaining about it. I'll go see about asking the Cachy devs if it's something that maybe gets set on their end.

MMooMew64 2024-05-10 github

The headset is able to connect! Steam VR seems to be running smoothly, including Steam VR Home, which was previously broken! However, this is unfortunately only on the last version of Steam VR (2.4.4), as ALVR cannot see the latest Steam VR when launched, and due to being a Quest 3 user, I unfortunately have to use ALVR in the short-term until (hopefully) an eventual update to Steam VR Link that brings Linux support.

Tthundertheidiot 2024-05-11 github

Probably irrelevant now, but you can also set the SteamVR launch options to QT_QPA_PLATFORM=xcb %command%, that way nothing else is affected is affected by the variable.

Aainaracatgirl 2026-05-18 github

Hello, this is still a thing now. You claim to support Wayland, so I'm going to ask you, why does this not get looked at?

Here's a full log with QT_DEBUG_PLUGINS=1 on SteamVR [beta]:

+++ dirname /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh
++ cd /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/
++ pwd
+ VRBINDIR=/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin
+ [[ -n '' ]]
+ exec /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/vrenv.sh /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh
vrenv.sh[1159433]: VRCOMPOSITOR_LD_LIBRARY_PATH=/home/nara:/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/lib:/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64
vrenv.sh[1159433]: exec /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh
+++ dirname /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh
++ cd /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/
++ pwd
+ VRBINDIR=/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin
+ [[ -n /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/vrenv.sh ]]
+ case $(uname) in
++ uname
+ VRMONITOR=/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrmonitor
+ exec /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrmonitor
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
05/19 17:13:52 minidumps folder is set to /tmp/dumps
05/19 17:13:52 Init: Installing breakpad exception handler for appid(250820)/version(2.16.5)/tid(1159433)
QFactoryLoader::QFactoryLoader() checking directory path "/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-egl.so"
"Plugin verification data mismatch in '/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-egl.so'"
         not a plugin
QFactoryLoader::QFactoryLoader() looking at "/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-generic.so"
"Plugin verification data mismatch in '/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-generic.so'"
         not a plugin
QFactoryLoader::QFactoryLoader() looking at "/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-xcomposite-egl.so"
"Plugin verification data mismatch in '/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-xcomposite-egl.so'"
         not a plugin
QFactoryLoader::QFactoryLoader() looking at "/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-xcomposite-glx.so"
"Plugin verification data mismatch in '/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqwayland-xcomposite-glx.so'"
         not a plugin
QFactoryLoader::QFactoryLoader() looking at "/home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqxcb.so"
Found metadata in lib /home/nara/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 328960
}


Got keys from plugin meta data ("xcb")
This application failed to start because it could not find or load the Qt platform plugin "wayland".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.

For some unknown reason, the wayland Qt plugins are invalid, this is almost certainly a bug on SteamVR's end during build and/or packaging.

Launch lines