New in version 346.35

January 18th, 2015
  • Added support for the following GPUs:
  • GeForce 800A
  • GeForce 800M
  • GeForce GTX 970M
  • GeForce GTX 980M
  • Added support for X.Org xserver ABI 19 (xorg-server 1.17).
  • Improved compatibility with recent Linux kernels.
  • Fixed a bug that prevented internal 4K panels on some laptops from being driven at a sufficient bandwidth to support their native resolutions.
  • Fixed a regression that prevented the NVIDIA kernel module from loading in some virtualized environments such as Amazon Web Services.
  • Fixed a regression that caused displays to be detected incorrectly on some notebook systems.
  • Fixed a bug that could cause X to freeze when using Base Mosaic.
  • Fixed a regression that prevented the NVIDIA X driver from recognizing Base Mosaic layouts generated by the nvidia-settings control panel.
  • Updated the NVIDIA X driver to reject frame packed interlaced HDMI 3D modes during mode validation. These modes were being validated by the driver, despite never having been supported.
  • Fixed a bug that prevented the console from being restored after forcefully terminating X, on some GPUs with multiple DisplayPort monitors attached. This bug also subsequently prevented X from being started following the failed console restoration.
  • Updated the version of libvdpau shipped with the driver to 0.9. This version honors the VDPAU_DRIVER_PATH environment variable and fixes a race condition if multiple threads call VdpDeviceCreateX11 simultaneously. See http://lists.freedesktop.org/archives/vdpau/2014-December/000274.html for more information.
  • Please note that users are encouraged to use their distribution's libvdpau packages rather than relying on the one shipped with the NVIDIA graphics driver.
  • Fixed a bug that caused the ACPI hotkey mask to be set incorrectly on some laptops even when the EnableACPIHotkeys option is disabled.
  • Disabled the EnableACPIHotkeys option by default. This option is now considered deprecated and will be removed in a future driver release. On modern Linux systems, display change hotkey events are delivered to the desktop environment as key press events, and the desktop environment handles the display change by issuing requests through the X Resize and Rotate extension (RandR).
  • Fixed a bug that caused the screen image to be shifted when screen transformations (such as rotations or reflections) were enabled on a G-SYNC display attached to a Kepler-based GPU.
  • Fixed a bug that caused a blank screen when setting a mode requiring YUV 4:2:0 compression. These modes are not currently supported.
  • Fixed a bug that caused an incorrect DisplayPort link configuration to be displayed after a hotplug or unplug.
  • Added support for decoding VP8 video streams using the NVCUVID API on GPUs with VP8 hardware decode support.
  • Added support for the following EGL extensions:
  • EGL_EXT_device_base
  • EGL_EXT_platform_device
  • EGL_EXT_output_base
  • Added the ability to increase the operating voltage on certain GeForce GPUs in the GeForce GTX 400 series and later. Voltage adjustments are done at the user's own risk. See the documentation on the "CoolBits" X configuration option in the README for details.
  • Added support for NVENC on GeForce GPUs. For more details on the NVENC SDK, see: https://developer.nvidia.com/nvidia-video-codec-sdk.
  • Removed a sanity check in nvidia-installer that tested the availability of POSIX shared memory. The NVIDIA GPU driver has not required POSIX shared memory since release 270.xx.
  • Removed the NVIDIA Unified Memory kernel module, nvidia-uvm.ko, from the driver package on 32-bit architectures.
  • Added accelerated support for r8g8b8a8, r8g8b8x8, b8g8r8a8 and b8g8r8x8 RENDER formats.
  • Updated nvidia-settings to take advantage of GTK+ 3, when available. This is implemented by building the nvidia-settings user interface into separate shared libraries (libnvidia-gtk2.so, libnvidia-gtk3.so), and loading the correct one at run-time.
  • Added the nvidia-settings option --gtk-library to allow specifying the path of the directory containing the user interface library or the path and filename of the specific library to use.
  • Added support in nvidia-settings for a GTK+ 3 user interface on x86 and x86_64.
  • Added the nvidia-settings option --use-gtk2 to force the use of the GTK+ 2 UI library.
  • Updated nvidia-installer to install a file in the system's xorg.conf.d directory, when a sufficiently new X server is detected, to cause the X server to load the "nvidia" X driver automatically if it is started after the NVIDIA kernel module is loaded.
  • This feature is supported in X.Org xserver 1.16 and higher when running on Linux 3.9 or higher with CONFIG_DRM enabled.
  • Improved the performance of nvidia-installer by enabling the use of parallel make when building the NVIDIA kernel modules. The concurrency level can be set with the --concurrency-level option, and defaults to the number of detected CPUs.
  • Updated nvidia-installer to determine default installation locations for libraries based on the presence of known paths in the ldconfig(8) cache and the filesystem, rather than hardcoded distro-specific paths.
  • Fixed a GLSL compiler bug that would produce corruption when running games such as Far Cry 3 in Wine.
  • Fixed the EGL_KHR_stream_cross_process_fd extension.
  • Fixed rendering corruption that sometimes happened when calling DrawElementsInstancedBaseVertexBaseInstance(), DrawElementsInstancedBaseInstance(), or DrawArraysInstancedBaseInstance().
  • Dramatically improved OpenGL Framebuffer Object creation performance.
  • Removed the limit on the maximum number of OpenGL Framebuffer Objects.
  • Updated the NVIDIA OpenGL driver to prefer $XDG_CACHE_HOME over $HOME as the default location for storing the GL shader disk cache.

