"iGPU as default, main GPU. Nvidia by using prime" configuration on Graphics (wiki) breaks type-C DisplayPort
On the Graphics page of the Wiki, there are currently three approaches presented for how to configure graphics:
- Nvidia dGPU as default, main GPU
- iGPU as default, main GPU. Nvidia by using prime
- iGPU as default, main GPU. Offloading iGPU to dGPU for using the USB-C alternate DP output (aka reverse PRIME)
I'll ignore the third configuration approach, as it does not yet work.
When the first approach is selected ("Nvidia dGPU as default, main GPU"), Nvidia seems to handle the mode setting for both its own monitor connected over USB as well as the laptop's display which is routed through the iGPU. The xf86-video-amdgpu
package doesn't even need to be installed on the operating system for the first configuration to work. So, in this configuration, both the laptop screen and my external monitor (plugged in via USB) can be used. However, presumably since the amdgpu
xorg driver (i.e. /usr/lib/xorg/modules/drivers/amdgpu_drv.so
) isn't actually running, I can't actually use xrandr
to configure its scaling, panning, etc. This seems to indicate that xrandr
is not actually configuring the iGPU itself; it's must be merely configuring the Nvidia driver's connection to the iGPU.
That's it for the first approach. It mostly works, but you can't configure scaling on the laptop monitor. The second approach, iGPU as default, main GPU. Nvidia by using prime
adds a Screen
section that selects the iGPU
device:
Section "Screen"
Identifier "iGPU"
Device "iGPU"
EndSection
This causes Xorg to actually load its own amdgpu
driver (i.e. /usr/lib/xorg/modules/drivers/amdgpu_drv.so
), but only the iGPU can be configured with xrandr
. The external monitor is visible in xrandr
, but when I try to configure it, Xrandr prints an error message indicating it can't configure crt4 (or something to that effect). I can get this precise error message if it's helpful, but I need to reconfigure xorg to reproduce the error. I also have the drm.debug
logs from a failed attempt to enable the external monitor with xrandr
which I've attached.drm.debug_0xff.txt
At the moment, it seems that the Type-C port may only work properly when Nvidia is allowed to be Xorg's device for the screen. I'm a bit at a loss here (and am wondering if I'm missing something obvious that I should be seeing right in front of me).