[Question] More CRTCs than supported displays; questions about intel-virtual-output and VIRTUAL1

Adam Nielsen a.nielsen at shikadi.net
Sat Jul 25 00:38:28 UTC 2020


> 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).

You'll probably have to avoid using grep and check the full output.  I
suspect CRTCs 0, 1 and 2 are for the physical outputs on your video
card, and CRTC 3 is attached to the virtual interface, and is not
actually present on your video card.

As far as I am aware most onboard Intel cards are limited to only three
active outputs at a time, which is a pain for those of us who wish to
use four or more monitors.  I have connected more than three to Intel
boards before via a DisplayPort hub and it can drive any of them, but
you can only pick three at a time and the others are blank.

> It seems that the fourth CRTC ("third" when zero-indexed) is used by
> VIRTUAL1 output.

This would make sense - it's a virtual CRTC for a virtual display.

> Out of curiosity, I thought to move CRTC 3 to a connected but disabled
> monitor (DP2). However, this doesn't seem to work.

If CRTC #3 doesn't actually exist on your card then this makes sense.

> 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."

Having never seen this before myself, I also did some Googling and came
up with this:

https://unix.stackexchange.com/questions/209947/xrandr-where-does-virtual1-output-come-from

https://bbs.archlinux.org/viewtopic.php?id=180904

> My questions are:
> 1. Why or how can I have more CRTCs than officially supported outputs for
> the Intel UHD 620?

It seems that when you add a VIRTUALn output, a virtual CRTC is also
created but this doesn't physically exist on your card.  It's a
software CRTC for a monitor that also only exists in software.

> 2. What does the intel-virtual-output utility do for me, a hybrid Intel/AMD
> user?

Can't answer this as I am not sure about the utility.  The links above
say the VIRTUALn outputs are a feature of Xorg and not specific to any
driver (although it does require driver support to actually work).

> 3. Why do I need VIRTUAL1?

The links above say that if a monitor is disconnected while in use,
Xorg replaces it with a VIRTUALn device as a placeholder.  If you
disable the monitors with xrandr before disconnecting them, then I
imagine you won't get a VIRTUALn device.

Another use appears to be for remote access.  You can set up a virtual
display and then use remote-desktop software to make that virtual
monitor viewable on a different computer.  This could be another a way
of having more than four monitors on a machine with Intel graphics,
except that you need another machine to display the fourth and
subsequent monitors, and it's over the network so will be slow.

> 4. What would happen if I removed the intel-virtual-output utility?

I suspect nothing, if this is all part of Xorg.  It looks like you can
just disable the VIRTUAL1 output with xrandr though if you don't need
it.

Cheers,
Adam.


More information about the xorg mailing list