Bazzite and mesa-git

Hello! Bazzite seems great so far, but one thing that I'm not really sure how to do is, how to use mesa-git. Specifically I'm interested in getting it working with Steam. I'm currently dual booting Fedora 40 KDE, and Bazzite 40 Gnome. On my Fedora install, it's simple enough to enable this repo, then update the system: https://copr.fedorainfracloud.org/coprs/xxmitsu/mesa-git/ - of course, I suppose this will only work with rpm packages, not Flatpak, but on Fedora I'm using the native Steam install so it's fine there. On Bazzite, well, I'm not sure how to proceed here. As far as I understand, there are at least 3 options: 1. I could still figure out how to layer mesa-git, but I'm assuming this is unsupported, could be prone to breakage, and lead to other issues 2. I could just install the flatpak version of Steam and run just Steam with mesa-git. For that, I would basically have to use this I believe: https://gitlab.com/freedesktop-sdk/mesa-git-extension 3. Distrobox container, for example: https://github.com/ublue-os/bazzite-arch - I would run Steam from this and have mesa-git installed on it
GitHub
GitHub - ublue-os/bazzite-arch: A ready-to-game Arch Linux based OC...
A ready-to-game Arch Linux based OCI designed for use exclusively in distrobox. - ublue-os/bazzite-arch
Solution:
Trying to use a different version of mesa will lead to gnome or kde crashing
Jump to solution
35 Replies
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I'm currently trying to go with option #3 for 2 reasons: learning purposes, and that this is apparently the only "supported way" if I read this correctly. I used this command, and omitted the --nvidia argument since I'm using a 7900 XTX (I assume that argument is only there for people with Nvidia GPUs):
distrobox-create --unshare-netns --image ghcr.io/ublue-os/bazzite-arch-gnome --name bazzite-arch-gnome -Y
distrobox-create --unshare-netns --image ghcr.io/ublue-os/bazzite-arch-gnome --name bazzite-arch-gnome -Y
However, running distrobox-enter -n bazzite-arch-gnome -- ' distrobox-export --app steam' lead to the following output:
Error: crun: executable file ` distrobox-export --app steam` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not found
Error: crun: executable file ` distrobox-export --app steam` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not found
I thought initially there was an issue with the extra spaces before distrobox-export so I removed those, but that didn't seem to be the case. Hm... interesting fact though is that doing that command as a separate command, like this:
distrobox-enter bazzite-arch-gnome
distrobox-export --app steam
distrobox-enter bazzite-arch-gnome
distrobox-export --app steam
Lead to the following output:
Application steam successfully exported.
OK!
steam will appear in your applications list in a few seconds.
Application steam successfully exported.
OK!
steam will appear in your applications list in a few seconds.
I can indeed confirm that it showed up in the host. I'm curious why the full command didn't work, though... In addition to this, I now have 2 Steams that show up - would it be advisable to unlayer Steam, now that I have it in distrobox, so that I don't have 2 of them? Additionally, how are the games/settings/etc shared between them? I'm slightly confused how this works, are they entirely separate or does the container use the same folder? I'd assume this command does something of the sort but I don't really understand what it does (and I'm guessing it may not work, like the previous full command that didn't work for me): distrobox-enter -n bazzite-arch -- ' mkdir -p ~/.steam && distrobox-export --bin /usr/bin/steamcmd --export-path ~/.steam && mv ~/.steam/steamcmd ~/.steam/steamcmd.sh' With all of this, there is still the actual mesa-git installation I need to do, and I'm not sure how I should proceed in that regard as I can't say I used Arch for more than an hour or 2 ever - seems like it's something to do with the AUR, and I could build the package but maybe there's an easier way with auto-updates and stuff ๐Ÿ˜… Ok, so, to conclude my questions/issues, since this got longer than expected ๐Ÿ˜…: 1. distrobox-enter -n bazzite-arch-gnome -- ' distrobox-export --app steam' - lead to an error (output above), not sure why this happened. Running the commands separately works. 2. What's the relation of the distrobox (bazzite-arch-gnome for instance) Steam vs native Steam? I'm thinking about "unlayering" (or well, removing the base package more like) the native Steam so I don't have 2 Steams. Do they share the same games/settings/saves/etc, or are they separate? Is this related to distrobox-enter -n bazzite-arch -- ' mkdir -p ~/.steam && distrobox-export --bin /usr/bin/steamcmd --export-path ~/.steam && mv ~/.steam/steamcmd ~/.steam/steamcmd.sh' command somehow (I don't understand what this command does) 3. mesa-git installation that updates using the package manager or some other form of "easy update" by running a command. Since I've barely touched Arch, not sure how I should go about doing this.
asen23
asen23โ€ข5mo ago
topgrade will upgrade all your distrobox automatically dont unlayer steam, it will take more space, just hide the desktop file
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
Ah, interesting, I do notice that ujust update does update distrobox too, pretty cool, thanks.
asen23
asen23โ€ข5mo ago
also if you really want mesa-git in system you probably need to create custom image not that recommended tho
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
You mean edit the desktop file of the native Steam installation and add NoDisplay=true or Hidden=true, or is there some better supported way? I'd assume this may get nuked on some update.
asen23
asen23โ€ข5mo ago
yes, and no, update wont touch your home the original is readonly anyway copy it and add nodisplay
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I think it's enough just for Steam, Lutris, Bottles or whatever So prob enough in distrobox Alright, I hid the original Steam by copying the desktop file and moving it to ~/.local/share/applications, then adding NoDisplay=true. So one thing's out of the way, thanks ๐Ÿ˜„ Now I guess I have to figure out how to get mesa-git installed in the bazzite-arch-gnome container, and so that it gets updated through ujust update as well. And there's the strange error with the single command above which was fixed with using the commands separately, and still that last command that is longer that I don't really understand what it's supposed to do which I haven't run yet, until I understand. ๐Ÿ˜„ And yeah, to better understand how the Steam stuff is shared between the host and the container (settings, games, etc).
asen23
asen23โ€ข5mo ago
mkdir -p ~/.steam # create .steam folder inside your home
distrobox-export --bin /usr/bin/steamcmd --export-path ~/.steam # export binary /usr/bin/steamcmd to folder you created before
mv ~/.steam/steamcmd ~/.steam/steamcmd.sh # rename the exported file to steamcmd.sh (probably so it recognized as shell script)(?)
mkdir -p ~/.steam # create .steam folder inside your home
distrobox-export --bin /usr/bin/steamcmd --export-path ~/.steam # export binary /usr/bin/steamcmd to folder you created before
mv ~/.steam/steamcmd ~/.steam/steamcmd.sh # rename the exported file to steamcmd.sh (probably so it recognized as shell script)(?)
also you can install mesa-git from aur
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
Yeah that's what I was looking at, but I guess there are multiple ways to go about it and not sure which way would be easily updatable. I'd guess using paru
asen23
asen23โ€ข5mo ago
im not that familiar with arch but i assume aur would be easily updatable using the package manager and topgrade would run it, but you can always ask in bazzite or general there are more expert arch user than me lol
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
Yeah I just did paru mesa-git and am installing it now. I'd assume since I used paru this likely gets updated with ujust update. I'll move to the general chat channel then, ty for your help so far ๐Ÿ˜„
asen23
asen23โ€ข5mo ago
np
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
OK so, to recap: 1. I created a distrobox container following the instructions on https://github.com/ublue-os/bazzite-arch (but I went with the gnome variant, as I'm using bazzite-gnome so thought this would be more compatible?) - admittedly there were some errors and I had to run the commands listed there separately, but it looks like the Steam export worked fine eventually. 2. I installed aur/mesa-git and aur/lib32-mesa-git using paru. I noticed that these don't get updated with ujust update, and I have to do these manually by entering the container and running paru (I suppose it's fine though, as they tend to take a while, so maybe it's a good idea that they don't get auto-updated as well). 3. I hid the original Steam by copying the desktop file and moving it to ~/.local/share/applications, then adding NoDisplay=true. This makes it so I don't see 2 Steam entries in the app launcher - now I only see the one exported from distrobox. If anyone has any useful input to add on top of what I said above, please leave it here. Otherwise, I will mark it as solved because the solution seems good enough to me even though I'm not really understanding some things (like the errors, or the fact that AUR packages don't get auto-updated with ujust update). Thanks again @asen23 ๐Ÿ˜„
antheas
antheasโ€ข5mo ago
Yeah, do not try to run mesa git Why are you trying to run mesa git? Trying to run steam under distrobox is a world of pain
Solution
antheas
antheasโ€ข5mo ago
Trying to use a different version of mesa will lead to gnome or kde crashing
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
To get all the performance improvements from mesa-git basically, and fixes, before they are actually pushed to the Fedora stable repos, which probably is like... months or more than that, as I don't think stable even has 24.2 but git is 24.3.
antheas
antheasโ€ข5mo ago
If you want to pull a patch to mesa you can either rebuild the mesa ver fedora ships and extend bazzite with it Or ask Kyle to include Yes it is one of the limitations of fedora It's a couple of weeks behind on mesa Than arch
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I mean, when is 24.3 even coming anyway? It's not even here: https://docs.mesa3d.org/release-calendar.html
antheas
antheasโ€ข5mo ago
But in any case you will kill your de if you swap mesa versions They need to be synced That would mean you would have to rebuild gnome as well with the new mesa If there's a noteworthy performance opt it will already be in bazziye
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I'm not sure I understand. Are you talking about distrobox mesa vs what I have installed on the host, or having mesa-git installed on the host in general?
antheas
antheasโ€ข5mo ago
Your host mesa version in any Linux distro Will crash your desktop environment if it was not the same ver that was used to build it As for distrobox, it's such a huge pain it's not worth doing
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I've never heard of this before and I've run mesa-git for a while now, haven't noticed anything like this. In general people have a good time with using mesa-git, doesn't tend to break much. But yeah eventually something is gonna break I guess, which is also why I think doing it in the container is "safer" than running it on the host.
antheas
antheasโ€ข5mo ago
I mean there's nothing dangerous here As long as you can access the tty you can reset the mesa version and recover I'm just relaying to you our fun experience going from mesa 39 to 40 to 40.1 I thinj
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I've barely used it so I don't really know the limitations of it, but so far it seemed easy to setup using the aforementioned image, didn't have to do much and it "just worked". Doesn't mean I won't run into issues later especially with regards to gamescope/HDR or whatever, maybe that doesn't work properly ๐Ÿ˜„
antheas
antheasโ€ข5mo ago
Yeah it is for certain things, but for running steam inside it not so much Gdm just refused to launch with a mismatched version
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
ouch
antheas
antheasโ€ข5mo ago
That wasn't on bazzite by the way, Kyle is a stickler for this stuff and version matches it
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I'll retest in a moment but it's a pretty recent thing, I believe there was even a Phoronix article on it.
antheas
antheasโ€ข5mo ago
Grab the article
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
Mesa 24.3 Sees "Substantial Improvement" To AMD Clear/Copy-Buffer C...
Well known AMD Mesa developer Marek Olลกรกk continues relentlessly optimizing the RadeonSI Gallium3D driver and related code for ensuring the AMD graphics stack can reach peak performance.
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
Looks like it's something that's "common" to both RADV and RadeonSI. If that's not what helped (I'm talking about Warhammer 3 specifically here, this is the one I actually noticed a boost in, in the benchmark), maybe it's some other recent update.
antheas
antheasโ€ข5mo ago
If it's worth cherry picking then perhaps it will be included in bazzite
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I'll retest, though it won't be very apples to apples because I'd be testing the Arch container with the base Steam install... Perhaps they're already included by now.
antheas
antheasโ€ข5mo ago
GitHub
bazzite/spec_files/mesa at main ยท ublue-os/bazzite
Bazzite is a custom image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld. - ublue-os/bazzite
PrussianPrince
PrussianPrinceOPโ€ข5mo ago
I just ran the benchmark (super unscientific), and I got basically the same average FPS between the distrobox and native, despite distrobox being on mesa-git. I do know around that time I got a significant boost in FPS in that game (Warhammer 3) on my Fedora KDE install, which I attributed to a mesa-git update around then but maybe it wasn't that and in fact was something else, or whatever it was is already included. OK well even disabling mesa-git in Fedora KDE, performance is like +-1%, which is within the margin of error surely... not like what I had before. Even when running an older kernel (6.10 vs 6.9) it's the same... I have no idea what happened but until very recently I was getting 82 avg FPS in Fedora in WH3's benchmark, then 86 (I attributed it to a mesa-git update but it seems I was wrong). Looks like Bazzite native Steam and distrobox Steam is the same as well (86 avg FPS). So, my bad, looks like it was something else... I would have assumed mesa-git, or maybe the kernel. ๐Ÿ˜„ I will format my Bazzite install anyway as it's Gnome (and I mainly installed it to try out Gnome), I'll grab the kde image instead and skip the distrobox container for mesa-git, and well, mesa-git altogether. Thanks as well @antheas Will close the issue now as none of it is relevant anymore - suppose just the weird errors as I'm not sure why they happened but it's also distrobox related stuff ๐Ÿ˜„
Want results from more Discord servers?
Add your server