New in version 340.65 (December 10th, 2014)

  • Added support for X.Org xserver ABI 19 (xorg-server 1.17).
  • Improved compatibility with recent Linux kernels.
  • Fixed a bug that prevented internal 4K panels on some laptops from being driven at a sufficient bandwidth to support their native resolutions.
  • Fixed a regression that prevented the NVIDIA kernel module from loading in some virtualized environments such as Amazon Web Services.
  • Fixed a regression that caused displays to be detected incorrectly on some notebook systems.
  • Fixed a bug that could cause X to freeze when using Base Mosaic.
  • Fixed a regression that prevented the NVIDIA X driver from recognizing Base Mosaic layouts generated by the nvidia-settings control panel.

New in version 343.36 (December 5th, 2014)

  • Added support for X.Org xserver ABI 19 (xorg-server 1.17).
  • Improved compatibility with recent Linux kernels.
  • Fixed a bug that rendered very bright garbage data onto some textures in UnrealEngine 4 applications. This issue is known as the "disco bug" by the UnrealEngine 4 Linux community.
  • Added option UseSysmemPixmapAccel to control the use of GPU acceleration for X drawing operations on pixmaps allocated in system memory.
  • Fixed a regression that prevented the NVIDIA X driver from recognizing Base Mosaic layouts generated by the nvidia-settings control panel.
  • Fixed a bug that could cause VT-switching to fail following a suspend, resume, and driver reload sequence.
  • Fixed a bug that caused incorrect colors to be displayed on X screens running at depth 8 on some GPUs.
  • Fixed a bug that prevented GPUs from being correctly recognized in MetaMode strings when identified by UUID.
  • Implemented support for disabling indirect GLX context creation using the -iglx option available on X.Org server release 1.16 and newer. Note that future X.Org server releases may make the -iglx option the default. To re-enable support for indirect GLX on such servers, use the +iglx option.
  • Added the "AllowIndirectGLXProtocol" X config option. This option can be used to disallow use of GLX protocol. See "Appendix B. X Config Options" in the README for more details.
  • Fixed a crash with UnrealEngine 4 when the application was started with the -opengl4 commandline switch.
  • Fixed an OpenGL issue that could cause glReadPixels() operations to be improperly clipped when resizing composited application windows, potentially leading to momentary X freezes.
  • Fixed a bug that could prevent the GLSL compiler from correctly evaluating some expressions when compiling shaders.
  • Fixed a bug that could cause nvidia-installer to crash while attempting to run nvidia-xconfig on systems where that utility is missing.
  • Fixed a bug that could prevent 32-bit GPU-based applications from running correctly on 64-bit systems when using GPUs with very large memory-mapped I/O regions.
  • Fixed a bug that could cause the CUDA debugger to fail after exiting X on systems with persistence mode enabled.
  • Fixed a bug that could cause silent and intermittent failures when a CUDA application writes to a peer device's memory with GPUDirect.
  • Updated nvidia-installer to avoid writing to non-zero offsets of sysctl files in /proc/sys/kernel.

