New in version 340.65

December 10th, 2014
  • Added support for X.Org xserver ABI 19 (xorg-server 1.17).
  • 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 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 driver installation makefiles to use LOCALBASE instead of X11BASE to determine the default installation paths.

New in version 343.36 (December 5th, 2014)

  • Added support for X.Org xserver ABI 19 (xorg-server 1.17).
  • Updated the driver installation makefiles to use LOCALBASE instead of X11BASE to determine the default installation paths.
  • 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.

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.
  • 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.

New in version 331.49 (February 19th, 2014)

  • Added support for the following GPUs:
  • GeForce GT 710
  • GeForce 825M
  • Added a new X configuration option "InbandStereoSignaling" to enable/disable DisplayPort in-band stereo signaling. See "Appendix B. X Config Options" in the README for more information.
  • Fixed a bug that caused PBO downloads of cube map faces to retrieve incorrect data.
  • Added experimental support for ARGB GLX visuals when Xinerama and Composite are enabled at the same time on X.Org xserver 1.15.

New in version 331.38 (January 13th, 2014)

  • Fixed a bug that caused the X server to crash if video memory is exhausted and the GPU does not support rendering to system memory.
  • Updated nvidia-installer to make the --multiple-kernel-modules option imply the --no-unified-memory option: Unified memory is incompatible with multiple kernel modules.
  • Improved the robustness of the NVIDIA X driver in scenarios where GPU-accessible memory for allocating pixmaps was exhausted.
  • Added NV-CONTROL attributes to control the brightness of the illuminated logos on certain graphics boards.For example, to turn off the illumination of the "GEFORCE GTX" lettering on the GeForce GTX 780, use
  • nvidia-settings --assign GPULogoBrightness=0
  • Fixed a bug that prevented screen transformations from being applied properly when starting X.
  • GLX protocol for the following OpenGL extensions from OpenGL 2.1 and OpenGL 3.0 have been promoted from unofficial to ARB approved official status:
  • GL_ARB_pixel_buffer_object
  • GL_NV_conditional_render
  • GL_ARB_map_buffer_range
  • GL_EXT_texture_integer
  • GL_ARB_vertex_array_object
  • GL_ARB_pixel_buffer_object was the last piece of protocol needed to have official support for indirect rendering with all OpenGL 2.1 commands.
  • GLX Protocol for the miscellaneous OpenGL 3.0 commands not associated with specific extensions has also been promoted from unofficial to ARB approved status.
  • Deprecated display mask related configuration of display devices via NV-CONTROL and nvidia-settings.Display target specifications should be used instead - A display target is one of the display's valid names, with an optional GPU or X screen qualifier.
  • Deprecated the following NV-CONTROL attributes:
  • NV_CTRL_CONNECTED_DISPLAYS
  • NV_CTRL_ENABLED_DISPLAYS
  • NV_CTRL_ASSOCIATED_DISPLAYS
  • NV_CTRL_NOTEBOOK_INTERNAL_LCD
  • NV_CTRL_FRAMELOCK_MASTER
  • NV_CTRL_FRAMELOCK_SLAVES
  • NV_CTRL_FRAMELOCK_MASTERABLE
  • NV_CTRL_FRAMELOCK_SLAVEABLE
  • Also, although NV_CTRL_PROBE_DISPLAYS is still operational, the return value has been deprecated and should not be used.
  • Added deprecation warning messages in nvidia-settings when deprecated attributes are used.This also includes display mask usage.

