Radeon 7900 XT screen glitchy

I recently built a new PC, with the Radeon 7900 XT as the GPU, and got the classic invisible-mouse-cursor during install, but persevered, only to find that my graphics randomly starting glitching out in “blocks” on both my monitors. I assumed this was a X11 thing, and swapped to Wayland, to the same issue.
OS: Manjaro Linux x86_64
Kernel: 6.1.31-2-MANJARO
DE: Plasma 5.27.5
CPU: 12th Gen Intel i7-12700K (20) @ 4.900GHz
GPU: AMD ATI Radeon RX 7900 XT/7900 XTX
Here’s a video of it happening (ignore surroundings)
https://i.imgur.com/IpWxFAh.gif

Please provide

inxi -Fazy
mhwd -l -li

inxi -Fazy
mhwd -l -li
System:
Kernel: 6.1.31-2-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.1.1
parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
root=UUID=7a64787c-dcb3-449f-b3f2-f8fa12bf47f7 rw quiet splash
udev.log_priority=3
Desktop: KDE Plasma v: 5.27.5 tk: Qt v: 5.15.9 wm: kwin_wayland vt: 2
dm: SDDM Distro: Manjaro Linux base: Arch Linux
Machine:
Type: Desktop System: Gigabyte product: B760I AORUS PRO v: -CF
serial:
Mobo: Gigabyte model: B760I AORUS PRO v: x.x serial:
UEFI: American Megatrends LLC. v: F2 date: 03/30/2023
CPU:
Info: model: 12th Gen Intel Core i7-12700K bits: 64 type: MST AMCP
arch: Alder Lake gen: core 12 level: v3 note: check built: 2021+
process: Intel 7 (10nm ESF) family: 6 model-id: 0x97 (151) stepping: 2
microcode: 0x2C
Topology: cpus: 1x cores: 12 mt: 8 tpc: 2 st: 4 threads: 20 smt: enabled
cache: L1: 1024 KiB desc: d-4x32 KiB, 8x48 KiB; i-8x32 KiB, 4x64 KiB
L2: 12 MiB desc: 8x1.2 MiB, 1x2 MiB L3: 25 MiB desc: 1x25 MiB
Speed (MHz): avg: 4313 high: 4754 min/max: 800/4900:5000:3800 scaling:
driver: intel_pstate governor: powersave cores: 1: 4700 2: 4690 3: 4746
4: 4700 5: 4701 6: 4700 7: 4700 8: 3600 9: 4700 10: 3600 11: 4411 12: 4754
13: 4700 14: 3600 15: 4719 16: 4696 17: 3600 18: 3600 19: 3600 20: 3756
bogomips: 144440
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities:
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: mmio_stale_data status: Not affected
Type: retbleed status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB
filling, PBRSB-eIBRS: SW sequence
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:
Device-1: Intel AlderLake-S GT1 vendor: Gigabyte driver: i915 v: kernel
ports: active: none empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0
chip-ID: 8086:4680 class-ID: 0300
Device-2: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] vendor: XFX
driver: amdgpu v: kernel arch: RDNA-3 code: Navi-3x process: TSMC n5 (5nm)
built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 16 ports:
active: DP-2,HDMI-A-3 empty: DP-3,DP-4 bus-ID: 03:00.0 chip-ID: 1002:744c
class-ID: 0300
Display: wayland server: X.org v: 1.21.1.8 with: Xwayland v: 23.1.1
compositor: kwin_wayland driver: X: loaded: amdgpu,modesetting
unloaded: radeon alternate: fbdev,vesa dri: radeonsi,iris gpu: i915,amdgpu
d-rect: 2944x1848 display-ID: 0
Monitor-1: DP-2 pos: primary,top-left res: 1920x1080 size: N/A modes: N/A
Monitor-2: HDMI-A-3 pos: bottom-r res: 1024x768 size: N/A modes: N/A
API: OpenGL v: 4.6 Mesa 23.0.4 renderer: AMD Radeon RX 7900 XT (gfx1100
LLVM 15.0.7 DRM 3.49 6.1.31-2-MANJARO) direct-render: Yes
Audio:
Device-1: Intel vendor: Gigabyte driver: snd_hda_intel v: kernel
alternate: snd_sof_pci_intel_tgl bus-ID: 00:1f.3 chip-ID: 8086:7a50
class-ID: 0403
Device-2: AMD driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab30 class-ID: 0403
Device-3: Kingston HyperX Cloud Flight Wireless Headset
driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
lanes: 1 mode: 1.1 bus-ID: 1-4.2:6 chip-ID: 0951:16c4 class-ID: 0300
API: ALSA v: k6.1.31-2-MANJARO status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: JACK v: 1.9.22 status: off tools: N/A
Server-2: PipeWire v: 0.3.70 status: off with: wireplumber status: active
tools: pw-cli,wpctl
Server-3: PulseAudio v: 16.1 status: active with: pulseaudio-alsa
type: plugin tools: pacat,pactl
Network:
Device-1: Intel driver: iwlwifi v: kernel port: N/A bus-ID: 00:14.3
chip-ID: 8086:7a70 class-ID: 0280
IF: wlo1 state: down mac:
Device-2: Intel Ethernet I225-V vendor: Gigabyte driver: igc v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: N/A bus-ID: 06:00.0
chip-ID: 8086:15f3 class-ID: 0200
IF: enp6s0 state: up speed: 1000 Mbps duplex: full mac:
Bluetooth:
Device-1: Intel driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s
lanes: 1 mode: 1.1 bus-ID: 1-14:5 chip-ID: 8087:0033 class-ID: e001
Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Drives:
Local Storage: total: 5.46 TiB used: 999.56 GiB (17.9%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital model: WD BLACK
SN850X HS 1000GB size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial:
fw-rev: 620311WD temp: 52.9 C scheme: GPT
ID-2: /dev/nvme1n1 maj-min: 259:5 vendor: Samsung model: SSD 980 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: fw-rev: 2B4QFXO7 temp: 46.9 C
scheme: GPT
ID-3: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 870 QVO 4TB
size: 3.64 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: fw-rev: 2B6Q scheme: GPT
Partition:
ID-1: / raw-size: 122.07 GiB size: 119.6 GiB (97.97%) used: 15.46 GiB (12.9%)
fs: ext4 dev: /dev/nvme0n1p3 maj-min: 259:3
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 312 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p2 maj-min: 259:2
ID-3: /home raw-size: 488.28 GiB size: 479.55 GiB (98.21%)
used: 166.72 GiB (34.8%) fs: ext4 dev: /dev/nvme0n1p4 maj-min: 259:4
Swap:
Alert: No swap data was found.
Sensors:
System Temperatures: cpu: 46.0 C mobo: N/A gpu: amdgpu temp: 53.0 C
mem: 60.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Info:
Processes: 423 Uptime: 1h 0m wakeups: 0 Memory: available: 31.12 GiB
used: 5.88 GiB (18.9%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 13.1.1 clang: 15.0.7 Packages: 1239
pm: pacman pkgs: 1233 libs: 389 tools: pamac,yay pm: flatpak pkgs: 6
Shell: Zsh v: 5.9 default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.27

Installed PCI configs:


              NAME               VERSION          FREEDRIVER           TYPE

       video-linux            2018.05.04                true            PCI

Warning: No installed USB configs!

0000:03:00.0 (0300:1002:744c) Display controller ATI Technologies Inc:


              NAME               VERSION          FREEDRIVER           TYPE

       video-linux            2018.05.04                true            PCI
 video-modesetting            2020.01.13                true            PCI
        video-vesa            2017.03.12                true            PCI

0000:00:02.0 (0300:8086:4680) Display controller Intel Corporation:


              NAME               VERSION          FREEDRIVER           TYPE

       video-linux            2018.05.04                true            PCI
 video-modesetting            2020.01.13                true            PCI
        video-vesa            2017.03.12                true            PCI

Please see the link for how to properly format your output.


You have BIOS updates available. You should definitely do that with newer hardware.


A similar thing may be said of kernels. Keep the 6.1 LTS but try out newer ones - 6.3, 6.4, probably aiming for 6.5 whenever it is available due to some known kernel bugs.


This should probably be using the modesetting driver.

sudo mhwd -i pci video-modesetting

This makes it appear like maybe the amd is taking precdence?

You have a dual-gpu setup. You may have options to disable the intel gpu in BIOS.
But we should look at the current situation:

glxinfo | grep 'renderer string'
DRI_PRIME=1 glxinfo | grep 'renderer string'

You probably want a swap of some sort - swapfiles are easy to add, for example:
I forgot to set up the swap encryption and I’m trying to set it up now - #2 by cscs