Temporary solution to get 7900 XT(X) to work

Since these new GPU’s only deliver drivers for Ubuntu und RHEL, there is some work to do.
mesa-git has to be compiled against llvm-git. These steps worked fine for me:

First, we need to compile llvm. This can be done by using your favorite AUR helper. Make sure we disable the check() function by passing on the makeflags, since tests will fail if not building in a clean chroot:

yay --mflags "--nocheck" -S llvm-minimal-git lib32-llvm-minimal-git

Optionally, if you are scared prompts for sudo will time out, you can either disable the timeout via visudo, or use the --sudoloop flag like so:

yay --mflags "--nocheck" --sudoloop -S llvm-minimal-git lib32-llvm-minimal-git

Once we have compiled and installed llvm, we can now compile mesa-git. Mesa git MUST be compiled via makepkg directly instead of using an AUR helper, since AUR helpers will ignore the environment flag and will try to compile with llvm 14:

  1. Download a snapshot for “mesa-git” and “lib32-mesa-git” from their respective AUR pages and extract both to their own folder.
  2. Within each folder, run the following command to compile: MESA_WHICH_LLVM=1 makepkg -si

The environment variable will tell makepkg to build mesa with llvm-minimal-git instead of llvm 14, which is needed to get it to work. Afterwards you can reboot to a working 7900 XTX :slight_smile:

Source:

:edit
After nearly a month now, I had nearly zero GPU driver related problems, steam/proton and emulators (switch/ps3) are working great. Only thing missing is AV1 encoding at this time on linux.
IMHO: 7900 XT runs great on Manjaro Gnome (Wayland).

3 Likes

Thanks! Had to work through some conflicts but have it working. Maybe OP was already on latest kernel but I had to also upgrade to 6+ so I used:

Manjaro Settings Manager > Kernel > Linux 6.1.1-1 > Click Install > reboot

After reboot, you can verify it’s using > 6 with:

mhwd-kernel -li

I swapped GPUs and played a game on Ultra 5120x1440 for hour or so and no issues. Stable so far, no issues with wake from sleep, etc.

Edit: I’m using Gnome btw

Thanks, worked for me as well, but I still have an invisible cursor in KDE. Not sure if that is an X or KDE issue, quite anoying.

EDIT: nvm, solved it with SWcursor option in custom xorg.conf.

Hello everyone and I wish you the best for the new year!

I have been trying to install latest Mesa git to get my RX 7900 to run but as of yet I have all but failed. Tried the command given here

yay --mflags "--nocheck" --sudoloop -S llvm-minimal-git lib32-llvm-minimal-git

And I get this response:

llvm-minimal-git
:: Checking for conflicts...
:: Checking for inner conflicts...
 -> Package conflicts found:
 -> Installing llvm-minimal-git will remove: llvm, compiler-rt, clang
 -> Conflicting packages will have to be confirmed manually