New in version 325.15 (November 15th, 2013)

  • Added support for the following GPUs:
  • GRID K340
  • NVS 315
  • Quadro K500M
  • Fixed a bug in the nvidia-settings control panel that could cause spurious messages about layout inconsistencies to be printed when changing the display layout while SLI is enabled.
  • Fixed a bug that could cause display flickering after setting some scaling configurations.
  • Fixed a bug that prevented the status bar on the "PowerMizer" and "X Server XVideo Settings" pages in the nvidia-settings control panel from being updated when settings were changed by another NV-CONTROL client.
  • Fixed a bug that could cause some UI elements to be duplicated in the nvidia-settings control panel following a VT switch on X server configurations with multiple NVIDIA X screens.
  • Fixed a bug that prevented the creation of a mode via RandR with the same name as a previously created mode, even after the previous mode had been deleted.
  • Fixed a bug in nvidia-settings that caused GTK+ theme colors to be ignored for some UI elements.
  • Fixed a bug that caused nvidia-settings to write hostname-based color correction settings to the .nvidia-settings-rc configuration file, even when the "Include X Display Names in the Config File" option was unset. This could lead to a long delay when starting nvidia-settings, if a hostname saved to the configuration file failed to resolve.
  • Fixed a bug that exposed edge overlap controls on the SLI Mosai page of nvidia-settings on edges where overlap was impossible.
  • Fixed a bug that caused some settings in the nvidia-settings control panel to be reset when reprobing displays.
  • Fixed a bug that could cause OpenGL applications that use Frame Buffer Objects (FBOs) to crash following a mode switch (e.g. changing the resolution of a display or transforming it).
  • Fixed a memory leak that could be triggered by unloading libGL before destroying all GLX contexts.
  • Fixed a bug that could cause color correction settings to be applied to the wrong display when multiple displays are unplugged and then plugged back in again.
  • Fixed a bug that could cause a spurious error message about a missing NV-GLX extension when performing indirect rendering from a GLX client with the NVIDIA client-side OpenGL libraries to a non-NVIDIA GLX server.
  • Fixed an OpenGL bug that prevented conditional rendering from the NV_conditional_render extension from correctly affecting CopyPixels.
  • Improved the rendering performance of complex gradients.
  • Added support for configuring SLI Mosaic and Base Mosaic in the "X Server Display Configuration" page of nvidia-settings.
  • Fixed an X driver bug where the RandR CRTC panning area and tracking area were not getting clamped to the current X screen size when the RandR CRTC transitioned from disabled to enabled.
  • Fixed an X driver bug where successful RandR X_RRSetScreenConfig requests would update the server's RandR 'lastSetTime' too far, potentially causing subsequent RandR requests to be unnecessarily rejected.
  • Fixed an X driver bug that caused GPUs to become inaccessible via the NV-CONTROL X extension when no corresponding X screens could be initialized.
  • Generate a BadMatch error when applications attempt to create GLX pixmaps using glXCreatePixmap() or glXCreateGLXPixmapWithConfigSGIX() and the pixmap's depth doesn't match that of the specified GLXFBConfig.
  • Updated nvidia-settings to explicitly specify the direction of rotation for configuring per-display rotation configuration.
  • Honor a GPU UUID as the GPU qualifier for X configuration options that allow GPU qualifiers (e.g. "MetaModes").
  • Report GPU UUIDs in the X log when verbose logging is enabled in the X server.
  • Enabled conformant glBlitFrameBuffer() scissor test behavior by default. A driver-provided application profile enables the previous non-conformant behavior for applications that load libcogl, to work around a bug in older versions of libcogl.
  • Application profiles can be added to enable the non-conformant behavior for other applications that depend upon it. See the "Known Issues" section of the README for more details.
  • Fixed a bug that caused applications using CUDA-GL interop to crash when run on X servers with Xinerama enabled.
  • Fixed a bug that could prevent some double-bit ECC errors from being properly reported.
  • Fixed a bug which could cause a blank screen when changing house sync settings on Quadro Kepler GPUs with Quadro Sync boards.
  • Fixed a bug that prevented nested loops with identical loop conditions in GLSL shaders from terminating correctly. This could cause hangs in applications such as Exa PowerVIZ.
  • Fixed a bug that resulted in corrupt texels when a previously empty texture image was specified with glXBindTexImageEXT. In GNOME 3, this caused gnome-screenshot to produce garbled window screenshots.
  • Fixed a bug that caused the X server to crash when querying the current mode of disabled displays.

