Flickering is back with multiple monitors (WITHOUT ppfeaturemask enabled).
Brief summary of the problem:
Previously, there was an issue where having more than one monitor plugged in while OD was enabled would cause horrible flickering, until you either set "high" or "low" for the dpm setting. The patch was eventually upstreamed. However, on 5.8, the issue has returned, only this time it is present WITHOUT ppfeaturemask OD enabled, with no amdgpu kernel command line options, just having multiple monitors. On the current 5.7, the issue IS not present, and none of the dmesg error messages I'm going to paste below show up either. It works perfectly fine on 5.7, it's a flickering disaster on 5.8.
dmesg | grep amdgpu
:
[ 4.314329] [drm] amdgpu kernel modesetting enabled.
[ 4.314404] amdgpu: Ignoring ACPI CRAT on non-APU system
[ 4.314415] amdgpu: Topology: Add CPU node
[ 4.314531] fb0: switching to amdgpudrmfb from EFI VGA
[ 4.314617] amdgpu 0000:11:00.0: vgaarb: deactivate vga console
[ 4.314723] amdgpu 0000:11:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[ 4.335484] amdgpu 0000:11:00.0: No more image in the PCI ROM
[ 4.335500] amdgpu: ATOM BIOS: xxx-xxx-xxx
[ 4.335531] amdgpu 0000:11:00.0: amdgpu: VRAM: 8176M 0x0000008000000000 - 0x00000081FEFFFFFF (8176M used)
[ 4.335532] amdgpu 0000:11:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[ 4.335607] [drm] amdgpu: 8176M of VRAM memory ready
[ 4.335608] [drm] amdgpu: 8176M of GTT memory ready.
[ 5.110014] amdgpu 0000:11:00.0: amdgpu: RAS: optional ras ta ucode is not available
[ 5.122042] amdgpu: use vbios provided pptable
[ 5.122091] amdgpu: smc_dpm_info table revision(format.content): 4.5
[ 5.166575] amdgpu: SMU is initialized successfully!
[ 5.187376] snd_hda_intel 0000:11:00.1: bound 0000:11:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 5.454790] amdgpu: Topology: Add dGPU node [0x731f:0x1002]
[ 5.454793] amdgpu 0000:11:00.0: amdgpu: SE 2, SH per SE 2, CU per SH 10, active_cu_number 40
[ 5.456430] fbcon: amdgpudrmfb (fb0) is primary device
[ 5.576483] amdgpu 0000:11:00.0: fb0: amdgpudrmfb frame buffer device
[ 5.586119] amdgpu 0000:11:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[ 5.586122] amdgpu 0000:11:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[ 5.586123] amdgpu 0000:11:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[ 5.586124] amdgpu 0000:11:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[ 5.586125] amdgpu 0000:11:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[ 5.586126] amdgpu 0000:11:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[ 5.586127] amdgpu 0000:11:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[ 5.586128] amdgpu 0000:11:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[ 5.586129] amdgpu 0000:11:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[ 5.586130] amdgpu 0000:11:00.0: amdgpu: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
[ 5.586131] amdgpu 0000:11:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[ 5.586133] amdgpu 0000:11:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
[ 5.586134] amdgpu 0000:11:00.0: amdgpu: ring vcn_dec uses VM inv eng 0 on hub 1
[ 5.586135] amdgpu 0000:11:00.0: amdgpu: ring vcn_enc0 uses VM inv eng 1 on hub 1
[ 5.586136] amdgpu 0000:11:00.0: amdgpu: ring vcn_enc1 uses VM inv eng 4 on hub 1
[ 5.586137] amdgpu 0000:11:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 1
[ 5.586516] [drm] Initialized amdgpu 3.38.0 20150101 for 0000:11:00.0 on minor 0
[ 7.778070] amdgpu 0000:11:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on vcn_enc0 (-110).
[ 8.691704] amdgpu: failed send message: PowerDownJpeg (46) param: 0x00000000 response 0xffffffc2
[ 8.691753] [drm:jpeg_v2_0_set_powergating_state [amdgpu]] *ERROR* Dpm disable jpeg failed, ret = -62.
[ 8.786056] amdgpu 0000:11:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on vcn_enc1 (-110).
[ 11.004200] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 11.004241] [drm:jpeg_v2_0_set_powergating_state [amdgpu]] *ERROR* Dpm enable jpeg failed, ret = -62.
[ 13.226141] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 15.445249] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 15.445297] [drm:jpeg_v2_0_set_powergating_state [amdgpu]] *ERROR* Dpm disable jpeg failed, ret = -62.
[ 17.666768] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 19.921201] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 22.142684] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 24.385257] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 26.606198] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 28.919710] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 31.140468] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 33.381004] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 35.604422] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 37.836492] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 40.062978] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 42.314998] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
[ 44.528367] amdgpu: Msg issuing pre-check failed and SMU may be not in the right state!
Starting here:
[ 7.778070] amdgpu 0000:11:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on vcn_enc0 (-110).
None of that (from that line on) occurs on 5.7 whatsoever.
There was also this issue https://bugzilla.kernel.org/show_bug.cgi?id=204957 which had a patch that was also upstreamed, this seems very similar.
I would like to note that this was NOT present on any of the 5.8.0-rc release candidates, up until around 5.8.0-rc7. I tested every single one prior to that, and the issue was not there.
Hardware description:
- CPU: Ryzen 7 3800X
- GPU: Gigabyte Gaming OC RX 5700 XT
- System Memory: 32GB DDR4-3600 G.Skill Trident Z RGB
- Display(s): Gigabyte G32QC 2560x1440 165Hz 32" + ASUS VG27WQ 2560x1440 165Hz 27"
- Type of Diplay Connection: DisplayPort (both)
System infomration:
- Distro name and Version: Arch Linux
- Kernel version: 5.8.1
- Custom kernel: Just regular kernel with some TK-Glitch patches added (present on vanilla kernel as well)
- AMD package version: No PRO package
How to reproduce the issue:
Have two monitors connected by DisplayPort
Be running kernel 5.8.1+
Probably have a Navi GPU (not sure if it's present on Vega or Polaris)
Don't use any kernel commandline amdgpu options
Upon boot, you'll see horrible flickering, with power_dpm_force_performance_level
set to auto, which is the default. Set it to "low" or "high," and the issue will disappear immediately. We've seen this issue numerous times before, just with slightly different circumstances. I'm sure you know what I'm talking about.
Attached files:
- Dmesg log: dmesg.txt