DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.22k stars 40 forks source link

SteamDeck: vkd3d-proton disappears right after installation #201

Closed juk0de closed 1 year ago

juk0de commented 1 year ago

Hi!

I'm using ProtonUp-Qt 2.7.7 on my SteamDeck (stable branch), installed from Flathub. I'm currently trying to update DXVK and vkd3d for Lutris (also from Flathub). Installing DXVK 2.1 worked. There's a new folder dxvk-2.1 in the correct path:

(deck@steamdeck dxvk)$ ll ~/.var/app/net.lutris.Lutris/data/lutris/runtime/dxvk/
total 64K
drwxr-xr-x 4 deck deck 4.0K Jan 24 15:02 dxvk-2.1

But when I install vkd3d-proton, nothing new is created (should be version 2.8):

(deck@steamdeck dxvk)$ ll ~/.var/app/net.lutris.Lutris/data/lutris/runtime/vkd3d/
total 28K
drwxr-xr-x 4 deck deck 4.0K Aug 30  2022 v2.6

However, it looks like installation was successful (i. e. vkd3d-proton-2.8 is shown in the "Lutris Flatpak" list), but when I restart ProtonUp-Qt, it disappeared from the list. I've checked the destination folder via ssh while doing the installation, but the vkd3d folder never appeared.

sonic2kk commented 1 year ago

I can reproduce on 2.7.7 Flatpak on my Linux Desktop, but not running from source on main (643d611b23e284449f4fddf3de12a6aab25f3065), and not going back to the 2.7.7 release commit (dbb21d3dfe6a57ddbd9370d70ff9c731023b3bee). So this only seems to affect ProtonUp-Qt's Flatpak.

Running the Flatpak, vkd3d-proton installs WAY too fast, which was my first hint that something was wrong. Then the behaviour is exactly as you describe, it appears until a restart.

Another strange behaviour is that successfully downloaded versions of vkd3d-proton that I can see running from source do not appear on the Flatpak. For example I can see I have vkd3d-proton-2.7 downloaded when running from source, and I can see it in my Lutris runners folder, but it doesn't appear on the ProtonUp-Qt Flatpak list, even though it is installed.

Running from the command line doesn't give any useful hints in the output, there are no errors that I can see.

Looking at the folders that ProtonUp-Qt can write to in the Flatpak, it seems like the Flatpak does not have permission to write into various Lutris runtime folders. It only has access to the DXVK runtime folder it looks like. Modifying the Flatpak folder permissions in Flatseal to add ~/.local/share/lutris/runtime/vkd3d/ fixes the issue.

This permissions issue also explains why ProtonUp-Qt Flatpak cannot see successfully installed vkd3d-proton versions, as it can't read the folder where they're stored at all. As a temporary workaround, @minimee it is possible that you can use the AppImage which shouldn't have the permissions issues.

ProtonUp-Qt has access to the entire runners folder for Lutris, I wonder if perhaps it should have access to the entire runtimes folder as well? Got a PR up and decided against this for now, instead following convention for DXVK. Unlike the runners directory I doubt there are any real advantages to having access to the entire runtimes folder, and this folder also houses the Lutris runtime, so there could be some "security" concerns around this access, so-to-speak. The patch was written without any coffee (the most dangerous kind of patch!)

DavidoTek commented 1 year ago

I've merged https://github.com/flathub/net.davidotek.pupgui2/pull/11. An update for ProtonUp-Qt should be available in a few hours. Please let us know if it fixes your issue, @minimeee.


Thanks sonic2kk for doing the investigation and creating the PR.

juk0de commented 1 year ago

Thanks a lot for the quick fix, guys!