1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

NVIDIA's 302 Linux Driver Finally Has RandR 1.2/1.3

NVIDIA

Published on 02 May 2012 12:32 PM EDT
Written by Michael Larabel in NVIDIA
38 Comments

At long last, the NVIDIA binary Linux graphics driver properly implements support for versions 1.2 and 1.3 of RandR, the Resize and Rotate extension for the X.Org Server. This support comes with the newly-introduced 302.xx beta Linux graphics driver.

RandR 1.2 has been around for years -- about five years in a good state -- while RandR 1.3 has been around for about four years. The open-source X.Org drivers have largely all supported RandR 1.2/1.3 from the versions being merged into the X.Org Server and protocol headers while even the proprietary Catalyst driver has handled RandR 1.2+ support for quite a while. However, due to internal differences with the NVIDIA binary driver, its RandR 1.2+ support has been slow to come. RandR 1.4 was going to help NVIDIA, but that's been slow to come and it looks like with the 302.xx driver they've managed anyhow to support RandR 1.2/1.3.

The change-log for the NVIDIA 302.07 beta Linux graphics driver has a lot of changes relating to the driver's monitor support and RandR handling:
*Added X driver support for RandR 1.2 and RandR 1.3. See "Support for the X Resize and Rotate Extension" in the README for details.
*Extended the MetaMode X configuration option syntax with the following new attributes:
"Rotation" : specifies the display device's rotation
"Reflection" : specifies the display device's reflection
"Transform" : specifies a 3x3 transformation matrix to be applied to the display device
"ViewPortOut" : specifies the region of the mode in which to display pixels
"ViewPortIn" : specifies the size of the region in the X screen to display in the ViewPortOut

For example, "DFP-0: nvidia-auto-select { Rotation=left }".
See "Configuring Multiple Display Devices on One X Screen" in the
README for details.
*Removed the "TwinView" X configuration option; the functionality it provided is now enabled by default.

Previously, the NVIDIA X driver only enabled one display device for an X screen unless "TwinView" was enabled. Now, the NVIDIA X driver enables, by default, as many display devices as the GPU supports driving simultaneously. To limit how many display devices are driven by an X screen, use the "UseDisplayDevice" X configuration option.
*Added a "CurrentMetaMode" attribute to the nvidia-settings command line, to query and set the current MetaMode.

As an example, these two commands are equivalent:

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

nvidia-settings --assign CurrentMetaMode= "DVI-I-2: 1280x1024 +0+0, DVI-I-3: 1920x1200 +1280+0"
*Removed overscan compensation configurability from NV-CONTROL and nvidia-settings. This can be configured, with finer granularity, through the ViewPortIn and ViewPortOut MetaMode attributes. See "Configuring Multiple Display Devices on One X Screen" in the README for details.
*Altered mode validation such that for digital display devices the X driver only allows, by default, modes which are reported in the EDID. Previously, the NVIDIA X driver allowed other modes, but implicitly scaled those other modes to one of the EDID modes. Now, only the modes in the EDID are validated and the X driver does not do any implicit scaling. Any desired scaling can be configured explicitly through the new "ViewPortIn" and "ViewPortOut" MetaMode attributes. See "Configuring Multiple Display Devices on One X Screen" in the README for details.
*Removed Flat Panel Scaling configurability in nvidia-settings. Any desired scaling can be configured through the new "ViewPortIn" and "ViewPortOut" MetaMode attributes.
*Hotplug events (specifically, the RRNotify_OutputChange RandR event) are now generated when display devices are connected and disconnected from the GPU. Many desktop environments automatically resize the X desktop in response to these events.
*Added display device name aliases, such that X configuration options that use display device names can refer to a display device by one of several names, including the RandR Output name for the display device. The X log reports the list of aliases for each display device.
*Updated EDID parsing to include more complete support for EDID 1.4 and more recent versions of CEA-861.
*Removed the "Rotate" X configuration option. This was used to statically rotate the X screen. Its functionality is replaced by the "Rotation" MetaMode attribute and RandR 1.2 rotation support. See the README for details.
*Removed the "RandRRotation" X configuration option. This enabled configurability of X screen rotation via RandR 1.1. Its functionality is replaced by the "Rotation" MetaMode attribute and RandR 1.2 rotation support. See the README for details.
*Removed support for the following NV-CONTROL attributes:
NV_CTRL_GPU_SCALING
NV_CTRL_GPU_SCALING_DEFAULT_TARGET
NV_CTRL_GPU_SCALING_DEFAULT_METHOD
NV_CTRL_DFP_SCALING_ACTIVE
NV_CTRL_GPU_SCALING_ACTIVE
NV_CTRL_FRONTEND_RESOLUTION
NV_CTRL_BACKEND_RESOLUTION
NV_CTRL_OVERSCAN_COMPENSATION
NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION
If you're into using multiple display heads on your NVIDIA Linux system, or just prefer managing your display settings from the tools within your desktop environment rather than the nvidia-settings utility, this is some of the good news from the NVIDIA 302.xx Linux driver series.

Aside from the RandR 1.2/1.3 support, the NVIDIA 302.07 beta Linux driver also has various bug-fixes, support for conformant texture clamping by default with OpenGL, Sync-to-vBlank by default, improved rendering performance for RENDER bitmap text, a new --restore-original-backup argument for the nvidia-settings utility, exposing new FSAA anti-aliasing modes via the NV_CONTROL extension, improved X configuration option handling, and other changes.

The official change-log and the x86/x86_64 Linux download links for the NVIDIA 302.07 beta can be found in this forum thread. It doesn't look like they have any Kepler-targeted performance improvements or anything else specific to this GeForce 600 series hardware with this driver update, like still no Fermi/Kepler overclocking support under Linux.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Even With Re-Clocking, Nouveau Remains Behind NVIDIA's Proprietary Linux Driver
  2. The Power Consumption & Efficiency Of Open-Source GPU Drivers
  3. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  4. Intel Pentium G3258 On Linux
Latest Linux Articles
  1. Updated Source Engine Benchmarks On The Latest AMD/NVIDIA Linux Drivers
  2. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  3. KVM Benchmarks On Ubuntu 14.10
  4. X.Org Server 1.16 Officially Released With Terrific Features
Latest Linux News
  1. Qt 5.4 Going Into Feature Freeze Next Week With Exciting Changes
  2. OpenSUSE Factory Turns Into Rolling Release Distribution
  3. "The World's Most Highly-Assured OS" Kernel Open-Sourced
  4. NVIDIA Is Working Towards VDPAU H.265/HEVC Support
  5. Hawaii Bug-Fixes Start Hitting Mainline RadeonSI Gallium3D
  6. The FFmpeg vs. Libav War Continues In Debian Land
  7. Grand Theft Auto Running On Direct3D Natively On Linux Shows Gallium3D Potential
  8. GCC As A Just-In Time Compiler Is An Interesting Project
  9. Age Of Wonders III Is Still Being Ported To Linux
  10. Git 2.1 To Further Mainline Windows Support Patches
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. Debian + radeonsi
  3. Open-source drivers on ATI R7 260X
  4. List of Linux friendly Kickstarter projects
  5. Linus Torvalds On GCC 4.9: Pure & Utter Crap
  6. Porting Mesa to the Playstation 2
  7. ASRock AM1H-ITX: One Of The Best AM1 Mini-ITX Motherboards
  8. Table test