While you're here, please consider supporting GamingOnLinux on:
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register
- GOG launch their Preservation Program to make games live forever with a hundred classics being 're-released'
- Valve dev details more on the work behind making Steam for Linux more stable
- NVIDIA detail upcoming Linux driver features for Wayland and explain current support
- GE-Proton 9-19 brings fixes for Horizon Zero Dawn Remastered, Monster Hunter Wilds and more
- Direct3D to Vulkan translation layer DXVK v2.5 released with rewritten memory management
- > See more over 30 days here
-
Inspired by SSX, arcade snowboarding game Tricky Madnes…
- based -
Half-Life 2 free to keep until November 18th, Episodes …
- Xpander -
Valve dev details more on the work behind making Steam …
- dvd -
Proton Experimental adds DLSS 3 Frame Generation suppor…
- 14 -
Linux GPU Configuration Tool 'LACT' adds NVIDIA support…
- Purple Library Guy - > See more comments
- Types of programs that are irritating
- dvd - New Desktop Screenshot Thread
- pilk - What do you want to see on GamingOnLinux?
- Linas - Weekend Players' Club 11/15/2024
- StoneColdSpider - Our own anti-cheat list
- Xpander - See more posts
View PC info
To fix that, we need to recompile Mesa with
-D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc
Therefore, I'm going to attempt to help people build their own Mesa packages, using some PKGBUILDs I am providing. I just fixed these up and tested them so they should work for other people (mine were too personalized). These should work for Manjaro or Arch and can be used to check out master ("main"), a stable tag or the 23.0.0-rc by commenting or editing a line.
Starting with that:
PKGBUILDs
http://www.mikeserv.org/files/manjaro_PKGBUILDs_mesa-git-feb082022.tar.gz
MD5SUM
http://www.mikeserv.org/files/manjaro_PKGBUILDs_mesa-git-feb082022.md5sum
6f6e3c51d8427d71b1a6b34efc68662e manjaro_PKGBUILDs_mesa-git-feb082022.tar.gz
OK, these started out years ago as the mesa-git AUR PKGBUILDs from Lone_Wolf, but I found some things in it to be too silly for me. For example a stanza that makes you set a variable for specific distro LLVM packages. I don't like that, I satisfy my own LLVM dependency. Let it use your system's (currently LLVM 15.0.7). Anyway, I gutted it but I have left all the original credits in the files.
Unpack the tarball and it will create two directories, mesa-git and lib32-mesa-git.
You will need to build both.
Open the PKGBUILD files in your editor of choice.
Take a look at makedepends and depends. You can save yourself trouble by making sure those packages are installed. (Otherwise the makepkg will fail for each one at a time lol)
If you have never compiled anything on Manjaro or Arch before, start by installing the base-devel meta
pacman -Syu base-devel
(-Syu will check and queue up all packages for update while installing your package. Use at least pacman -S)
Now, take a look at the prepare() function in the PKGBUILD. This is actually executed before pkgver() even though it's usually listed below it in PKGBUILDs
prepare() {
cd mesa
git checkout tags/mesa-22.3.5
if [ -d _build ]; then
rm -rf _build
fi
}
See the git checkout line. I have it set to check out the current stable at the moment.
If you want mesa master (currently 23.1.0-devel) simply comment out the git checkout line
If you want to build mesa-23.0.0-rc4 change it to that. the PKGVER commands will strip out the extra hyphen and replace it with a dot for the pkgver variable.
Another thing to note. This will use your CFLAGS and CXXFLAGS from your /etc/makepkg.conf. We're doing a release build here, and the makepkg.conf flags will override it with -O2. So I'm simply removing the -O2 from existing variables so as not to override the build's -O3 optimization level.
export CFLAGS=${CFLAGS/-O2}
export CXXFLAGS=${CXXFLAGS/-O2}
-D b_lto=false \
Arch turns on link time optimization for this build. I have found that to cause subtle breakage that can have me chasing my tail, so I don't do it. Change it to true if you want to try that (it should be OK with the stable). It also makes the build take more than twice as long (e.g. 20 minutes vs. 8). I see zero benefit from doing it, it might make more sense if you're using OSMesa/llvmpipe)
Alright, simply cd into mesa-git and type
makepkg
Do the same with the lib32-mesa-git
Installing the Packages
To make it easier, you can put the resulting mesa-git .pkg.tar.zstd files together in a directory by themselves so you can just install them with a wildcard. In any case, install them with "pacman -U"
pacman -U mesa-git-22.3.5.162827.6570a15662e.pkg.tar.zstd
pacman -U lib32-mesa-git-22.3.5.162827.6570a15662e.pkg.tar.zstd
Or if you put them both in the same subdir with no other packages...
pacman -U *.pkg.tar.zstd
Now, here comes the tricky part. Manjaro/Arch split their Mesa packages into several subpackages. That bites the weenie.
In the provides= and conflicts= lines in the PKGBUILD, are the packages that it provides and conflicts with, intended to replace. You will be prompted to remove the conflicting packages. Do so, as our mesa-git and lib32-mesa-git are going to be providing those things.
It gets easier after this, you'll just be upgrading two packages from now on when you do new builds.
There should be no need to add IgnorePkg entries in /etc/pacman.conf as we are removing distro packages and replacing them with the mesa-git packages. HOWEVER, I HAVE seen Manjaro make available compiled mesa-git packages in the past, so to /etc/pacman.conf it's a good idea to add mesa-git and lib32-mesa-git to IgnorePkg directives.
IgnorePkg = mesa-git lib32-mesa-git
You can have as many IgnorePkg lines as you want (e.g. the lines can get pretty long for me lol)
Good Luck :-)
Last edited by Grogan on 9 February 2023 at 1:27 am UTC
View PC info
Also, since I started working on this today, mesa-22.3.5 has been released as the stable.
I'm personally using master right now, because I want the latest bits related to the vulkan graphics pipeline library as they are committed, but master could have something broken at any moment you roll the dice. Not usually, they are pretty careful, but that's the nature of it.
A few weeks ago I was using mesa-22.3.0-rc (currently -rc4) without problems as well.
So pick your poison :-)
Last edited by Grogan on 9 February 2023 at 1:58 am UTC
View PC info
View PC info
I have simplified the PKGBUILDs a lot, they are easier to follow, but it basically builds mesa-git much like the AUR PKGBUILDs would (single package for mesa-git and lib32-mesa-git). If you comment out, #git checkout line it would build "main" like the AUR's would.