New in version 340.46 (October 2nd, 2014)

  • Fixed an OpenGL issue that could cause glReadPixels() operations to be improperly clipped when resizing composited application windows, potentially leading to momentary X freezes.
  • Fixed a bug that could prevent the GLSL compiler from correctly evaluating some expressions when compiling shaders.
  • Fixed a bug that could cause nvidia-installer to crash while attempting to run nvidia-xconfig on systems where that utility is missing.
  • Added option UseSysmemPixmapAccel to control the use of GPU acceleration for X drawing operations on pixmaps allocated in system memory.

New in version 343.22 (September 19th, 2014)

  • Added support for the following GPUs:
  • GeForce GTX 970
  • GeForce GTX 980
  • Fixed a bug that prevented the "sync to vblank" setting from being honored for EGL applications.
  • Fixed a bug that could cause some OpenGL programs to encounter out of memory during a mode switch.
  • Fixed a bug that prevented the NVIDIA OpenGL driver from honoring the __GL_SHADER_DISK_CACHE_PATH environment variable.
  • Fixed a bug that caused disabled displays to be implicitly included in the target selection for some queries and assignments on the nvidia-settings command line interface, in the absence of any explicit target selection.
  • Added a new attribute to the NV-CONTROL API to query the current utilization of the video decode engine.
  • Fixed a bug where the Exchange Stereo Eyes setting in nvidia-settings didn't work in certain stereo configurations.
  • Worked around a Unigine Heaven 3.0 shader bug which could cause corruption when tessellation is enabled by implementing an application profile that uses the "GLIgnoreGLSLExtReqs" setting. See the documentation for the __GL_IGNORE_GLSL_EXT_REQS environment variable for more details.
  • Fixed a memory leak when destroying EGL surfaces.
  • Added support for multiple simultaneous EGL displays.
  • Removed support for G8x, G9x, and GT2xx GPUs, and motherboard chipsets based on them. Ongoing support for new Linux kernels and X servers, as well as fixes for critical bugs, will be included in 340.* legacy releases through the end of 2019.
  • Fixed a bug that could cause nvidia-installer to unsuccessfully attempt to delete the directory containing precompiled kernel module interfaces, on packages prepared with --add-this-kernel.
  • Updated nvidia-installer to log uninstallation to a separate file from the installation log, and to attempt uninstalling previous driver installations using the installer program from the previous installation, when available.

New in version 340.32 (August 16th, 2014)

  • Added support for the following GPUs:
  • Quadro K420
  • Quadro K620
  • Quadro K2200
  • Quadro K4200
  • Quadro K5200
  • Fixed a regression that prevented the internal stereo infrared emitter built into some 3D Vision monitors from working.
  • Fixed a bug that could cause some Java-based OpenGL applications using JOGL to crash on startup on systems with Xinerama enabled.
  • Fixed a bug that could prevent OpenGL Framebuffer Objects (FBOs) from being properly redrawn after a modeswitch.
  • Fixed a memory leak that occurred when starting OpenGL applications.
  • Fixed a bug that prevented the EDID-Like Data (ELD) of audio-capable displays from being updated when hotplugged/unplugged.
  • Fixed a bug that caused Xid errors when using stereo mode 12 (HDMI 3D) on Quadro boards without an onboard stereo DIN connector.
  • Fixed a video corruption issue for VDPAU decoding of VC-1 and WMV video streams utilizing range remapping on Maxwell GPUs.
  • Fixed a "black window" bug in Ubuntu 14.04 when using the Xinerama and Composite extensions.
  • Fixed a bug that caused the screen's contents to be shifted downward when a G-SYNC monitor is unplugged and replaced by a non-G-SYNC monitor.
  • Fixed a bug that prevented G-SYNC from working when a G-SYNC monitor was unplugged and plugged back in without a modeset.

