modesetting/amdgpu: screen connected to discrete GPU updates very slowly (1fps) when no screen is connected to the integrated GPU
I have two GPUs: one is integrated into the Intel CPU (iGPU) and another is inserted into the mainboard (dGPU):
$ lspci |grep 'Display\|VGA'
00:02.0 Display controller: Intel Corporation IvyBridge GT2 [HD Graphics 4000] (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280]
I have one monitor with HDMI and DisplayPort inputs. The iGPU is connected to the monitor via HDMI and the dGPU is connected via DP.
When the iGPU is listed as the first in xorg.conf and no screen is connected to any of its outputs, I get the slow screen update issue on the dGPU screen:
Section "Device"
Identifier "Integrated Graphics"
Driver "modesetting"
Option "Monitor-HDMI-2" "Desktop 34in HDMI"
BusID "0:2:0:0"
EndSection
Section "Device"
Identifier "Discrete Graphics"
Driver "amdgpu"
Option "Monitor-DisplayPort-1-2" "Desktop 34in DP"
Option "TearFree" "on"
BusID "1:0:0:0"
EndSection
If I reverse the device order, then disconnecting the screen from iGPU has no ill effects, but I'm unable to use the iGPU for VA-API accelerated video playback:
DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [22]
The idea is to use the iGPU for video playback and general display and the dGPU only for demanding 3D applications because its fans are quite loud when they spin up. However, I want to use the dGPU to drive the display as it's capable of 100Hz refresh rate while the iGPU is pixclock-limited to 225MHz (3440x1440@43Hz) on the HDMI port and has no DP port.
Is there any chance to make this work the way I want?
This is probably the same issue as #1257 and #948, but on a desktop PC with only open-source drivers (modesetting/amdgpu).