Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
RandR 1.4 Brings Per-CRTC Pixmaps; NVIDIA Support?
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.