RandR 1.5 "Monitors" and splitting a single physical display

Aaron Plattner aplattner at nvidia.com
Wed Mar 15 21:18:50 UTC 2017

On 03/13/2017 11:32 AM, Nathan Schulte wrote:
> On 03/07/2017 05:56 PM, Jack Coulter wrote:
>> Is it possible for there to be multiple monitors for a single output, at
>> least as far as the RandR protocol is concerned, and is support simply
>> needed in xrandr, or is what I'm trying to do simply not possible?
> I wonder the same; I'm looking to split an Output as two Monitors, and
> then rotate one of the Monitors.  I am using an active splitter, like
> Jack is w/ the Matrox Dual Head 2 Go devices (I'm using a Sunix DPD2001,
> with DisplayPort Multi-Stream Transport disabled).

You're not going to be able to rotate one monitor with the existing protocol. Rotation happens at the crtc, not the output or monitor.

> I ran into issues trying to do setup multiple Monitors for an Output,
> and sent a mail to the list in September 2016; Aaron Plattner from
> NVIDIA responded, noting about the "ConnectionNumber" property from the
> xrandr --prop command.  The Intel hardware I'm using (Intel Skylake;
> Iris Pro Graphics P580 [8086:193d] (rev 09).
> The thread can be viewed here:
> https://lists.x.org/archives/xorg/2016-September/058245.html
> I had to give up at the time and still haven't had a chance to poke this
> again.  I have a feeling this isn't supported, but I couldn't find
> anything in the protocol/extension specifications stating so.  In fact,
> the specs imply that it _is_ indeed possible.  Perhaps only certain
> drivers provide this level of support?
> Jack, let me know if you figure this out, please and thank you!

>From the protocol, it sounds like it makes a distinction between monitors with outputs in them and monitors without.

Output-ful monitors have their geometry set automatically:

	If 'info.outputs' is non-empty, and if x, y, width, height are all
	zero, then the Monitor geometry will be dynamically defined to
	be the bounding box of the geometry of the active CRTCs
	associated with them.

But you can create a monitor with zero outputs and set its geometry manually.

The auto-delete behavior sounds carefully worded to only apply when removing an output from a output-ful monitor, and leaves monitors that never had outputs alone:

	For each output in 'info.outputs, each one is removed from all
	pre-existing Monitors. If removing the output causes the list of
	outputs for that Monitor to become empty, then that Monitor will
	be deleted as if RRDeleteMonitor were called.

So for this, I would imagine that you would want to create two monitors, both with no outputs, that just happen to overlap the output you want to split.

-- Aaron

More information about the xorg mailing list