New in version 340.24 (July 8th, 2014)

  • Fixed a bug that prevented 3D Vision stereo and ultra low motion blur modes from working on G-SYNC capable monitors in some cases.
  • Fixed a bug that caused the "Allow G-SYNC" checkbox to be displayed in nvidia-settings even if the GPUs in the system are not capable of G-SYNC.
  • Fixed a kernel crash when running some applications with IOMMU functionality enabled.
  • Fixed a floating point exception in the OpenGL driver when running "Risk of Rain" under Wine.
  • Made various improvements and corrections to the information reported to GL applications via the KHR_debug and ARB_debug_output extensions.
  • Fixed a bug that caused GLX applications which simultaneously create drawables on multiple X servers to crash when swapping buffers.
  • Updated nvidia-settings to report all valid names for each target when querying target types, e.g. `nvidia-settings -q gpus`.
  • Added support for controlling the availability of Fast Approximate Antialiasing (FXAA) on a per-application basis via the new __GL_ALLOW_FXAA_USAGE environment variable and the corresponding GLAllowFXAAUsage application profile key. See the README for details.
  • Fixed a bug where indirect rendering could become corrupted on system configurations that disallow writing to executable memory.
  • Updated the nvidia-settings Makefiles to allow nvidia-settings to be dynamically linked against the host system's libjansson. This option can be enabled by setting the NV_USE_BUNDLED_LIBJANSSON Makefile variable to 0.Please note that nvidia-settings requires libjansson version 2.2 or later.
  • Removed the runlevel check from nvidia-installer: the installation problems formerly associated with runlevel 1 no longer apply.
  • Added initial support for G-SYNC monitors.Additional details and system requirements can be found at:
  • http://www.geforce.com/hardware/technology/g-sync
  • Improved support for running the NVIDIA driver in configurations where writing to executable memory is disallowed.Driver optimizations that require writing to executable memory can be forcefully disabled using the new __GL_WRITE_TEXT_SECTION environment variable.See the README for more details.
  • Fixed an X driver bug that caused gamma ramp updates of the green channel at depth 15, on some recent GPUs, to be ignored.
  • Fixed a regression, introduced in the 340.17 public beta release, that caused the NVIDIA X driver to access freed memory when exiting a GLX application that used either of the GLX_NV_video_out or GLX_NV_present_video extensions.

New in version 331.89 (July 4th, 2014)

  • Added support for the following GPU:
  • GeForce GT 730
  • Fixed a race condition in the NVIDIA kernel module that caused some GPUs to sporadically become unresponsive.
  • Updated the error reporting in the NVIDIA kernel module to include the GPU serial number, when available, in error messages written to the system log.
  • Fixed a bug that caused blank screens when transforming or rotating displays in an SLI Mosaic layout.
  • Fixed a bug that corrupted certain software rendering on 32-bit systems.