[Aur:4]  llvm-minimal-git-16.0.0_r446772.105fef5dca7e-1 (llvm-libs-minimal-git llvm-minimal-git)  lib32-llvm-minimal-git-13.0.0_r384835.672f67300466-1 (lib32-llvm-libs-minimal-git lib32-llvm-minimal-git)

  2 llvm-minimal-git                         (Build Files Exist)
  1 lib32-llvm-minimal-git                   (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> A
:: Deleting (1/2): /home/$USER/.cache/yay/llvm-minimal-git
:: Deleting (2/2): /home/$USER/.cache/yay/lib32-llvm-minimal-git
:: (1/2) Downloaded PKGBUILD: lib32-llvm-minimal-git
:: (2/2) Downloaded PKGBUILD: llvm-minimal-git
  2 llvm-minimal-git                         (Build Files Exist)
  1 lib32-llvm-minimal-git                   (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> A
diff --git /home/$USER/.cache/yay/llvm-minimal-git/PKGBUILD /home/$USER/.cache/yay/llvm-minimal-git/PKGBUILD
new file mode 100644
index 0000000..7de7e87
--- /dev/null
+++ /home/$USER/.cache/yay/llvm-minimal-git/PKGBUILD

When it ask about Packages to cleanBuild? and Diffs to show? I tried A, N and I. After that it runs the process and it seems to finish and then I get asked 3 questins

 -> Found git repo: github.com/llvm/llvm-project.git
 -> Found git repo: github.com/llvm/llvm-project.git
 -> Found git repo: github.com/KhronosGroup/SPIRV-LLVM-Translator.git
 -> Found git repo: github.com/KhronosGroup/SPIRV-LLVM-Translator.git
 -> llvm-minimal-git not satisfied, flushing install queue
loading packages...
resolving dependencies...
looking for conflicting packages...
:: llvm-minimal-git and llvm are in conflict. Remove llvm? [y/N] y
:: llvm-minimal-git and compiler-rt are in conflict. Remove compiler-rt? [y/N] y
:: llvm-minimal-git and clang are in conflict. Remove clang? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing clang breaks dependency 'clang=14.0.6' required by shiboken6
error: could not set install reason for package llvm-libs-minimal-git (could not find or read package)
 -> exit status 1

Now I am at a loss on what to do in order to solve this and even why it fails. Anyone have an idea what do to next?

Im on Manjaro 22, Kernel 6.0 atm.

Best regards
Hajnyckel

I remember that happening, there is probably a cleaner way to fix dependencies, but I just removed shiboken6 and some others dependencies, like pyside6 and web-installer-url-handler I think.

That solved the problem, thank you.
I had to remove

  • manjaro hello
  • web-installer-url-handler
  • pyside6
  • shiboken6

I just tried this but now have the problem, that my GPU (or just the driver?) hangs when I try to switch from SDDM to KDE Plasma after the login.
The GPU is then reset, which crashes Plasma and throws me back into SDDM.

Has someone an idea how to fix this?

Jan 03 13:05:42 linuxPC kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout, signaled seq=23272, emitted seq=23274
Jan 03 13:05:42 linuxPC kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process Xorg pid 23105 thread Xorg:cs0 pid 23131
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: IP block:gfx_v11_0 is hung!
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GPU reset begin!
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:174 vmid:0 pasid:0, for process  pid 0 thread  pid 0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:   in page starting at address 0x0000000000000000 from client 10
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00040B5D
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          Faulty UTCL2 client ID: CPC (0x5)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MORE_FAULTS: 0x1
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          WALKER_ERROR: 0x6
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          PERMISSION_FAULTS: 0x5
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MAPPING_ERROR: 0x1
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          RW: 0x1
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:174 vmid:0 pasid:0, for process  pid 0 thread  pid 0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:   in page starting at address 0x0000000000000000 from client 10
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00000000
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          Faulty UTCL2 client ID: CB/DB (0x0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MORE_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          WALKER_ERROR: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          PERMISSION_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MAPPING_ERROR: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          RW: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:174 vmid:0 pasid:0, for process  pid 0 thread  pid 0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:   in page starting at address 0x0000000000000000 from client 10
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00000000
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          Faulty UTCL2 client ID: CB/DB (0x0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MORE_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          WALKER_ERROR: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          PERMISSION_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MAPPING_ERROR: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          RW: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:174 vmid:0 pasid:0, for process  pid 0 thread  pid 0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:   in page starting at address 0x0000000000000000 from client 10
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00000000
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          Faulty UTCL2 client ID: CB/DB (0x0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MORE_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          WALKER_ERROR: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          PERMISSION_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MAPPING_ERROR: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          RW: 0x0
Jan 03 13:05:43 linuxPC kernel: Failed to wait all pipes clean
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: soft reset failed, will fallback to full reset!
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: [gfxhub] page fault (src_id:0 ring:158 vmid:0 pasid:0, for process  pid 0 thread  pid 0)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:   in page starting at address 0x0000000000000000 from client 10
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GCVM_L2_PROTECTION_FAULT_STATUS:0x00000B3C
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          Faulty UTCL2 client ID: CPC (0x5)
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MORE_FAULTS: 0x0
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          WALKER_ERROR: 0x6
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          PERMISSION_FAULTS: 0x3
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          MAPPING_ERROR: 0x1
Jan 03 13:05:43 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu:          RW: 0x0
Jan 03 13:05:44 linuxPC kernel: [drm:gfx_v11_0_hw_fini [amdgpu]] *ERROR* failed to halt cp gfx
Jan 03 13:05:44 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: free PSP TMR buffer
Jan 03 13:05:44 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: MODE1 reset
Jan 03 13:05:44 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GPU mode1 reset
Jan 03 13:05:44 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GPU smu mode1 reset
Jan 03 13:05:44 linuxPC kernel: amdgpu 0000:0d:00.0: amdgpu: GPU reset succeeded, trying to resume

Also maybe relevant:

Devices section from "vulkaninfo --summary"
Devices:
========
GPU0:
	apiVersion         = 4206830 (1.3.238)
	driverVersion      = 92680291 (0x5863063)
	vendorID           = 0x1002
	deviceID           = 0x744c
	deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName         = AMD Radeon Graphics (RADV GFX1100)
	driverID           = DRIVER_ID_MESA_RADV
	driverName         = radv
	driverInfo         = Mesa 23.0.0-devel (git-980df9ede1)
	conformanceVersion = 1.3.0.0
	deviceUUID         = 00000000-0d00-0000-0000-000000000000
	driverUUID         = 414d442d-4d45-5341-2d44-525600000000
GPU1:
	apiVersion         = 4206830 (1.3.238)
	driverVersion      = 1 (0x0001)
	vendorID           = 0x10005
	deviceID           = 0x0000
	deviceType         = PHYSICAL_DEVICE_TYPE_CPU
	deviceName         = llvmpipe (LLVM 16.0.0, 256 bits)
	driverID           = DRIVER_ID_MESA_LLVMPIPE
	driverName         = llvmpipe
	driverInfo         = Mesa 23.0.0-devel (git-980df9ede1) (LLVM 16.0.0)
	conformanceVersion = 1.3.1.1
	deviceUUID         = 6d657361-3233-2e30-2e30-2d6465766500
	driverUUID         = 6c6c766d-7069-7065-5555-494400000000

Output from "pacman -Qe | grep mesa":

lib32-mesa-git 23.0.0_devel.164692.980df9ede18.d41d8cd98f00b204e9800998ecf8427e-1
mesa-demos 8.5.0-2
mesa-git 23.0.0_devel.164692.980df9ede18.5269a95f00c4d6964d487d9dbd94f62b-1


Edit:

Got it to work. The problem was a combination of an old startup script which did some xrandr magic and then restarted plasmashell and an incompatible version (22.3) of vulkan-mesa-layers-git and lib32-vulkan-mesa-layers-git.

Also, if you don’t want to compile everything by yourself, you can now just add

[mesa-git]
SigLevel = Never
Server = https://pkgbuild.com/~lcarlier/$repo/$arch

to your mirrors (e.g. in /etc/pacman.d/mirrorlist) and then install all required packages.

For me this was:

pamac install mesa-git lib32-mesa-git vulkan-radeon-git lib32-vulkan-radeon-git vulkan-mesa-layers-git lib32-vulkan-mesa-layers-git

There is also a full guide without manual compilation at:

2 Likes

I think I have the same problem as you. I get to SDDM and then I login to Xfce and at that point it freezes and then resets back to SDDM.

Have no idea how to post the information you provided, can you share the command?
All I managed was:

pacman -Qe | grep mesa
lib32-mesa-demos 8.5.0-1
lib32-mesa-git 23.0.0_devel.164692.980df9ede18.d41d8cd98f00b204e9800998ecf8427e-1
mesa-demos 8.5.0-2
mesa-git 23.0.0_devel.164692.980df9ede18.5269a95f00c4d6964d487d9dbd94f62b-1

Interesting that I have lib32-mesa-demos and mesa-demos (both git) and you do not, might be irrelevant.

Also have the invisible cursor but that is a problem for later.

Running Kernel 6.0
Mesa-git 23.0
LLVM 16.0

I just edited my post with a fix which worked for me. Didn’t want to double post and was a bit to slow with the edit :slight_smile:

You could try to install the packagesI mentioned after adding that repo to your mirrors and see if it helps.
Otherwise try to (re-)move all your autostart objects and then try to login again.
If you also use KDE Plasma, you can find them at /home/[USERNAME]/.config/autostart.

For me it was steam in my autostart which crashed everything because of the described conflicting libraries.

To fix the cursor problem you can put this:

Section "Device"
          Identifier "modesetting"
          Driver "modesetting"
EndSection

into /etc/X11/xorg.conf.d/99-modesetting.conf.

Works like a charm after a reboot

Some difficulties for me but I got it to work, now I can login and my cursor is showing. Thank you so much for sharing!

Just do now know how stable it is at the moment but will start testing some games and see what will happen.

EDIT: Tow steps forward and one step back. At first I could launch Steam but it would freeze when launching any game and after that freeze I cannot start Steam at all without a freeze, the same goes for benchmarking programs such as Unigine heaven, superposition however, SuperTuxCart works in fullscreen, not a demanding game but still works. Also, I can brows the web in Firefox, watch youtube, movies, play music and so. This makes me think that there is some conflict but as I am no Linux expert I am just guessing around trying things. As far I have removed Mangohud and Goverlay, reinstalled steam and some more minor stuffs but of course it had no effect. My last measure is a bit extreme but I am considering reinstalling Manjaro all together as there might be some small thing left that will be really hard to find or it is just in front of me. But before going that far to I would like to see if anyone have an idea on what I could do/try to see if it fixes it.

I had the same problem after I did some more tinkering.
It worked again after installing todays mesa-git etc… updates.

I got it to work now, “all I did” was to recompile LLVM, then download from AUR mesa-git and lib32-mesa-git and reinstall them without any extra tinkering. Some of the tinkering steps I did yesterday and the day before are still there of which I will remove step by step and see how it will work, of course I will do a backup of my system first.

Just gamed some for a few minutes to try gpu and for now it seems stable.

llvm 15.0.7 is now in the unstable branch. :smiley: Including the mesa 22.3.3 rebuild.

Running a RX 7900 XT, had a few crashes, wasn’t sure if that was due to using fractional scaling, but turning it off has left me running stable now for a couple hours. Did some gaming, Red Dead Redemption II and Gears 5. Both games ran well, no crashes or black screens.

1 Like

I also updated llvm-stuff from arch repo, mesa-git from AUR has also been updated to use llvm/clang 15.0.7 without setting WHICH_LLVM manually

Really impressed how good the package manager works with AUR or directly with pacman -U name.zst (downloaded them from arch repos)

clang-15.0.7-1-x86_64.pkg.tar.zst
compiler-rt-15.0.7-1-x86_64.pkg.tar.zst
lib32-clang-15.0.7-1-x86_64.pkg.tar.zst
lib32-llvm-15.0.7-1-x86_64.pkg.tar.zst
lib32-llvm-libs-15.0.7-1-x86_64.pkg.tar.zst
lld-15.0.7-1-x86_64.pkg.tar.zst
llvm-15.0.7-1-x86_64.pkg.tar.zst
llvm-libs-15.0.7-1-x86_64.pkg.tar.zst
spirv-headers-1_1.3.236.0-1-any.pkg.tar.zst
spirv-llvm-translator-15.0.0.r10+g78ad93b9-1-x86_64.pkg.tar.zst
spirv-tools-2022.4-1-x86_64.pkg.tar.zst

Tl;dr

  • Arch: for bleeding edge: install mesa-git and lib32-mesa-git with your favorite AUR helper, or only mesa 22.3.x
  • Manjaro: check your branch and llvm/clang version, if it shows as 15.0.7 → same as arch, else a) first post b) get llvm 15 stuff somewhere else c) switch branches d) wait till llvm 15.0.7 hits your branch
1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.