40+ hours in of research and work and here I am. Hopefully my toil will be of assistance towards others here for the same help, much of which I am sure has been stated many times and I am just rehashing.
Disclaimer: The distros tested have been Ubuntu, Manjaro-{gnome, kde, xfce}, Pop OS, Arch. The main distro tested and I am most familiar with is manjaro-gnome. If you are here for a different distro, this may or may not be helpful.
I found that these cards work perfectly fine with ubuntu out of the box, but I was locked at only being able to use one monitor, and additional monitors simply not being detected by the software. I have not tested any further than this. Pop OS, also being debian based, shares the same issue I had with ubuntu in which I could only output to a single monitor.
What you need in order to make the 7900 XT, or apparently the XTX, work correctly is LLVM 15+ and Mesa 23+
As all the current distros come with LLVM 14, you will not be able to get it to work on a basic installation. The older radeon drivers will cause it to hang as soon as amdgpu loads, and you won’t even be able to load the installers. I don’t know why Manjaro-gnome is an exception to this, but what is installed is not in a functional state.
It may be possible to deconstruct manjaro-gnome enough that a new llvm and mesa can be compiled, but I ran into a dependency train starting at Clang which was a giant road block.
You can boot any of these distros that freeze by passing nomodeset in the boot options, but this can have issues with software to my knowledge so it isn’t a viable means of making the GPU functional.
My approach was to build an entirely new Arch installation, the below of which should be of assistance to you.
Part A
Arch Installation
Install a new copy of Arch using the Arch Installation Guide Wiki with the following adjustments:
In section 2.2, include base-devel and git, so your command will look like this:
# pacstrap -K /mnt base linux linux-firmware base-devel git
Continue with installation as per normal, or if you are new to this process, refer back to the documentation in the installation guide for assistance.
DO NOT install any package that depends on mesa or llvm during this process. It will download the older version from the main repositories, which is not what you want. Make sure you check the packages that are going to be installed before continuing any package installation.
Booting into the new install
Note: You will need to do this from a user profile, so if you haven’t created a user yet, now is the time. You cannot build a package (makepkg) as root.
From here, the first task is to build LLVM and Mesa. As of this post, the official repos (pacman -Syu) do not have the versions you need, so you will need to install them directly from the AUR.
LLVM-gitAUR
Mesa-gitAUR
I simply cloned these into the /opt directory, but it is entirely up to you were you do this. Once you are where you wish to build the files, you simply need to do the following three commands:
# git clone https://aur.archlinux.org/llvm-git.git
# cd llvm-git
# makepkg -si
Just keep hitting enter to select the default options. The compiling will likely take 1h or longer so don’t worry. This is normal, just let it do its thing.
After that, go back to the directory you are cloning the packages into and do the following:
# git clone https://aur.archlinux.org/mesa-git.git
# cd mesa-git
# MESA_WHICH_LLVM=2 makepkg -si
If you installed llvm-minimal-git, you would instead do MESA_WHICH_LLVM=1
This will also take a long time.
Congratulations
You are now ready to install whatever desktop environment/window manager/compositor etc that you want, as well as whatever else you need.
Troubleshooting
Build Freezing
Should LLVM or Mesa freeze and stop running during the build process, most likely during the testing phases iirc, it is possible that you are running out of memory as can be seen here and here.
You can reduce the number of threads being used for the build by following this: How do I limit cpu core usage for makepkg
Or, you can add ‘taskset --cpu-list 0-11’ before the makepkg command. You will need to adjust the 0-11 to the number of threads you have available on your cpu and wish to use. This fixed my llvm build freezing with the following command for example:
taskset --cpu-list 0-11 makepkg -si
You can read more in this forum thread: Ninja Overburdening System
Build Error
Read the message, and what failed. It is possible there is a package llvm or mesa are trying to use that you haven’t installed. Install that package and run the ‘makepkg -si’ line again.
#Part B
##Drivers
This part is more of just information, rather than help. Refer to the amdgpu wiki article @Mirdarthos has included a link for as a first step to any trouble shooting. You are now under 2.1 Experimental
You may still need to install the lib32 variants of llvm and mesa, which my computer unironically failed to build and failed at the check(). Hydrapaper had the same issue and I passed an unethical --nocheck to circumvent it, so maybe I will be a repeat criminal. Do as I say, not as I do.
It is probably a good idea to install the xf86-video-amdgpu-gitAUR package however.
Unfortunately, the vulkan-radeon-git package mentioned here does not exist any longer, and there are issues with the other packages at the time of this post. Even more unfortunate, is that for some reason you require vulkan support to play any games on Steam that use DX11 or DX12 (The Witcher 3 and Elden Ring are included in this category. Maybe Cyberpunk too, but I do not own that so didn’t try)
I found vulkan-radeon to conflict with mesa-git and could not be installed, but amdvlk and vulkan-amdgpu-proAUR can be installed. amdvlk apparently has issues, but I find the proprietary amdgpu-pro to be no better in testing them.
More bad news, the drivers are not in a state to properly engage the GPU in these Direct X games. Here are some metrics:
This is The Witcher on DX12 (Less than 1fps): It is also worth noting that ray tracing cannot even be turned on.
This is The Witcher on DX11 (20fps? The GPU can be seen to be much more engaged, but it is extremely choppy gameplay and not a good experience. Perfectly fine if you are just standing stationary though!)
This is Elden Ring (Performance was stable momentarily but would drop to about 10fps or less)
For reference, here is a perfectly healthy Doom Eternal that runs on Vulkan, and performs at an easy 130-160fps on ultra+ settings with ray tracing enabled.
Conclusion
Now, I am sure there is a way to fix this, perhaps it is just a single steam Launch Option that needs to be put into the games’ settings. The issue may also be directly tied to the power management of the GPU. Maybe once I ensure I have installed the lib32 llvm and mesa, it will just work, computers be computers. Alas, I do not have a solution for you if this is where you are stuck.
Once the main distros are packaged with llvm 15 or later, the compatibility of these cards should see a great improvement in working out of the box, while the drivers will also likely improve. With the Ubuntu 23.04 release, I have high expectations the multi monitor would no longer be an issue, which should pass on to Pop OS and any other debian build.
I can only hope that future releases of mesa would resolve the issue with direct x games out of the box, but that is just my personal feelings.
I saw a reference from amd that they were making adjustments to their drivers as well (or maybe it was someone else), so they will be able to select which driver to use better and you will no longer need to pass nomodeset to boot as well.
P.S There are also some helpful reddit posts you can browse through of other early adopters also troubleshooting.
I hope this has been helpful for you.