New in version 337.25 (May 30th, 2014)

  • Added support for the following GPUs:
  • GeForce GTX TITAN Z
  • GeForce GT 740
  • GeForce 830M
  • GeForce 840M
  • GeForce 845M
  • GeForce GTX 850M
  • Fixed a bug that caused X to crash when querying clock offsets for non-existent performance levels.
  • Fixed a performance regression when running KDE with desktop effects using the OpenGL compositing backend.
  • Fixed a bug that caused duplicate entries to appear in some dropdown menus in the "Application Profiles" page of nvidia-settings.
  • Fixed a regression that could cause OpenGL rendering corruption on X screens with 30 bit per pixel color.
  • Fixed a bug causing mode validation to fail for 4K resolutions over HDMI in certain situations.
  • Added nvidia-settings command line controls for over- and under-clocking attributes. Please see the nvidia-settings(1) manual page for more details.
  • Fixed several cosmetic issues in the clock control user interface of nvidia-settings.
  • Added support for the GLX_EXT_stereo_tree extension. For more details, see the extension specification:
  • http://www.opengl.org/registry/specs/EXT/glx_stereo_tree.txt
  • Enabled support for using Unified Back Buffer (UBB) and 3D Stereo with the composite extension on Quadro cards. Using stereo with a composite manager requires a stereo-aware composite manager. Otherwise, only the left eye of stereo applications will be displayed. See the GLX_EXT_stereo_tree extension specification for more details.
  • Fixed a bug that could cause OpenGL programs to freeze under some low memory conditions.
  • Updated the display configuration page in nvidia-settings to uniquely identify DisplayPort 1.2 monitors by displaying the monitor GUIDs.
  • Fixed a bug that could cause ECC settings to be displayed incorrectly in nvidia-settings when changing ECC settings on a multi-GPU system.
  • Removed the "OnDemandVBlankInterrupts" X configuration option: this option has been enabled by default since version 177.68 of the NVIDIA Unix driver, and the documentation had not been updated to
  • reflect the new default value.
  • Fixed a bug that caused GPU errors when hotplugging daisy-chained DisplayPort 1.2 displays.
  • Updated the color correction settings page in the nvidia-settings control panel to reflect gamma changes made by other RandR clients while the control panel was already running.
  • Fixed a bug that prevented the use of multiple simultaneous X servers on UEFI systems.
  • Updated the nvidia-settings source package to build libXNVCtrl when building nvidia-settings, instead of relying on a pre-built library.
  • Added the ability to over- and under-clock certain GeForce GPUs in the GeForce GTX 400 series and later. For GPUs that allow it, an offset can be applied to clock values in some clock domains of some performance levels. This clock manipulation is done at the user's own risk. See the README documentation of the "CoolBits" X configuration option for more details.
  • Updated the minimum required version of GTK+ from 2.2 to 2.4 for nvidia-settings.
  • Renamed the RandR output property _GUID to GUID now that it is an official property documented in randrproto.txt:
  • http://cgit.freedesktop.org/xorg/proto/randrproto/commit/?id=19fc4c5a72eb9919d720ad66734029d9f8e313b1
  • Reduced CPU utilization and GPU memory utilization of the NVIDIA EGL driver.
  • Added support for the following EGL extensions:
  • EGL_EXT_buffer_age;
  • EGL_EXT_client_extensions;
  • EGL_EXT_platform_base;
  • EGL_EXT_platform_x11.
  • Renamed the "Clone" setting of the "MetaModeOrientation" X configuration option to "SamePositionAs", to make clear that this setting applies to
  • the position only, and not to the resolution of modes in the MetaMode.
  • Added NV-CONTROL attribute NV_CTRL_VIDEO_ENCODER_UTILIZATION to query utilization percentage of the video encoder engine.
  • Added support for the GLX_NV_delay_before_swap extension. For more details, see the extension specification:
  • http://www.opengl.org/registry/specs/NV/glx_delay_before_swap.txt
  • Report correct buffer sizes for RGB GLX visuals, GLXFBConfigs, and EGLConfigs. Previously, RGB10 and RGB8 formats were reported as having 32 bits, and RGB5 formats were reported as having 16 bits. Now they are correctly reported as 30, 24, and 15 bit formats respectively as required by the GLX and EGL specifications.