Open konstantinblaesi opened 6 years ago
Updates? Is it an issue with the Gnome/Linux stack or Dota 2 itself?
SDL_VIDEODRIVER=wayland steam and I get:
Error LoadSystemAndDependencies(): AppSystemDict: Error in Init() of interface 'RenderDeviceMgr001'!
When trying to run dota2.
Updates? Is it an issue with the Gnome/Linux stack or Dota 2 itself?
Dota2.
Someone on gamingonlinux.com said it might have been something to do with the old sdl library the game ships with. They all need updated to support wayland.
@romulasry I am running dota 2 on fedora 29 with gnome/wayland and I use the system provided SDL library, see #282
@romulasry I am running dota 2 on fedora 29 with gnome/wayland and I use the system provided SDL library, see #282 Well, that works, but not in combination with vulkan for me.
Possible setup
Game crashes
Any updates on the issue?
Can confirm that this is still an issue. Unsure if it's a SDL2 bug or Dota 2 bug
Update?
EDIT: Seems I was wrong... it was supposed to run with Wayland but it was using Xwayland. :'/
I tried on Arch with the latest available kernel + mesa stack there and Intel and it was working with vulkan + wayland - at least it was starting. Can I somehow check if xwayland or wayland was in use and if vulkan worked?
With AMD (RX 480 8 GB) it failed.
Any update on that ropic? Maybe @rcgordon could have a look please? :)
This issue still persists. When using a Ubuntu 20.04 wayland session, I can not start the game with -vulkan at all. Neither LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland -vulkan nor SDL_VIDEODRIVER=x11 -vulkan seem to work. The PC completely freezes, so I have to reboot. Hardware: Ryzen 7 4700U with integrated Vega graphics. No dedicated GPU.
In a X11 session, i can use -vulkan without issues. (But X11 does have other bugs, e.g. super tiny steam launcher when using fractional scaling 125%)
I have installed:
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-utils
and the latest kernel: 5.8.12 I also changed a line in Grub to: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt"
LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland %command% -vulkan
LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland %command% -vulkan
Any details about your setup?
LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland %command% -vulkan
Any details about your setup?
Radeon RX 590 Series (POLARIS10, DRM 3.38.0, 5.8.10-un-def-alt1, LLVM 10.0.1)
Same as @Kuphi on an RX580 - however I cannot get it to work with Wayland and -gl
either; in that case I get:
InitializeDisplayDB():
Unable to create dummy window for GLMDisplayDB.
Any suggestions for that?
Any development on this? I tested with a newer version of SDL2 (SDL2-2.0.so.0.14.0) and it didn't work. Also tested with AMDVLK and the proprietary AMDGPU-PRO vulkan driver. I can run it with OpenGL though.
Update?
@kisak-valve can you give us any updates what the status of this is? Maybe more details which parts of the stack need to be adapted/fixed?
There has been a ton of Wayland support work done to SDL in the past few weeks; if anyone is so inclined, I'd appreciate if you build the latest from revision control (now on GitHub!) and see if it improves the situation.
If not, feel free to file bugs with SDL on this (also now on GitHub!), since I assume most of these sorts of issues are going to be related to SDL more than Dota2. We can always toss it back here if appropriate.
last https://github.com/ValveSoftware/Dota-2-Vulkan/issues/282#issuecomment-700649906 now (SDL from git):
That error might be a Wayland bug or a Dota bug, but that specific thing probably isn't an SDL bug, fwiw.
There's a non-zero chance this is just Vulkan+Wayland isn't working on your system, though. Since you were comfortable building SDL from git, can you go into SDL/test, run configure/make, and then try running SDL_VIDEODRIVER=wayland ./testvulkan
...?
If you get a window that's just slowly fading from one solid color to the next, you definitely have a system that can handle the world's most simple Vulkan application on Wayland (and can hit ESC to close the window). If not, we know this is probably a system configuration issue or a driver bug.
If this does work...we'd have to see what Dota2 is doing under the hood...maybe it assumes a Vulkan graphics queue can also accept present commands, and panics if not, but that's just how Wayland sets things up but X11 doesn't? That seems unlikely for several reasons.
So let's try testvulkan first and rule out easy culprits.
@icculus it works
Then this is back in Valve's hands, sorry.
new error
EDIT: Sorry, false alarm. It does still not work. Steam didn't catch my "-vulkan" flag.
For me it's working now. Seems like the missing wl roots implementation of Vulkan caused the problem. I use the following version now:
gandalf@mittelerde ~ pacman -Qi sway
Name : sway
Version : 1:1.6.1-3
Beschreibung : Tiling Wayland compositor and replacement for the i3 window manager
Architektur : x86_64
URL : https://swaywm.org/
Lizenzen : MIT
Gruppen : Nichts
Stellt bereit : Nichts
Hängt ab von : cairo gdk-pixbuf2 json-c pango polkit pcre swaybg ttf-font wlroots
Optionale Abhängigkeiten : alacritty: Terminal emulator used by the default config
dmenu: Application launcher [Installiert]
grim: Screenshot utility
i3status: Status line [Installiert]
mako: Lightweight notification daemon
slurp: Select a region
swayidle: Idle management daemon
swaylock: Screen locker [Installiert]
wallutils: Timed wallpapers
waybar: Highly customizable bar
xorg-xwayland: X11 support [Installiert]
Benötigt von : Nichts
Optional für : Nichts
In Konflikt mit : Nichts
Ersetzt : Nichts
Installationsgröße : 5,58 MiB
Packer : Maxim Baz <pgp@maximbaz.com>
Erstellt am : Mo 17 Jan 2022 11:30:12 CET
Installiert am : Mo 17 Jan 2022 12:38:41 CET
Installationsgrund : Ausdrücklich installiert
Installations-Skript : Nein
Verifiziert durch : Signatur
gandalf@mittelerde ~ pacman -Qi wlroots
Name : wlroots
Version : 0.14.1-3
Beschreibung : Modular Wayland compositor library
Architektur : x86_64
URL : https://gitlab.freedesktop.org/wlroots/wlroots
Lizenzen : MIT
Gruppen : Nichts
Stellt bereit : libwlroots.so=9-64
Hängt ab von : libinput libseat.so=1-64 libxkbcommon opengl-driver pixman xcb-util-errors xcb-util-renderutil xcb-util-wm
Optionale Abhängigkeiten : xorg-xwayland: Xwayland support [Installiert]
Benötigt von : sway
Optional für : Nichts
In Konflikt mit : Nichts
Ersetzt : Nichts
Installationsgröße : 988,16 KiB
Packer : Maxim Baz <pgp@maximbaz.com>
Erstellt am : Mo 17 Jan 2022 11:19:35 CET
Installiert am : Mo 17 Jan 2022 12:38:41 CET
Installationsgrund : Installiert als Abhängigkeit eines anderen Pakets
Installations-Skript : Nein
Verifiziert durch : Signatur
@cRaZy-bisCuiT Can you share a bit more details about your setup (e.g.: SDL version, mesa version, GPU)?
I'm also on Arch (btw) with the exact same version of sway
and wlroots
installed and I still get the error message mentioned earlier in this thread (https://github.com/ValveSoftware/Dota-2-Vulkan/issues/282#issuecomment-826749684).
DRI_PRIME=1 LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland %command%
still gives me
Using OpenGL by adding -gl makes it work but I would rather use vulkan:
DRI_PRIME=1 LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland %command% -gl
Intel iGPU AMD RX 480 dGPU (driver amdgpu) Fedora 35
Ubuntu 21.10 here
If I launch Dota2 (vulkan) with
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland
I get same error like https://github.com/ValveSoftware/Dota-2-Vulkan/issues/282#issuecomment-1014876325
The system-provided lib looks quite old (it symlinks to libSDL2-2.0.so.0.14.0 )
If I try just SDL_VIDEODRIVER=wayland
, I assume Dota2 use Valve's provided lib :
~/.steam/debian-installation/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
(which is symlinked to a newer lib : libSDL2-2.0.so.0.16.0), I get same error like https://github.com/ValveSoftware/Dota-2-Vulkan/issues/282#issuecomment-991919753
Sorry, false alarm. It does still not work. Steam didn't catch my "-vulkan" flag.
I'm hoping that priority of fixing -vulkan with wayland native libSDL be revised.
As posted in latest Dota 2 announcement, this will be the last major update with -gl. To this day -gl was/is the only way to run Dota 2 on wayland natively without using rather buggy xwayland -- (Xorg -> wayland layer), which is even buggier on nvidia official drivers. I, for one, am using Dota's -gl on wayland without xwayland for more than a year or two, which I found most stable in my case.
As an added thought, it seems to me that librendersystemvulkan.so calls Xorg libs directly instead of using libSDL's WSI. As can be seen here:
$ ldd librendersystemvulkan.so
linux-vdso.so.1 (0x00007fff8bbed000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff7f0bd0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff7f0bcb000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/12/libstdc++.so.6 (0x00007ff7effe0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff7f0bc6000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007ff7effb6000)
librt.so.1 => /lib64/librt.so.1 (0x00007ff7f0bbf000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff7f0cd9000)
libtier0.so => /home/user/Games/SteamLibrary/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/./libtier0.so (0x00007ff7efa00000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff7ef803000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/12/libgcc_s.so.1 (0x00007ff7eff96000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007ff7eff91000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007ff7eff89000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007ff7eff7f000)
libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007ff7eff65000)
libmd.so.0 => /usr/lib64/libmd.so.0 (0x00007ff7eff57000)
To compare, here's how librendersystemgl.so looks like, which does appropriately use libSDL's WSI:
$ ldd librendersystemgl.so
linux-vdso.so.1 (0x00007ffebddfb000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5fbc882000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5fbc87d000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/12/libstdc++.so.6 (0x00007f5fbc1e0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5fbc878000)
libudev.so.0 => /usr/lib64/libudev.so.0 (0x00007f5fbc873000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5fbc98b000)
libtier0.so => /home/user/Games/SteamLibrary/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/./libtier0.so (0x00007f5fbbc00000)
libSDL2-2.0.so.0 => /home/user/Games/SteamLibrary/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/./libSDL2-2.0.so.0 (0x00007f5fbb800000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5fbb603000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/12/libgcc_s.so.1 (0x00007f5fbc851000)
libudev.so.1 => /lib64/libudev.so.1 (0x00007f5fbc817000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f5fbc80b000)
librt.so.1 => /lib64/librt.so.1 (0x00007f5fbc806000)
I would welcome -gl removal, if it was possible to use -vulkan with SDL_VIDEODRIVER=wayland as it is possible with -gl. To achive that, my guess is, -vulkan should stop calling Xorg out of the blue, as I've shown above, and use libSDL's WSI as librendersystemgl.so does.
Can we please have @danginsburg to look at this since -gl is getting purged. https://github.com/ValveSoftware/Dota-2-Vulkan/issues/282#issuecomment-1304064179
With yesterday's 7.32e update, -gl got removed. Now, I am no longer able to run Dota 2 on wayland natively without xwayland, which was possible with -gl (it didn't use Xorg bits out of the blue like -vulkan, when it calls libXau, libXdcmp instead of using libSDL's tid bits). Please make librendersystemvulkan.so play nice with libSDL's SDL_VIDEODRIVER setting like librendersystemgl.so did before removal. Using -gl with SDL_VIDEODRIVER=wayland was much more stable for me, than using -vulkan with SDL_VIDEODRIVER=x11 for past ~half a year. Xwayland is not stable, I hate to use it.
Please help @danginsburg
Update?
DOTA 2 works in wayland-native mode, you need to fix dota.sh by changing export SDL_VIDEO_DRIVER=x11
to export SDL_VIDEO_DRIVER=wayland
CS2 also works btw
CS2 also works btw
Setting SDL_VIDEO_DRIVER=wayland
in cs2.sh crashes CS2 on startup for me (Fedora 39 (Gnome), Flatpak Steam).
Loaded libSDL3.so.0, got 0x55e67eb2e0b0
[...]
(process:1130): GLib-GObject-CRITICAL **: 21:05:46.192: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(process:1130): GLib-CRITICAL **: 21:05:46.192: g_once_init_leave: assertion 'result != 0' failed
(process:1130): GLib-GObject-CRITICAL **: 21:05:46.192: g_object_new_valist: assertion 'G_TYPE_IS_OBJECT (object_type)' failed
[...]
Counter-Strike Global Offensive/game/cs2.sh: line 118: 1130 Segmentation fault (core dumped) ${STEAM_RUNTIME_PREFIX} ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
Setting
SDL_VIDEO_DRIVER=wayland
in cs2.sh crashes CS2 on startup for me (Fedora 39, Flatpak Steam).
Cant help you there, I'm using Arch KDE with Steam-Native. There's a separate issue for cs2 though. https://github.com/ValveSoftware/csgo-osx-linux/issues/3359
Your system information
Please describe your issue in as much detail as possible:
Environment:
DRI_PRIME=1
LD_PRELOAD=/lib64/libSDL2-2.0.so.0 SDL_VIDEODRIVER=wayland DRI_PRIME=1 %command%
Steps for reproducing this issue:
-vulkan
to start optionsWhen setting
SDL_VIDEODRIVER=x11
instead ofSDL_VIDEODRIVER=wayland
the game starts.