RandR 1.4 Brings Per-CRTC Pixmaps; NVIDIA Support?

Written by Michael Larabel in X.Org on 5 December 2010 at 08:20 AM EST. 7 Comments
X.ORG
While version 1.4 of the Resize and Rotate (RandR) extension was supposed to be introduced with X.Org Server 1.9 (to the point that it delayed closing their merge window), it never made it. RandR 1.4 and its per-CRTC pixmaps once again delayed closing the merge window, but this time it's for X.Org Server 1.10 and its promised to only be a few days. Fortunately, it looks like Keith Packard was right this time and RandR 1.4 is about to land.

Intel's Keith Packard wrote a few emails to the X.Org developers over the night commenting on his per-CRTC pixmap implementation for RandR 1.4 in xorg-server 1.10. For those unfamiliar, this support basically provides, "multiple scan-out buffers which applications can create and assign to arbitrary collections of CRTCs. These pixmaps can be associated with a window for use with OpenGL or drawn to directly." This feature really becomes useful when dealing with display setups where the screen layout exceeds the maximum size of the rendering/scan-out engines, provides the abilities for integrating compositing and project transformation into one step, and eliminating visual artifacts during screen rotation.

The technical details behind this xorg-server/RandR implementation can be found in this message. As part of this work, Keith also added support to RandR 1.4 for sprite transforms This will make per-CRTC pixmaps more useful to extended and/or rotated desktops. The technical side of this implementation is documented in this email.

As another change done by Keith last night, with RandR 1.4, NVIDIA may finally be more prone to supporting RandR 1.2+ in their proprietary Linux/Unix graphics driver. While NVIDIA promised proper RandR 1.2 support for their binary graphics driver two years ago, it has yet to come with any screen manipulation still really needing to be done through NVIDIA's extensions where implemented like with their NVIDIA Settings panel. However, last night Keith commented on a discussion (the message) he had with one of NVIDIA's Linux engineers some years ago.

NVIDIA's position was that they could not support the Resize and Rotate extension since their driver couldn't access the mode-setting instructions provided by RandR as a whole, but rather each mode-setting step is submitted to the driver individually. Keith has changed this in RandR 1.4 by adding a new RandR request (RRSetCrtcConfigs) that allows the sending of all instructions over to the X driver in one step. Hopefully now we will see RandR 1.2/1.3/1.4 support finally coming to NVIDIA's proprietary Linux driver in the near future.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week