Chapter 17. Support for the X Resize and Rotate Extension

Table of Contents

RandR Support
RandR 1.1 Rotation Behavior
Known Issues

This NVIDIA driver release contains support for the X Resize and Rotate (RandR) Extension versions 1.1, 1.2, and 1.3. The version of the RandR extension advertised to X clients is controlled by the X server: the RandR extension and protocol are provided by the X server, which routes protocol requests to the NVIDIA X driver. Run xrandr --version to check the version of RandR provided by the X server.

RandR Support

Specific supported features include:

  • Modes can be set per-screen, and the X screen can be resized through the RRSetScreenConfig request (e.g., with xrandr(1)'s '--size' and '--rate' command line options).

  • The X screen can be resized with the RandR 1.2 RRSetScreenSize request (e.g., with xrandr(1)'s '--fb' command line option).

  • The state of the display hardware can be queried with the RandR 1.2 and 1.3 RRGetScreenResources, RRGetScreenResourcesCurrent, RRGetOutputInfo, and RRGetCrtcInfo requests (e.g., with xrandr(1)'s '--query' command line option).

  • Modes can be set with RandR CRTC granularity with the RandR 1.2 RRSetCrtcConfig request. E.g., xrandr --output DVI-I-2 --mode 1920x1200.

  • Rotation can be set with RandR CRTC granularity with the RandR 1.2 RRSetCrtcConfig request. E.g., xrandr --output DVI-I-2 --mode 1920x1200 --rotation left.

  • Per-CRTC transformations can be manipulated with the RandR 1.3 RRSetCrtcTransform and RRGetCrtcTransform requests. E.g., xrandr --output DVI-I-3 --mode 1920x1200 --transform 43.864288330078125,21.333328247070312,-16384,0,43.864288330078125,0,0,0.0321197509765625,19.190628051757812.

The configurability exposed through RandR is also available through the MetaMode syntax, independent of X server version. See MetaModes for more details. As an example, these two commands are equivalent:

  xrandr --output DVI-I-2 --mode 1280x1024 --pos 0x0 --rotate left \
    --output DVI-I-3 --mode 1920x1200 --pos 0x0

  nvidia-settings --assign CurrentMetaMode="DVI-I-2: 1280x1024 +0+0 \
    { Rotation=left }, DVI-I-3: 1920x1200 +0+0"

RandR 1.1 Rotation Behavior

On X servers that support RandR 1.2 or later, when an RandR 1.1 rotation request is received (e.g., xrandr --orientation left), the X server translates the RandR 1.1 screen rotation request into an RandR 1.2 CRTC rotation request by picking one RandR CRTC to rotate, and turning all other RandR CRTCs off.

On X servers that do not support RandR 1.2 or later, the NVIDIA X driver does not advertise RandR rotation support. On such X servers, it is recommended to configure rotation through MetaModes, instead.

Known Issues

  • RandR per-CRTC gamma manipulation through the RandR 1.2 RRGetCrtcGammaSize, RRGetCrtcGamma, and RRSetCrtcGamma requests is not yet implemented.

  • RandR per-CRTC panning configuration through the RandR 1.3 RRGetPanning and RRSetPanning requests is not yet implemented.

  • RandR per-Output properties are not yet implemented.

  • Rotation and Transformations (configured either through RandR or MetaModes) are not yet supported with SLI, Workstation overlays, or stereo.

  • The RandR 1.2 X configuration options provided by the XFree86 DDX implementation and documented in xorg.conf(5) are not yet supported.

  • Transformations (configured either through RandR or MetaModes) are not yet correctly clipped.