Blank screen with Radeon RX 5700

Few days ago my Radeon RX 5700 after 3 years of working absolutely fine, kind of stopped working.

The symptoms are:

  • At BIOS and GRUB there is video output.
  • If I run the system with “nomodeset” kernel option, then there is video output (obviously without acceleration and limited to low resolution).
  • It’s not a faulty cable, because I tested it with other cables. I usually use HDMI cable, but with DisplayPort it’s the same.
  • It’s not a faulty monitor, because I use it also with my laptop on a second input.
  • If I put my card into another computer with Windows, it works with acceleration, like there’s nothing wrong.
  • But if I start my Tumbleweed with amdgpu drivers, then as soon as kernel loads drm driver (so it’s even before Xorg starts), the screen goes blank (the monitor shows “no signal” and shuts off). It doesn’t matter if I boot my Tumbleweed with current or previous kernel. It doesn’t matter if it’s my Tumbleweed or a Leap 15.4 booted from usb stick.

dmesg: openSUSE Paste
It says:
amdgpu 0000:09:00.0: [drm] Cannot find any crtc or sizes

Xorg.0.log: openSUSE Paste
It says:
(WW) AMDGPU(0): Unable to find connected outputs

I also tried:

Anyone has any ideas what to do next?

Please post the output from

inxi -GSa

There will likely be further questions from others.

System:
  Host: etam-komp Kernel: 6.1.12-1-default arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.12-1-default root=/dev/mapper/system-root pci=nommconf
    splash=silent resume=/dev/system/swap mitigations=auto quiet
  Desktop: N/A dm: SDDM Distro: openSUSE Tumbleweed 20230216
Graphics:
  Device-1: AMD Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] vendor: Gigabyte
    driver: amdgpu v: kernel arch: RDNA-1 code: Navi process: TSMC n7 (7nm) built: 2019-20 pcie:
    gen: 4 speed: 16 GT/s lanes: 16 ports: active: none empty: DP-1, DP-2, DP-3, HDMI-A-1
    bus-ID: 09:00.0 chip-ID: 1002:731f class-ID: 0300
  Display: x11 server: X.Org v: 21.1.7 with: Xwayland v: 22.1.8 compositor: kwin_x11 driver: X:
    loaded: amdgpu unloaded: fbdev,modesetting,radeon,vesa dri: radeonsi gpu: amdgpu display-ID: :1
    screens: 1
  Screen-1: 0 s-res: 1024x768 s-dpi: 96 s-size: 271x203mm (10.67x7.99") s-diag: 339mm (13.33")
  API: OpenGL v: 4.6 Mesa 22.3.5 renderer: AMD Radeon RX 5700 (navi10 LLVM 15.0.7 DRM 3.49
    6.1.12-1-default) direct render: Yes

Try the opposite: amdgpu.dc=1. Try also booting without pci=nommconf. Try uninstalling xf86-video-amdgpu followed by restarting X or rebooting.

I guess that’s the default for my card. But it changed nothing.

Unfortunately, didn’t help.

As I wrote, this happens before Xorg starts. I can even add “3” to kernel commandline, which is equivalent of telling systemd to run multi-user.target, which does not start Xorg at all.

With removed “quiet splash=silent”, and added “plymouth.enable=0” I can see system booting for a second, then when usually the screen resolution of the text mode gets changed, it instead goes blank.

Anything interesting reported from dmesg?

sudo dmesg | egrep -i "amdgpu|error"

That means the amdgpu KMS kernel module is the issue. It goes black when it does because that’s when the module is engaged. You could try one of the iommu boot options and if none help, report a kernel bug.

Mine works, but it’s nowhere near as new as yours:

# dmesg | grep amdg
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=LABEL=zd8p07stw noresume ipv6.disable=1 net.ifnames=0 mitigations=auto consoleblank=0 radeon.cik_support=0 amdgpu.cik_support=1 video=1440x900@60 drm.debug=0x1e log_buf_len=1M 3
[    0.020220] Kernel command line: BOOT_IMAGE=/boot/vmlinuz root=LABEL=zd8p07stw noresume ipv6.disable=1 net.ifnames=0 mitigations=auto consoleblank=0 radeon.cik_support=0 amdgpu.cik_support=1 video=1440x900@60 drm.debug=0x1e log_buf_len=1M 3
[    8.778840] [drm] amdgpu kernel modesetting enabled.
[    8.788606] amdgpu: Topology: Add APU node [0x0:0x0]
[    8.831117] amdgpu 0000:00:01.0: vgaarb: deactivate vga console
[    8.848119] amdgpu 0000:00:01.0: amdgpu: Fetched VBIOS from ROM BAR
[    8.848123] amdgpu: ATOM BIOS: 113-SPEC-102
[    8.848146] amdgpu 0000:00:01.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[    8.848365] amdgpu 0000:00:01.0: amdgpu: VRAM: 1024M 0x000000F400000000 - 0x000000F43FFFFFFF (1024M used)
[    8.848367] amdgpu 0000:00:01.0: amdgpu: GART: 1024M 0x000000FF00000000 - 0x000000FF3FFFFFFF
[    8.848404] [drm] amdgpu: 1024M of VRAM memory ready
[    8.848407] [drm] amdgpu: 3435M of GTT memory ready.
[    8.974647] [drm] amdgpu: dpm initialized
[    9.258019] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[    9.258079] amdgpu: sdma_bitmap: f
[    9.258083] kfd kfd: amdgpu: error getting iommu info. is the iommu enabled?
[    9.258085] kfd kfd: amdgpu: Error initializing iommuv2
[    9.258640] kfd kfd: amdgpu: device 1002:130f NOT added due to errors
[    9.258654] amdgpu 0000:00:01.0: amdgpu: SE 1, SH per SE 1, CU per SH 8, active_cu_number 8
[    9.262217] [drm] Initialized amdgpu 3.49.0 20150101 for 0000:00:01.0 on minor 0
[    9.453626] fbcon: amdgpudrmfb (fb0) is primary device
[    9.871224] amdgpu 0000:00:01.0: [drm] fb0: amdgpudrmfb frame buffer device

I wrote in the first post:

Time to file a bug report.

Reported: Bug 1208460 – Blank screen with Radeon RX 5700

For the record: Disabling IOMMU in BIOS didn’t help.

adding amd_iommu=off also didn’t help.

I also reported the problem here: Blank screen with Radeon RX 5700 (#2423) · Issues · drm / amd · GitLab

I noticed something potentially interesting: my graphic card appears in /dev/dri and /sys/class/drm as card1, not card0. My computer has no other GPUs, not even an integrated one in CPU.

I got more info! It turns out that the problem is in combination of my graphic card with my monitor (because the graphic card works correctly with other monitors).

From my laptop I got this:

> sudo get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 2
No EDID on bus 4
Problem requesting slave address: Device or resource busy
2 potential busses found: 1 3
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
128-byte EDID successfully retrieved from i2c bus 1
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
        Identifier "D2242P"
        ModelName "D2242P"
        VendorName "GSM"
        # Monitor Manufactured week 12 of 2011
        # EDID version 1.3
        # Digital Display
        DisplaySize 480 270
        Gamma 2.20
        Option "DPMS" "true"
        Horizsync 30-83
        VertRefresh 56-75
        # Maximum pixel clock is 150MHz
        #Not giving standard mode: 1152x864, 75Hz
        #Not giving standard mode: 1280x1024, 60Hz
        #Not giving standard mode: 1280x960, 60Hz
        #Not giving standard mode: 1680x1050, 60Hz
        Modeline        "Mode 0" +hsync +vsync
EndSection

This doesn’t look right, I think.

Case closed: the HDMI port of my monitor is broken.

The same HDMI cable attached to DVI port on the monitor (with a HDMI-to-DVI adapter) works fine. The important part I missed before is to reboot the computer after changing ports.

Thanks for the update.