Disclaimer: Someone in the comments pointed out that this affects Nvidia only. I don’t have AMD, so I can’t verify if that’s correct, but likely this is only for fellow sufferers of the Green Nightmare.
I had this issue for months. Randomly, the performance for games would be abysmal (I’m talking 5 FPS in 10yo indie 3D titles). Then it would randomly work again for a few days or weeks until it would become terrible again.
Turns out, the reason for that was that flatpak appears to cause trouble when the system GPU driver is updated, but flatpak update isn’t run. So when I did dnf update
(and it updated the Nvidia driver) without running flatpak update
afterwards, the performance would suck, until something (or I) ran flatpak update
again.
So if the performance in games launched through a flatpak version of a launcher like heroic sucks, run flatpak update
.
And if that doesn’t work, run
flatpak install flathub org.freedesktop.Platform.GL.nvidia-575-64-05 org.freedesktop.Platform.GL32.nvidia-575-64-05
(Replace the version with your Nvidia driver version, and in case of AMD, google whatever the appropriate way is to install the drivers for flatpak.)
Note: This issue only applies to Nvidia, AMD users can have a completely different versions of Mesa installed on their system and in Flatpak. Nvidia drivers are closed source and they ship both the kernel and userspace drivers as one with no backwards compatibility so Flatpak must always use the exact same version as the system.
It’s (almost) always Nvidia.
In this case the issue is with 100% on flatpaks side that they decide to ship and download the entire nvidia driver again instead of using the one of the host. Note both snap and appimage do not do this, they use the nvidia driver of the host.
There is no reason to have to download the entire nvidia driver again, distros cannot modify it as it is against its license.
Also even outside of nvidia you are still going to have troubles in games with flatpak if what you are using requires a recent version of mesa
It’s (almost) always Nvidia.
A philosopher once said:
This is because flatpak has a layer of isolation and installs its own copy of the drivers. If your system driver gets updated, then the flatpak one isn’t matching.
If you update your system, you should always update everything, including flatpak.
Are you saying that when updating your system with the GUI system updater that the flatpak update will be in there too? Or do you still need to run flatpak update in terminal seperate?
I have an alias for ‘up’ that runs an apt update and full-upgrade, flatpak upgrade, and snap upgrade, plus flushes old cache.
How many weeks usually before the flatpak authors update?
Idk whether there’s delay, but this also applies to minor version changes of Nvidia drivers. They must match exactly.
In my experience, less than 3 days
What really tripped me up is that apparently either flatpak, heroic or proton has some kind of software rendering mode that works but is crazy slow. I expected driver problems to cause everything to just not work at all. Instead, everything slowed to a crawl and I couldn’t figure out why.
Yeah I also thought the same thing. It’s interesting that it still works, just really poorly.
To simplify this you might also try something like topgrade.
It does system updates, flatpak updates and other stuff all at once.
Nice project, didn’t know that one. Thanks!
At this point you might as well just save the headache and install Heroic directly
Would have been better, but Fedora has Heroic only as Flatpak in their repos. At least as far as I can see.
My bad, I should have checked before commenting 🤦♂️
The official Github does list a COPR repo but it seems the last build failed 2 months ago, so it only has version 2.17.2 instead of 2.18…
Oh man, I knew it had something to do with the Flatpack Nvidia driver packages. This happened to me several times with Heroic trying to play a game that wasn’t even recent by any means.
Yeah, there I am with my 4070, can’t even run Bioshock 1. The peak was when I tried running a very simple indie game from 2011 and it only ran with ~5 fps.
Truns out something in the chain (probably proton) seems to have a software rendering mode that it falls back to if the GPU driver doesn’t work.
Was a bit tricky to debug since all the GPU test tools by default don’t run in flatpak and thus all of the worked fine.
I wonder if the AppImage is any better?
AppImage doesn’t have Flatpak’s sandbox feature, so it probably shouldn’t be affected.
Thanks! This is a great tip. I’ve running into this myself and now I will regularly update the flatpacks.
I think (could be wrong), but I’m pretty sure I’ve seen the opposite too. Steam flatpak, or steam itself (via the little steam is updating popup upon steam startup), will update on its own - and my video drivers don’t work properly until I update the entire system (which fixes it every time).
Doesn’t happen often - but often enough for me to catch it. At least I’m pretty sure that’s what’s going on…
Wow thank you so much. I randomly found this post after issues with trying to get some new Gog games to work. Only needed to run “flatpak update” and on to the specific driver update.
Flatpaks: How to reinvent RPMs poorly.