Hello all, TL;DR: my questions concern the following two topics: - CRTCs and Intel integrated GPUs - intel-virtual-output utility
I have a laptop with both an Intel integrated GPU and an AMD discrete GPU. ``` ➜ ~ xrandr --listproviders Providers: number : 2 Provider 0: id: 0x70 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 8 associated providers: 1 name:Intel Provider 1: id: 0x44 cap: 0x6, Sink Output, Source Offload crtcs: 5 outputs: 0 associated providers: 1 name:AMD Radeon Pro WX3100 @ pci:0000:3b:00.0 ``` I am certain that both are configured correctly: ``` ➜ ~ DRI_PRIME=0 glxinfo | grep "OpenGL renderer" OpenGL renderer string: Mesa DRI Intel(R) UHD Graphics 620 (WHL GT2) ➜ ~ DRI_PRIME=1 glxinfo | grep "OpenGL renderer" OpenGL renderer string: AMD Radeon Pro WX3100 (POLARIS12, DRM 3.33.0, 5.3.0-53-generic, LLVM 9.0.1) ``` I had hoped to configure a four-way multihead configuration (3 monitors using the dGPU, and the built-in display driven by the iGPU). Alas, this seems to be impossible with my hardware; the AMD device lacks an output and merely serves as an offloading device. While investigating this, I came across something I didn't quite understand. Officially, the Intel UHD 620 supports three displays. However, `xrandr` shows that there are four CTRCs available on Provider 0 (Intel). ``` ➜ ~ xrandr --verbose | grep CRTC CRTC: 0 CRTCs: 1 0 2 CRTCs: 1 0 2 CRTC: 1 CRTCs: 1 0 2 CRTC: 2 CRTCs: 1 0 2 CRTCs: 1 0 2 CRTCs: 1 0 2 CRTCs: 1 0 2 CRTCs: 3 ``` It seems that the fourth CRTC ("third" when zero-indexed) is used by VIRTUAL1 output. ``` ➜ ~ xrandr --verbose | tail VIRTUAL1 disconnected (normal left inverted right x axis y axis) Identifier: 0x6f Timestamp: 22792 Subpixel: no subpixels Clones: CRTCs: 3 Transform: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filter: ``` Out of curiosity, I thought to move CRTC 3 to a connected but disabled monitor (DP2). However, this doesn't seem to work. ``` ➜ ~ xrandr --output DP2 --crtc 3 xrandr: output DP2 cannot use crtc 0x67 ``` After some Googling, I've come to believe that the VIRTUAL1 output has been created by the intel-virtual-output utility. To be honest, I find the man page for this package vague. "The tool connects local VirtualHeads to a remote output, allowing the primary display to extend onto the remote outputs." I'm admittedly (and probably quite clearly) a newbie when it comes to graphics, so this description tells me very little. Moreover, the help menu lists options for starting Bumblebee, something I believe is Nvidia-specific. Every forum thread I've read mentioning this utility involves an Nvidia card. My questions are: 1. Why or how can I have more CRTCs than officially supported outputs for the Intel UHD 620? 2. What does the intel-virtual-output utility do for me, a hybrid Intel/AMD user? 3. Why do I need VIRTUAL1? 4. What would happen if I removed the intel-virtual-output utility? Thank you in advance, Andrew Parsons
_______________________________________________ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: https://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s