Open ghost opened 2 years ago
Also retroarch works fine with video_driver = "vulkan"
by simply compiling and running it myself, also works in Steam version.
I hit either this or a similar issue packaging a vulkan-based game, and found this issue when searching for a solution.
One of my players figured out that removing libwayland-client.so.0 from the appimage for my game got it working. I can't easily test this myself, but if there is in fact a libwayland-client.so.0 in this RetroArch build, and if removing/repacking the image fixes this, it might be worth following https://github.com/AppImage/pkg2appimage/issues/510.
I've extracted the appimage, dumped the binary into the lib dir and removed libwayland-client.so.0 and retroarch boots correctly under vulkan just as it does from the flatpack and steam builds.
Here is a script to re-create the AppImage
without the problematic file:
#!/usr/bin/env bash
set -e
mkdir -p workdir
cd workdir
# Get AppImage of retroarch
wget -q --show-progress --progress=bar:noscroll -O retroarch.AppImage "https://github.com/hizzlekizzle/RetroArch-AppImage/releases/download/Linux_LTS_Nightlies/RetroArch-Linux-x86_64-Nightly.AppImage"
chmod +x ./retroarch.AppImage
# Extract
./retroarch.AppImage --appimage-extract
# Erase downloaded appimage
rm retroarch.AppImage
# Erase problematic file
rm squashfs-root/usr/lib/libwayland-client.so.0
# Create AppDir
mv squashfs-root AppDir
# Get appimagetool
wget -q --show-progress --progress=bar:noscroll -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool
# Create new fixed appimage
./appimagetool AppDir
mv ./*.AppImage ..
cd ..
rm -rf workdir
wget -q --show-progress --progress=bar:noscroll -O retroarch.AppImage "https://github.com/hizzlekizzle/RetroArch-AppImage/releases/download/Linux_LTS_Nightlies/RetroArch-Linux-x86_64-Nightly.AppImage"
Sus, why are you getting this old AppImage from some random person.
Official is https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z
That random person is the guy who set up the appimage builds in the first place.
wget -q --show-progress --progress=bar:noscroll -O retroarch.AppImage "https://github.com/hizzlekizzle/RetroArch-AppImage/releases/download/Linux_LTS_Nightlies/RetroArch-Linux-x86_64-Nightly.AppImage"
Sus, why are you getting this old AppImage from some random person.
Official is https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z
Hi, this is the first link that appears when you search for retroarch appimages, I didn't know that there were more recent builds. Thanks for pointing this out :)
This is still a problem with version 1.14.0.
Thanks
Here is a script to re-create the
AppImage
without the problematic file:Still experiencing this issue specifically on the steam deck, so I updated the script to work with the latest nightly build. For some reason this doesn't work with the QT version, but the regular download works fine on vulkan after libwayland-client.so.0 is removed.
#!/usr/bin/env bash
set -e
mkdir -p workdir
cd workdir
# Get AppImage of retroarch
wget -q --show-progress --progress=bar:noscroll "https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z"
7z x RetroArch.7z
mv RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage.home/ .
chmod +x ./RetroArch-Linux-x86_64.AppImage
# Extract
./RetroArch-Linux-x86_64.AppImage --appimage-extract
# Erase downloaded appimage
rm RetroArch-Linux-x86_64.AppImage
# Erase problematic file
rm squashfs-root/usr/lib/libwayland-client.so.0
# Create AppDir
mv squashfs-root AppDir
# Get appimagetool
wget -q --show-progress --progress=bar:noscroll -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool
# Create new fixed appimage
./appimagetool AppDir
mv RetroArch-Linux-x86_64.AppImage.home RetroArch-x86_64.AppImage.home
mv ./*.AppImage RetroArch-x86_64.AppImage.home ..
cd ..
rm -rf workdir
And I've been using the lower script to update. Just run it from the same directory the AppImage is in. Conveniently they have an update 7z file available, so this doesn't overwrite any configs. All it does is extract the archive, patch the new AppImage, and overwrite it on top of old files in the retroarch directory with any new ones.
#!/usr/bin/env bash
set -e
mkdir -p workdir
cd workdir
# Get AppImage of retroarch
wget -q --show-progress --progress=bar:noscroll "https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_update.7z"
7z x RetroArch_update.7z
mv RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage RetroArch-Linux-x86_64/RetroArch-Linux-x86_64.AppImage.home/ .
chmod +x ./RetroArch-Linux-x86_64.AppImage
# Extract
./RetroArch-Linux-x86_64.AppImage --appimage-extract
# Erase downloaded appimage
rm RetroArch-Linux-x86_64.AppImage
# Erase problematic file
rm squashfs-root/usr/lib/libwayland-client.so.0
# Create AppDir
mv squashfs-root AppDir
# Get appimagetool
wget -q --show-progress --progress=bar:noscroll -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool
# Create new fixed appimage
./appimagetool AppDir
mv RetroArch-Linux-x86_64.AppImage.home RetroArch-x86_64.AppImage.home
cd ..
cp -R workdir/RetroArch-x86_64.AppImage.home/ .
mv workdir/*.AppImage .
rm -rf workdir
The scripts work for me on the Steam Deck.
@hizzlekizzle Any possibility that this can be done upstream so the user doesn't have to?
I believe the problem is that without that file, the appimage won't work on other distros/devices.
is it worth simply building two appimages (one with the file, one without), and on the download page indicate which distros each is known to work with?
This is still an issue with the beta steamOS 3.6 for Steam Deck.
Do you have both amdvlk and vulkan-radeon packages installed? That caused issue with me on Arch, even though the Steam version worked, so I had to uninstall amdvlk for RA to work with vulkan enabled.
An appimage (I built it) that worked on the Steamdeck in July stopped working in this manner after I updated my Steamdeck. That would lead me to believe it's some conflict with a newer version of the wayland file on the host, even if wayland isn't being used.
Modifying as said here https://github.com/libretro/RetroArch/issues/13714#issuecomment-1873517309 allows the appimage to work in my case.
From the 11/6 Nightly (with this commit https://github.com/libretro/RetroArch/commit/ae202515f6fc6a6cf461a53b33e59377bab51bd7) onwards, I am now able to use the build straight from buildbot on the Steam Deck with vulkan.
Description
With
video_driver = "vulkan"
set Retroarch immediately crashes, it does not even start.Vulkan works with literally everything else on my system.
Expected behavior
Retroarch starts.
Actual behavior
It crashes.
Steps to reproduce the bug
Bisect Results
Version/Commit
This happens on latest 2022-03-08 nightly and 1.9.14 stable, I have not tried any older.
Environment information