<div dir="ltr">Hello all,<div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><br></div><div>TL;DR: my questions concern the following two topics:<br></div><div>- CRTCs and Intel integrated GPUs</div><div>- intel-virtual-output utility<br></div><div><br></div><div>I have a laptop with both an Intel integrated GPU and an AMD discrete GPU.</div><div><br></div><div>```</div><div>➜  ~ xrandr --listproviders<br>Providers: number : 2<br>Provider 0: id: 0x70 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 8 associated providers: 1 name:Intel<br>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<br></div><div>```</div><div><br></div><div>I am certain that both are configured correctly:</div><div><br></div><div>```</div><div>➜  ~ DRI_PRIME=0 glxinfo | grep "OpenGL renderer"<br>OpenGL renderer string: Mesa DRI Intel(R) UHD Graphics 620 (WHL GT2)<br>➜  ~ DRI_PRIME=1 glxinfo | grep "OpenGL renderer"<br>OpenGL renderer string: AMD Radeon Pro WX3100 (POLARIS12, DRM 3.33.0, 5.3.0-53-generic, LLVM 9.0.1)</div><div>```<br></div><div><br></div><div>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.</div><div>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). </div><div><br></div><div>```</div><div>➜  ~ xrandr --verbose | grep CRTC                <br>      CRTC:       0<br>      CRTCs:      1 0 2<br>  CRTCs:      1 0 2<br>  CRTC:       1<br>      CRTCs:      1 0 2<br>  CRTC:       2<br>      CRTCs:      1 0 2<br>  CRTCs:      1 0 2<br>  CRTCs:      1 0 2<br>  CRTCs:      1 0 2<br>  CRTCs:      3<br></div><div>```</div><div><br></div><div>It seems that the fourth CRTC ("third" when zero-indexed) is used by VIRTUAL1 output.</div><div><br></div><div>```</div>➜  ~ xrandr --verbose | tail<br>VIRTUAL1 disconnected (normal left inverted right x axis y axis)<br>   Identifier: 0x6f<br>      Timestamp:  22792<br>    Subpixel:   no subpixels<br>     Clones:    <br> CRTCs:      3<br>      Transform:  1.000000 0.000000 0.000000<br>                   0.000000 1.000000 0.000000<br>              0.000000 0.000000 1.000000<br>             filter: <br><div>```<br></div><div><br></div><div>Out of curiosity, I thought to move CRTC 3 to a connected but disabled monitor (DP2). However, this doesn't seem to work.</div><div><br></div><div>```</div><div>➜  ~ xrandr --output DP2 --crtc 3            <br>xrandr: output DP2 cannot use crtc 0x67</div><div>```</div><div><br></div><div>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."</div><div>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.<br></div><div><br></div><div>My questions are:</div><div>1. Why or how can I have more CRTCs than officially supported outputs for the Intel UHD 620?</div><div>2. What does the intel-virtual-output utility do for me, a hybrid Intel/AMD user?</div><div>3. Why do I need VIRTUAL1?<br></div><div>4. What would happen if I removed the intel-virtual-output utility?<br></div><div><br></div><div>Thank you in advance,<br></div><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div>Andrew Parsons</div></div></div></div></div></div></div></div></div></div></div></div>