New in version 331.20 (November 9th, 2013)

  • Fixed a bug that prevented configuration files containing application profiles from being loaded when directories were present in the application profile configuration search path.
  • Fixed a bug that could lead to memory exhaustion in OpenGL applications running on 32-bit systems.
  • Fixed a bug that caused the X server to fail to initialize when DisplayPort 1.2 monitors were assigned to separate X screens on the same GPU.
  • Fixed a bug that could cause a deadlock when forking from OpenGL programs which use some malloc implementations, such as TCMalloc.
  • Fixed a bug that prevented Warp & Blend settings from being retained across display configuration changes.
  • Fixed a bug that prevented some settings changes made via the nvidia-settings command line interface from being reflected in the nvidia-settings graphical user interface.
  • Changed the clipping behavior of the NVIDIA X driver on Trapezoids and Triangles for some RENDER operations to match the behavior in newer versions of Pixman:
  • http://lists.freedesktop.org/archives/pixman/2013-April/002755.html
  • Fixed a bug in MetaMode tracking that could cause spurious error messages to be printed when attempting to add or delete Metamodes via NV-CONTROL.
  • Fixed a bug that caused the NVIDIA X driver to attempt to load the X11 "shadow" module unconditionally, even in situations where the driver had no need to use the module. This could result in the printing of spurious error messages, on X servers where the module was not present.
  • Fixed a bug that prevented display configuration changes made with xvidtune(1) from working correctly.
  • Fixed a bug that occasionally caused display corruption in GLX applications while changing the display configuration.
  • Fixed a bug that prevented glReadPixels from working correctly when reading from Pixel Buffer Objects over indirect rendering, when the image width is not a multiple of 4.
  • Added a new NV-CONTROL attribute, NV_CTRL_BACKLIGHT_BRIGHTNESS, for controlling backlight brightness.
  • Fixed a bug that prevented nvidia-settings from creating display device configuration pages for newly connected DisplayPort 1.2 Multi Stream Transport downstream devices.
  • Added GPU utilization reporting to the nvidia-settings control panel.
  • Fixed a bug in the nvidia-settings control panel that prevented users from configuring stereo, when stereo was not already configured.
  • Added support for reporting the tachometer-measured fan speed on capable graphics boards via nvidia-settings and the NV-CONTROL API. The preexisting mechanism for reporting fan speed reports the speed of the fan as programmed by the driver.
  • For example, `nvidia-settings --query=[fan:0]/GPUCurrentFanSpeedRPM`.
  • Fixed a regression that caused GPUs that do not support graphics to not appear in nvidia-settings.
  • Fixed a bug that caused DisplayPort 1.2 multi-stream devices to stop working if they were unplugged and plugged back in while they were active in the current MetaMode.
  • Added support for multiple NVIDIA kernel modules. This feature allows users to assign different GPUs in the system to different NVIDIA kernel modules, potentially reducing the software overhead of coordinating access to multiple GPUs.
  • Added support for the EGL API on 32-bit platforms. Currently, the supported client APIs are OpenGL ES 1.1, 2.0 and 3.0, and the only supported window system backend is X11.
  • Add a new option, AllowEmptyInitialConfiguration, which allows the X server to start even if no connected display devices are detected at startup. This option can be enabled by running "sudo nvidia-xconfig --allow-empty-initial-configuration"
  • Added a system memory cache to improve the performance of certain X rendering operations that use software rendering fallbacks. The X configuration option "SoftwareRenderCacheSize" may be used to configure the size of the cache.
  • Removed the "DynamicTwinView" X configuration option: dynamic reconfiguration of displays is always possible, and can no longer be disabled.
  • Fixed a bug that caused nvidia-settings to display incorrect information in its display configuration page when all displays on an X screen were turned off.

New in version 331.17 Beta (October 25th, 2013)

  • Fixed a bug that prevented configuration files containing application profiles from being loaded when directories were present in the application profile configuration search path.
  • Deferred initialization of libselinux in the NVIDIA OpenGL driver, in order to avoid a problem where libselinux might not be ready when the NVIDIA libGL shared library is first loaded.
  • Fixed a bug that could lead to memory exhaustion in OpenGL applications running on 32-bit systems.
  • Added nvidia-uvm.ko, the NVIDIA Unified Memory kernel module, to the NVIDIA Linux driver package. This kernel module provides support for the new Unified Memory feature in an upcoming CUDA release.