[Spice-devel] [protocol RFC 0/2] RANDR support via QXLHead + SpiceHead
Alexander Larsson
alexl at redhat.com
Fri May 25 00:23:13 PDT 2012
On Mon, 2012-05-07 at 09:28 +0300, Alon Levy wrote:
> Hi,
>
> Currently we support multiple monitors by having:
> single pci = single display channel = single client window
>
> The RANDR architecture doesn't lend itself to this, but on the other hand it
> makes it very easy to have an alternative scheme:
> single pci = single display channel = multiple client windows
>
> RANDR introduces a concept of a CRTC and an OUTPUT. The CRTC scansout a
> portion of the framebuffer onto one or more OUTPUTs. I propose having a 1:1 CRTC:OUTPUT correspondence and introducing two new commands, one on PCI and one for the protocol:
> QXLHead = (id, x, y, width, height)
> SpiceHead = (id, x, y, width, height)
I'd like to point out that while this is the current way things work the
plan for the furture is to implement Per-CRTC pixmaps[1] which will
allow clients to map a separate pixmap to each crtc rather than have all
the crtcs scan out from a separate one (the framebuffer).
This is important, because the current situation with multiple monitors
means the framebuffer can easily become much wider than the hardware
limitation on texture widths of modern GPUs which means you can't run a
3D compositor in such multi-monitor setups. So, instead the plan is to
have a separate pixmap per monitor and have the compositor draw the
windows to the right pixmap(s).
[1] http://lists.x.org/archives/xorg-devel/2010-May/008141.html
More information about the Spice-devel
mailing list