Enabling or disabling amdgpu.dc causes a displaying and non-displaying monitor to swap

I currently have a dual-monitor HDMI + DVI setup in which the DVI monitor immediately sleeps when Manjaro is booted. This seems to be because of an adapter issue due to the monitor being VGA routed into a VGA-DVI adapter (discussed here). However, adding “amdgpu.dc=0” into my grub causes the VGA monitor to work, which in turn then causes my HDMI monitor to be the one having a blank screen.

Why would enabling the amdgpu dc cause one monitor to work, but disabling causes the other monitor to then not work? Is there a workaround to the amdgpu setting in which I can have it work for both monitors?

xinxi:

System:
  Kernel: 5.9.1-1-MANJARO x86_64 bits: 64 compiler: N/A 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.9-x86_64 
  root=UUID=9f3b4142-4868-426f-b0bf-483cdf720a67 rw quiet apparmor=1 
  security=apparmor resume=UUID=63140814-0368-43af-bcf7-3f6f7d24d6a9 
  udev.log_priority=3 amdgpu.dc=1 
  Desktop: Xfce 4.14.2 tk: Gtk 3.24.20 info: xfce4-panel wm: bspwm 0.9.10 
  dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:
  Type: Desktop Mobo: ASRock model: H97 Pro4 serial: <filter> 
  UEFI: American Megatrends v: P1.90 date: 07/27/2015 
CPU:
  Topology: Quad Core model: Intel Core i7-4790K bits: 64 type: MT MCP 
  arch: Haswell family: 6 model-id: 3C (60) stepping: 3 microcode: 28 
  L2 cache: 8192 KiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 63887 
  Speed: 1147 MHz min/max: 800/4400 MHz Core speeds (MHz): 1: 976 2: 973 
  3: 926 4: 897 5: 838 6: 898 7: 813 8: 898 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds mitigation: Microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: AMD Tonga PRO [Radeon R9 285/380] vendor: XFX Pine driver: amdgpu 
  v: kernel bus ID: 01:00.0 chip ID: 1002:6939 
  Display: x11 server: X.Org 1.20.9 compositor: compton driver: amdgpu,ati 
  unloaded: modesetting alternate: fbdev,vesa display ID: :0.0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x286mm (20.0x11.3") 
  s-diag: 583mm (23") 
  Monitor-1: HDMI-A-0 res: 1920x1080 hz: 60 dpi: 55 
  size: 880x490mm (34.6x19.3") diag: 1007mm (39.7") 
  Monitor-2: DVI-D-1 res: 1920x1080 hz: 60 dpi: 112 
  size: 435x239mm (17.1x9.4") diag: 496mm (19.5") 
  OpenGL: renderer: AMD Radeon R9 380 Series (TONGA DRM 3.39.0 5.9.1-1-MANJARO 
  LLVM 10.0.1) 
  v: 4.6 Mesa 20.1.8 direct render: Yes 
Audio:
  Device-1: Intel 9 Series Family HD Audio vendor: ASRock 
  driver: snd_hda_intel v: kernel bus ID: 00:1b.0 chip ID: 8086:8ca0 
  Device-2: AMD Tonga HDMI Audio [Radeon R9 285/380] vendor: XFX Pine 
  driver: snd_hda_intel v: kernel bus ID: 01:00.1 chip ID: 1002:aad8 
  Device-3: Samson C01U condenser microphone type: USB driver: snd-usb-audio 
  bus ID: 2-4:4 chip ID: 17a0:0001 
  Sound Server: ALSA v: k5.9.1-1-MANJARO 
Network:
  Device-1: Intel Ethernet I218-V vendor: ASRock driver: e1000e v: kernel 
  port: f040 bus ID: 00:19.0 chip ID: 8086:15a1 
  IF: enp0s25 state: down mac: <filter> 
  Device-2: Intel Wireless 8260 driver: iwlwifi v: kernel port: e000 
  bus ID: 03:00.0 chip ID: 8086:24f3 
  IF: wlp3s0 state: up mac: <filter> 
Drives:
  Local Storage: total: 1.02 TiB used: 14.47 GiB (1.4%) 
  SMART Message: Required tool smartctl not installed. Check --recommends 
  ID-1: /dev/sda vendor: Western Digital model: WD10EZEX-00BN5A0 
  size: 931.51 GiB block size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s 
  rotation: 7200 rpm serial: <filter> rev: 1A01 scheme: GPT 
  ID-2: /dev/sdb vendor: Crucial model: CT120BX100SSD1 size: 111.79 GiB 
  block size: physical: 512 B logical: 512 B speed: 6.0 Gb/s serial: <filter> 
  rev: MU02 scheme: GPT 
Partition:
  ID-1: / raw size: 94.36 GiB size: 92.38 GiB (97.90%) used: 14.47 GiB (15.7%) 
  fs: ext4 dev: /dev/sdb2 
Swap:
  Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
  ID-1: swap-1 type: partition size: 17.13 GiB used: 0 KiB (0.0%) priority: -2 
  dev: /dev/sdb3 
Sensors:
  System Temperatures: cpu: 41.0 C mobo: N/A gpu: amdgpu temp: 50 C 
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 1774 
Info:
  Processes: 238 Uptime: 6m Memory: 15.57 GiB used: 1.55 GiB (10.0%) 
  Init: systemd v: 246 Compilers: gcc: 10.2.0 Packages: pacman: 1092 lib: 315 
  flatpak: 0 Shell: Bash v: 5.0.18 running in: xfce4-terminal inxi: 3.1.05 

Does this also happen in 5.8 or 5.4 kernel ?

@bogdancovaciu

I’ve tried it with the 5.8.16-2 and 5.4.72-1 kernels and it seems to have the same issues.

I’ve also noticed that when using “amdgpu.dc=0”, the HDMI monitor occasionally starts displaying, but is very distorted. This has only happened specifically on the 5.9.1-1 kernel, I haven’t seen it reproduce the same effect on the others yet (though I have only booted the others for limited time periods).