What's new in Nvidia Vulkan Display Driver 418.30 Beta

Jan 30, 2019
  • Added initial support for G-SYNC Compatible monitors. See the README for details.
  • Added support for stereo presentation in Vulkan.
  • Fixed a bug that could cause OpenGL applications to crash after repeated VT-switches.
  • Fixed a bug that could sometimes prevent PRIME displays from being selected in the display settings page of nvidia-settings.
  • NVIDIA Video Codec SDK 9.0:
  • Support for Turing NVENC/NVDEC.
  • The NVDECODE API (also known as the NVCUVID API) has been updated to support YUV 4:4:4 decoding for HEVC on Turing GPUs.
  • NvEncodeAPI has been updated to support HEVC B-frames on Turing GPUs. NvEncodeAPI adds the capability to output the encoded bitstream, and motion vectors from motion estimation-only mode, to video memory. This avoids the overhead of copying the output from system to video memory for processing pipelines operating directly on video memory.
  • NvEncodeAPI now accepts CUarrays as input buffers. The SDK contains a sample application to demonstrate how to feed a Vulkan image to NVENC using the Vulkan-CUDA interop.
  • A new release of the Video Codec SDK will be available in Q1 2019.
  • Added NVIDIA optical flow support:
  • A new library libnvidia-opticalflow.so is included in the driver package. The NVIDIA optical flow library can be used for hardware-accelerated computation of optical flow vectors and stereo disparity values. The API header files, sample applications and documentation will be available in a separate Optical Flow SDK package in Q1 2019.
  • Removed libnvidia-wfb.so from the driver package. This module was only used on X servers that did not provide their own implementation of libwfb, and all X.Org xserver versions now supported by the driver do so.
  • Updated the VDPAU driver to reject decoding to YUV 4:2:2 video surfaces. The NVIDIA VDPAU driver always produces YUV 4:2:0 content. Previously, the VDPAU driver implicitly converted a YUV 4:2:2 video surface to YUV 4:2:0 during decode. Now, the VDPAU driver will fail the decode request.
  • Optimized nvidia-installer to only run depmod(1) once when installing, rather than twice (once during the uninstall phase and again when installing new kernel modules).
  • Removed the NVreg_UseThreadedInterrupts kernel module parameter from nvidia.ko. This removes the ability to forcibly fall back to an older mechanism (tasklets) for running the bottom-half interrupt handler. Instead, threaded IRQs (the default since 367.44) are always used.

New in Nvidia Vulkan Display Driver 415.13 Beta (Nov 12, 2018)

  • Added a new hook script, "pre-unload", to the nvidia-installer hook script system. This script, if present, will be executed before nvidia-installer attempts to unload existing NVIDIA kernel modules.
  • Fixed a bug that caused vkGetPhysicalDeviceDisplayPropertiesKHR() to occasionally return incorrect values for physicalResolution.
  • Added the synchronization state for PRIME Displays to nvidia-settings.
  • Improved error reporting in eglSwapBuffers() by generating codes for some missing error types, and adding additional detail to the already existing ones.
  • Improved the appearance and functionality of the nvidia-settings control panel when it is resized to small sizes.
  • Updated the nvidia-settings control panel to prevent some icons from being displayed incorrectly while using some GTK+ themes.
  • Fixed a bug that could cause WINE to crash on recent OS releases.
  • Fixed a bug that could cause an X server crash when exiting Vulkan applications running on X servers with UBB enabled.
  • Fixed an X driver bug that caused the "NoEdidModes" token of the "ModeValidation" X configuration option to reject non-EDID modes whose timings matched EDID modes.
  • Changed the NvEncCreateBitstreamBuffer API call in the NvEncodeAPI library to return NV_ENC_ERR_UNIMPLEMENTED instead of NV_ENC_SUCCESS when the encoder instance is configured to run in motion estimation-only mode. As an indirect consequence of this change, users running the AppEncME sample application from the Video Codec SDK prior to SDK version 8.2.16 will observe a segmentation fault due to bugs in the NvEncoder class. It is recommended that users download the latest version of the SDK, where these bugs have been fixed, from https://developer.nvidia.com/nvidia-video-codec-sdk.
  • Fixed an OpenGL driver bug that caused the upper bounds of floating-point viewports, specified through the ARB_viewport_array extension, to be clipped incorrectly.
  • Added a new X configuration option "HardDPMS" which is disabled by default, but can be enabled to put displays to sleep with modesets rather than VESA DPMS. This may fix some displays that fail to sleep when DPMS becomes active. "HardDPMS" will be enabled by default in a future release.
  • Raised the minimum supported X.Org xserver version to 1.5 (video driver ABI version 4).
  • Enabled the NVreg_EnableBacklightHandler kernel module option by default.
  • Removed the LinuxThreads version of the /usr/lib/libnvidia-tls.so library and replaced it with the NPTL one that was previously installed in /usr/lib/tls/. This fixes crashes on Debian systems when the /etc/ld.so.nohwcap file is present.
  • Updated nvidia-installer to allow the --no-cc-version-check option to disable the compiler version check when installing with DKMS.
  • Changed the minimum required Linux kernel version from 2.6.9 to 2.6.32.
  • Fixed an OpenGL bug where conditional rendering (NV_conditional_render) was incorrectly affecting mipmap generation.
  • Fixed a bug that could cause the X server to hang on systems booted in legacy VGA mode when using a DisplayPort Multi-Stream link.

New in Nvidia Vulkan Display Driver 381.09 Beta (Apr 6, 2017)

  • Added support for the following GPUs:
  • GeForce GTX 1080 Ti
  • Quadro M520
  • TITAN Xp
  • Restored support for the following GPU:
  • GRID K520
  • Improved compatibility with recent kernels.
  • Fixed a bug that caused "nvidia-settings --query all" to print many duplicate entries.
  • Fixed a bug that caused applications to crash in some situations when calling glXMakeCurrent while OpenGL threaded optimizations were enabled.
  • This frequently occurred when Steam was attempting to make a video appear full-screen.
  • Fixed a bug that caused VDPAU applications to use the blit presentation queue when a previous VDPAU application didn't shut down cleanly.
  • Fixed hangs and crashes that could occur when an OpenGL context is created while the system is out of available memory.
  • Fixed a bug that caused corruption when OpenGL windows were moved or resized.
  • Fixed a bug that caused X screens that use Option "UseDisplayDevice" "none" to be resized to 640x480 when using "xrandr -s" to change the screen configuration.
  • Fixed a kernel crash that occurred when attempting to map large user memory allocations into CUDA.
  • Disabled OpenGL threaded optimizations by default, initially enabled in 378.09, due to various reports of instability.
  • Added support for the following Vulkan extensions:
  • VK_EXT_acquire_xlib_display
  • VK_EXT_display_control
  • VK_EXT_display_surface_counter
  • VK_EXT_direct_mode_display
  • VK_KHX_external_memory
  • VK_KHX_external_memory_fd
  • VK_KHX_external_semaphore
  • VK_KHX_external_semaphore_fd
  • These extensions require a Vulkan loader version >= 1.0.42.
  • Removed the X driver's logo splash screen and the corresponding NoLogo and LogoPath xorg.conf options.
  • Added the "ResamplingMethod" MetaMode option, adding support for bicubic resampling methods when scaling screen transformations are in use. See the README for more details.
  • Fixed a bug that left HDMI and DisplayPort audio muted after a framebuffer console mode was restored. For some displays, this caused the display to remain blank.
  • Fixed a bug that caused audio over DisplayPort to stop working when the monitor was unplugged and plugged back in or awoken from DPMS power-saving mode.
  • Fixed a regression that caused corruption in certain applications, such as window border shadows in Unity, after resuming from suspend.

New in Nvidia Vulkan Display Driver 375.10 Beta (Oct 21, 2016)

  • Added support for the following GPUs:
  • Quadro P6000
  • Quadro P5000
  • GeForce GTX 1050
  • GeForce GTX 1050 Ti
  • Added new X configuration options:
  • ForceCompositionPipeline
  • ForceFullCompositionPipeline
  • which override the MetaMode tokens with the same names.
  • Fixed a bug that caused issues with panning and cursor constraining when mixing PRIME-driven displays with natively driven displays.
  • Fixed a bug that caused long delays when leaving the VT or disabling a display device while an OpenGL application is running.
  • Improved console restore behavior on systems that use the UEFI Graphics Output Protocol, and most vesafb modes.
  • Added support for the RandR TILE property added in RandR 1.5.
  • Fixed a bug that prevented nvidia-bug-report.sh from finding relevant messages in kernel log files.
  • Fixed a bug that allowed nvidia-installer to attempt loading kernel modules that were built against non-running kernels.

New in Nvidia Vulkan Display Driver 370.23 Beta (Aug 17, 2016)

  • Added the ability to over- and under-clock certain GeForce GPUs in the GeForce GTX 1000 series and later. For GPUs that allow it, an offset can be applied to clock values in some clock domains of all 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.
  • Fixed a bug that prevented Vulkan applications from presenting from multiple queues to the same X11 swapchain.
  • Added the "PixelShiftMode" MetaMode option, enabling support for 4K and 8K pixel shift displays. See the README for details.

New in Nvidia Vulkan Display Driver 367.18 Beta (May 19, 2016)

  • Fixed a bug that would cause OpenGL applications to crash when creating a context on one X display connection, then making it current with no associated drawable on another X display connection. This fixes a crash when starting some versions of Matlab.
  • Fixed OpenGL presentation to SDI through the GLX_NV_video_out and GLX_NV_present_video extensions, which was broken by the introduction of the nvidia-modeset kernel module in 358.09.
  • Fixed a bug that caused an incorrect offset to be applied when using the full composition pipeline on a display whose image has both a rotation and a ViewportOut offset applied.
  • Fixed a bug that could cause nvidia-settings to crash on some systems when responding to events such as hotplugging DisplayPort devices.
  • Fixed a bug that could cause crashes in OpenGL applications which use glTextureView() with a non-zero minlevel.
  • Enhanced the Display Device information page in nvidia-settings with additional information for DisplayPort devices to reflect attributes which are specific to DisplayPort connections.
  • Fixed a bug which could cause deleted application profiles to appear when editing rules in the nvidia-settings control panel.
  • Fixed a bug that caused hangs when a G-SYNC monitor is unplugged and a non-G-SYNC monitor is connected while G-SYNC is active.
  • Fixed a bug that caused "nvidia-modeset: ERROR: GPU:0: Activating G-SYNC failed" to be printed to the system log if a G-SYNC monitor is connected and stereo is enabled in xorg.conf on a configuration that doesn't support it.
  • Added the NV_robustness_video_memory_purge OpenGL extension, which allows applications to know when a mode switching or power event purged the contents of FBOs and BOs residing in video memory.
  • Fixed a bug that prevented HDMI 2.0 4K monitors from waking up from sleep or hot-replug.
  • Fixed a bug that sometimes prevented flipping from being enabled on systems with multiple displays.
  • Fixed a bug that could cause applications to crash when using the EGL_EXT_platform_device extension on a system with multiple GPUs.
  • Fixed a bug that could cause nvidia-installer's runtime loader test to fail spuriously on some systems.
  • The NVIDIA Unified Virtual Memory kernel module, nvidia-uvm.ko, now has a minimum kernel requirement of Linux 2.6.32. On older kernel versions, nvidia-uvm.ko will be compiled as a stub kernel module which does not provide any functionality.
  • Updated the libglvnd snapshot included in the NVIDIA driver package to libglvnd commit b7d75429677eecc00c3701aaa4deac1304bc51ff. This contains a new revision of the libglvnd ABI. The driver is not compatible with a libglvnd older than commit c5bcda3b848fe52d6ae6ef25c917431c06d62d27.

New in Nvidia Vulkan Display Driver 364.15 Beta (Apr 6, 2016)

  • Added support for the following GPUs:
  • Quadro M6000 24GB
  • Fixed several EGL driver interaction problems with resizing windows in Wayland.
  • Fixed a bug that caused some DRM PRIME configurations to fail when DRM KMS was enabled (i.e., nvidia-drm.ko's modeset kernel module parameter was set to "1").
  • Fixed a bug that could cause a kernel crash when VDPAU was used while DRM KMS was enabled.
  • Updated the libglvnd snapshot included in the NVIDIA driver package to libglvnd commit b7d75429677eecc00c3701aaa4deac1304bc51ff. This contains a new revision of the libglvnd ABI. The driver is not compatible with a libglvnd older than commit c5bcda3b848fe52d6ae6ef25c917431c06d62d27.
  • Limited the default concurrency level in nvidia-settings to 32, to avoid hitting the maximum tasks limit on systems with many CPUs.

New in Nvidia Vulkan Display Driver 355.00 Vulkan (Feb 24, 2016)

  • Add support for 64-bit vertex attribute formats
  • Improve performance of vkBindBufferMemory, vkBindImageMemory and vkCreateGraphicsPipelines
  • No longer enumerate Fermi based GPUs in vkEnumeratePhysicalDevices
  • Improved compatibility with recent Linux kernels
  • Linux: Fixed issue with vkAllocateMemory() crashing under some circumstances

New in Nvidia Vulkan Display Driver 361.18 Beta (Jan 14, 2016)

  • GeForce 940MX
  • Quadro M500M

New in Nvidia Vulkan Display Driver 361.16 Beta (Jan 5, 2016)

  • The OpenGL Vendor-Neutral Driver (GLVND) infrastructure is now included and supported by the NVIDIA GLX and OpenGL drivers. This should not cause any visible changes in behavior for end users, but some internal driver component libraries have been renamed and/or moved as a result. These changes may affect scripts that rely on the presence of NVIDIA OpenGL driver components other than those specified in the Linux OpenGL ABI version 1.0, maintainers of alternative NVIDIA driver installation packages, and applications which rely on the presence of any non- OpenGL/GLX symbols in the libGL.so.1 library and its dependencies in any way.
  • Updated nvidia-installer to run ldconfig(8) and depmod(8) after uninstalling an existing driver, instead of only running these two commands when installing a new driver.
  • Removed the VDPAU wrapper and trace libraries libvdpau.so.1 and libvdpau_trace.so.1 from the driver package. These libraries may be available via your distribution's package management system, or can be compiled from sources.
  • Fixed a bug in the EGL driver where a mutex was unlocked more than once. This triggers undefined behavior, and in particular, if lock elision is enabled in glibc, may result in a segmentation fault.

New in Nvidia Vulkan Display Driver 358.09 Beta (Oct 12, 2015)

  • Fixed a regression that reduced OpenGL performance on headless X server configurations.
  • Fixed a memory leak that occurred after destroying a GLXWindow which still has the current context attached to it.
  • Fixed a bug which caused EGL pbuffers to be created with both a front and back buffer, instead of a back buffer only, as is required for EGL.
  • Added a new kernel module, nvidia-modeset.ko. This new driver component works in conjunction with the nvidia.ko kernel module to program the display engine of the GPU.
  • nvidia-modeset.ko does not provide any new user-visible functionality or interfaces to third party applications. However, in a later release, nvidia-modeset.ko will be used as a basis for the modesetting interface provided by the kernel's direct rendering manager (DRM).
  • Reduced flickering and delays when transitioning into or out of G-SYNC mode. As part of this change, monitors that have G-SYNC indicators in their on-screen displays will now always report that they are in G-SYNC mode. The OpenGL G-SYNC visual indicator can be enabled in nvidia-settings to determine when G-SYNC is actually being used.
  • GLX protocol for the following OpenGL extension from OpenGL 3.0 has been promoted from unofficial to ARB approved official status:
  • GL_EXT_draw_buffers2
  • GLX protocol for the following OpenGL 3.0 commands:
  • BindBufferRangeNV
  • BindBufferBaseNV
  • BeginTransformFeedbackNV
  • EndTransformFeedbackNV
  • GetTransformFeedbackVaryingEXT
  • TransformFeedbackVaryingsEXT
  • which are part of the following extensions:
  • GL_NV_transform_feedback
  • GL_EXT_transform_feedback
  • has been promoted from unofficial to ARB approved official status.
  • With the above changes, GLX protocol for OpenGL 3.0 has been promoted from unofficial to ARB approved official status.
  • Added a new system memory allocation mechanism for large allocations in the OpenGL driver. This mechanism allows unmapping the allocation from the process when it is not in use, making more virtual address space available to the application. It is enabled by default on 32 bit OpenGL applications with Linux 3.11+ and glibc 2.19+. Memory allocated this way will consume space in /dev/shm. Setting the environment variable __GL_DevShmPageableAllocations to 2 will disable this feature

New in Nvidia Vulkan Display Driver 355.06 Beta (Aug 3, 2015)

  • Fixed a bug that could cause data from one texture level to overwrite data from the next lowest level, when creating a texture view that did not include the higher of the two levels.
  • Fixed a bug that could cause the nvidia-settings control panel to crash when updating the display layout.
  • Corrected some erroneous reporting of support for GLX extensions: several extensions were being reported as supported for indirect GLX, which were in fact only supported under direct rendering.
  • Added support for the following EGL extensions:
  • EGL_KHR_swap_buffers_with_damage
  • EGL_NV_stream_consumer_gltexture_yuv
  • Replaced the build system for the NVIDIA kernel modules and updated the installer package and nvidia-installer to use the new build system and kernel module source code layout. For more information about the new build system and layout, see the README document at:
  • ftp://download.nvidia.com/XFree86/packaging/linux/new-kbuild-for-355/
  • Added experimental full OpenGL support to EGL.
  • Marked the DeleteUnusedDP12Displays option as deprecated.
  • Version 1.5.0 of the X Resize and Rotate specification added a note that dynamically-created outputs will not be destroyed, so this option is deprecated and will be removed in a future driver release.
  • Added support for VDPAU profiles added in VDPAU 0.9:
  • VDP_DECODER_PROFILE_H264_BASELINE
  • VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE
  • VDP_DECODER_PROFILE_H264_EXTENDED
  • VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH
  • VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH
  • Fixed a bug that prevented more than one RandR output from sharing user-added modes.
  • Fixed a bug that caused application-specified swap intervals to be ignored on some screens when using Xinerama.
  • Fixed a bug that caused user-supplied RandR modes with nonsensical combinations of the +HSync, -HSync, +VSync, and -VSync flags to corrupt the mode list.
  • Added support to make an OpenGL 3.0 and above context current without making current to any drawable.

New in Nvidia Vulkan Display Driver 352.09 Beta (May 19, 2015)

  • Added the ability to configure the swapping behavior for quad-buffered stereo visuals. The driver can be configured to independently swap each eye as it becomes ready, to wait for both eyes to complete rendering before swapping, or to allow applications to specify which of these two behaviors is preferred by setting the swap interval. This setting can be adjusted in the nvidia-settings control panel, or via the NV-CONTROL API.
  • Fixed a regression which caused the GPU fan status display to disappear from the nvidia-settings control panel.
  • Added reporting of ECC error counts to the nvidia-settings control panel.
  • Fixed a bug that sometimes prevented OpenGL sampler objects from being properly deallocated when destroying OpenGL contexts.
  • Fixed a bug that caused GLX_EXT_framebuffer_sRGB to incorrectly report sRGB support in 30 bit-per-pixel framebuffer configurations.
  • Added support for G-SYNC with sync-to-vblank disabled. This allows applications to use G-SYNC to eliminate tearing for frame rates below the monitor's maximum refresh rate but allow tearing above the maximum refresh rate in order to minimize latency.
  • When G-SYNC is active and sync-to-vblank is enabled, the frame rate is limited to the monitor's maximum refresh rate.
  • GLSL gl_Fog.scale is now +infinity when gl_Fog.end equals gl_Fog.start. Previously, the value 0 was used, but this broke certain applications such as the game XIII running on Wine (Wine bug #37068).
  • Enabled G-SYNC by default when Unified Back Buffer (UBB) is disabled.
  • Updated the NVIDIA GPU driver to avoid using video memory already in use by vesafb.
  • Fixed a bug causing loss of stereo synchronization in certain Quadro Sync framelock configurations.
  • Fixed a rare deadlock condition when running applications that use OpenGL in multiple threads on a Quadro GPU.
  • Fixed a bug which caused truncation of the EGLAttribEXT value returned by eglQueryDeviceAttribEXT() on 64-bit systems.

New in Nvidia Vulkan Display Driver 349.12 Beta (Mar 25, 2015)

  • Added support for G-SYNC monitors when used together with non-G-SYNC monitors.When G-SYNC is enabled, non-G-SYNC monitors will display with tearing.
  • Fixed a bug that caused nvidia-settings to crash when assigning an attribute whose value is a display ID on a system with multiple X screens.
  • Updated the reporting of in-use video memory in the nvidia-settings control panel to use the same accounting methods used in other tools such as nvidia-smi. nvidia-settings was not taking some allocations into account, e.g. framebuffer memory for the efifb console on UEFI systems, causing discrepancies in the values reported by different tools.
  • Removed the "EnableACPIHotkeys" X configuration option. This option has been deprecated and disabled by default since driver version 346.35. 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).
  • Added support for lossless H.264/AVC video streams to VDPAU.
  • Added support for VDPAU Feature Set F to the NVIDIA VDPAU driver. GPUs with VDPAU Feature Set F are capable of hardware-accelerated decoding of H.265/HEVC video streams.
  • Fixed a bug that prevented GPU fan speed changes from getting reflected in the text box on Thermal settings page.
  • Added nvidia-settings commandline support to query the current and targeted GPU fan speed.
  • Added a checkbox to nvidia-settings to enable a visual indicator that shows when G-SYNC is being used.This is helpful for displays that don't indicate themselves whether they are operating in G-SYNC mode or normal mode. This setting can also be enabled by running the command line: nvidia-settings -a ShowGSYNCVisualIndicator=1
  • Added support for the X.Org X server's "-background none" option. When enabled, the NVIDIA driver will try to copy the framebuffer console's contents out of /dev/fb0.If that cannot be done, then the screen is cleared to black.
  • Added support for YUV 4:2:0 compression to enable HDMI 2.0 4K@60Hz modes when either the display or GPU is incapable of driving these modes in RGB 4:4:4.See NoEdidHDMI2Check in the README for details.
  • Fixed a bug that could cause multi-threaded applications to crash when multiple threads used the EGL driver at the same time.
  • Fixed a bug that caused Sync to VBlank to not work correctly with XVideo applications in certain configurations.
  • Fixed a bug that prevented the X driver from correctly interpreting some X configuration options when a display device name was given with a GPU UUID qualifier.

New in Nvidia Vulkan Display Driver 346.22 Beta (Dec 8, 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 Nvidia Vulkan Display Driver 346.16 Beta (Nov 13, 2014)

  • Added support for the following GPUs:
  • GeForce GTX 970M
  • GeForce GTX 980M
  • 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.
  • 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 Nvidia Vulkan Display Driver 343.13 Beta (Aug 6, 2014)

  • 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 Nvidia Vulkan Display Driver 340.17 Beta (Jun 9, 2014)

  • 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.
  • Added initial support for G-SYNC monitors. Additional details and system requirements can be found at: http://www.geforce.com/hardware/technology/g-sync
  • Fixed an X driver bug that caused gamma ramp updates of the green channel at depth 15, on some recent GPUs, to be ignored.

New in Nvidia Vulkan Display Driver 337.19 Beta (May 6, 2014)

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

New in Nvidia Vulkan Display Driver 337.12 Beta (Apr 8, 2014)

  • Added support for the following GPUs:
  • GeForce 830M
  • GeForce 840M
  • GeForce 845M
  • GeForce GTX 850M
  • GeForce GTX 860M
  • GeForce GTX 870M
  • GeForce GTX 880M
  • GeForce GT 705
  • GeForce GT 720
  • 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.

New in Nvidia Vulkan Display Driver 334.16 Beta (Feb 7, 2014)

  • Fixed a bug that could cause nvidia-settings to compute incorrect gamma ramps when adjusting the color correction sliders.
  • Updated the nvidia-settings control panel to allow the selection of display devices using RandR and target ID names when making queries targeted towards specific display devices.
  • Fixed a bug that prevented some dropdown menus in the nvidia-settings control panel from working correctly on older versions of GTK+ (e.g. 2.10.x).
  • Updated the nvidia-settings control panel to provide help text for application profile keys and suggestions for valid key names when configuring application profiles.
  • Updated the nvidia-settings control panel to populate the dropdown menu of stereo modes with only those modes which are available.
  • Fixed a bug that could cause applications using the OpenGL extension ARB_query_buffer_object to crash under Xinerama.
  • Fixed a bug that caused high pixelclock HDMI modes (e.g. as used with 4K resolutions) to be erroneously reported as dual-link in the nvidia-settings control panel.
  • Fixed a bug that prevented some DisplayPort 1.2 displays from being properly restored after a VT switch.
  • Renamed per GPU proc directories in /proc/driver/nvidia/gpus/ with GPU's bus location represented in "domain:bus:device.function" format.
  • Added 64-bit EGL and OpenGL ES libraries to 64-bit driver prackages.
  • Changed format of "Bus Location" field reported in the /proc/driver/nvidia/gpus/0..N/information files from "domain:bus.device.function" to "domain:bus:device.function" to match the lspci format.
  • Fixed a bug in the GLX_EXT_buffer_age extension where incorrect ages would be returned unless triple buffering was enabled.
  • Changed the driver's default behavior to stop deleting RandR 1.2 outputs corresponding to unused DisplayPort 1.2 devices. Deleting these outputs can confuse some applications. Added a new option, DeleteUnusedDP12Displays, which can be used to turn this behavior back on. This option can be enabled by running sudo nvidia-xconfig --delete-unused-dp12-displays
  • Improved support for the __GL_SYNC_DISPLAY_DEVICE and VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE environment variables in certain configurations. Both environment variables will now recognize all supported display device names. See "Appendix C. Display Device Names" and "Appendix G. VDPAU Support" in the README for more details.
  • Improved performance of the X driver when handling large numbers of surface allocations.
  • 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 Nvidia Vulkan Display Driver 331.17 Beta (Oct 25, 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.

New in Nvidia Vulkan Display Driver 331.13 Beta (Oct 4, 2013)

  • 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"
  • This option is useful in RandR 1.4 display offload configurations where no display devices are connected to the NVIDIA GPU when the X server is started, but might be connected later.
  • Updated nvidia-installer to provide a scrollable text area for displaying messages from the /usr/lib/nvidia/alternate-install-present and /usr/lib/nvidia/alternate-install-available distro hook files. This allows for longer messages to be provided in these files.
  • Updated nvidia-installer to avoid recursing into the per-kernel "build" and "source" directories when searching for conflicting kernel modules in /lib/modules.
  • 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.
  • Updated nvidia-installer to only install the libraries libvdpau and libvdpau_trace if an existing installation of libvdpau is not detected on the system. This behavior can be overridden with the --install-vdpau-wrapper and --no-install-vdpau-wrapper options.
  • Future NVIDIA Linux installer packages will no longer include copies of libvdpau or libvdpau_trace: VDPAU users are recommended to install these libraries via other means, e.g. from packages provided by their distributors, or by building them from the sources available at:
  • http://people.freedesktop.org/~aplattner/vdpau/

New in Nvidia Vulkan Display Driver 325.15 Beta (Aug 6, 2013)

  • Added support for the following GPUs:
  • GRID K340
  • GRID K350
  • 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.
  • Changed the default PCIe interrupt delivery method from virtual-wire to MSI. Note that if the NVIDIA Linux driver fails to initialize with an error indicating that it is not receiving interrupts, MSI can be disabled by setting the module parameter "NVreg_EnableMSI=0" when loading the NVIDIA kernel module.
  • Removed support for Linux 2.4 kernels. The NVIDIA Linux driver now requires Linux 2.6.9 or later.
  • 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.
  • Updated nvidia-installer to look for the following files:
  • /usr/lib/nvidia/alternate-install-available
  • /usr/lib/nvidia/alternate-install-present
  • These files may be provided by NVIDIA driver installers other than the official .run package maintained by NVIDIA, to alert nvidia-installer to the presence or availability of an alternative installation method. See the nvidia-installer(1) manual page for more information.
  • 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 Nvidia Vulkan Display Driver 325.08 Beta (Jul 1, 2013)

  • 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.
  • Changed the default PCIe interrupt delivery method from virtual-wire to MSI. Note that if the NVIDIA Linux driver fails to initialize with an error indicating that it is not receiving interrupts, MSI can be disabled by setting the module parameter "NVreg_EnableMSI=0" when loading the NVIDIA kernel module.
  • Removed support for Linux 2.4 kernels. The NVIDIA Linux driver now requires Linux 2.6.9 or later.
  • 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 Mosaic 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.
  • Updated nvidia-installer to look for the following files:
  • /usr/lib/nvidia/alternate-install-available
  • /usr/lib/nvidia/alternate-install-present
  • These files may be provided by NVIDIA driver installers other than the official .run package maintained by NVIDIA, to alert nvidia-installer to the presence or availability of an alternative installation method. See the nvidia-installer(1) manual page for more information.
  • 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 the X server to crash when querying the current mode of disabled displays.

New in Nvidia Vulkan Display Driver 325.08 Beta (Jul 1, 2013)

  • 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.
  • Changed the default PCIe interrupt delivery method from virtual-wire to MSI. Note that if the NVIDIA Linux driver fails to initialize with an error indicating that it is not receiving interrupts, MSI can be disabled by setting the module parameter "NVreg_EnableMSI=0" when loading the NVIDIA kernel module.
  • Removed support for Linux 2.4 kernels. The NVIDIA Linux driver now requires Linux 2.6.9 or later.
  • 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 Mosaic 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.
  • Updated nvidia-installer to look for the following files:
  • /usr/lib/nvidia/alternate-install-available
  • /usr/lib/nvidia/alternate-install-present
  • These files may be provided by NVIDIA driver installers other than the official .run package maintained by NVIDIA, to alert nvidia-installer to the presence or availability of an alternative installation method. See the nvidia-installer(1) manual page for more information.
  • 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 the X server to crash when querying the current mode of disabled displays.

New in Nvidia Vulkan Display Driver 319.12 Beta (Apr 9, 2013)

  • Added support for the following GPU:
  • GeForce GTX 650 Ti BOOST
  • Fixed CVE-2013-0131: NVIDIA UNIX GPU Driver ARGB Cursor Buffer Overflow in "NoScanout" Mode. This buffer overflow, which occurred when an X client installed a large ARGB cursor on an X server running in NoScanout mode, could cause a denial of service (e.g., an X server segmentation fault), or could be exploited to achieve arbitrary code execution.
  • For more details, see: http://nvidia.custhelp.com/app/answers/detail/a_id/3290
  • Added initial support for restoration of efifb consoles on UEFI systems where the primary display is driven over VGA or TMDS (e.g. DVI, HDMI, or LVDS).
  • Added support for the xorg.conf Monitor section options "Ignore", "Enable", "Primary", and "Rotate".For example, to rotate a monitor identified by a specific EDID hash, one could add the following to /etc/X11/xorg.conf or a file in /etc/X11/xorg.conf.d:
  • Section "Monitor"
  • Identifier "DPY-EDID-ee6cecc0-fa46-0c33-94e0-274313f9e7eb"
  • Option "Rotate" "left"
  • EndSection
  • See the README and the xorg.conf(5) man page for more information.
  • Added an Underscan feature in the nvidia-settings X Server Display Configuration page which allows the configuration of an underscan border around the ViewPortOut.This feature was formerly known as Overscan Compensation.
  • Added support for application profiles to the NVIDIA client-side GLX implementation. See the "Application Profiles" chapter of the README for more information.
  • Added support to nvidia-installer for crytographically signing the NVIDIA kernel module. See the "Installing the NVIDIA Driver" chapter of the README for more information.
  • Added the "PanningTrackingArea" and "PanningBorder" MetaMode attributes.
  • Added support for RandR 1.3 panning.
  • Improved performance when the Accel option is disabled.
  • Added initial support for RandR 1.4 Provider objects with the Source Output capability, which can be used to render the desktop on an NVIDIA GPU and display it on an output connected to a provider with the Sink Output capability, such as an Intel integrated graphics device or a DisplayLink USB-to-VGA adapter.See the README for details.
  • Added nvidia-modprobe, a setuid root utility, to the driver package. nvidia-modprobe can be used by user-space NVIDIA driver components to make sure the NVIDIA kernel module is loaded and that the NVIDIA character device files are present.When possible, it is recommended to use Linux distribution native mechanisms for managing kernel module loading and device file creation. This utility is provided as a fallback to work out-of-the-box in a distribution-independent way.
  • Updated the nvidia-settings command line interface to accept display device names, as well as optional target qualifiers, e.g.
  • nvidia-settings -q [DVI-I-0]/RefreshRate
  • nvidia-settings -q [GPU-1.DVI_I-1]/RefreshRate
  • Updated the nvidia-settings command line interface to no longer assume the "X screen 0" target, when no target is specified in query and assign operations.Instead, all valid targets of the attribute are processed.
  • Fixed a memory leak that occurred when destroying a GLX window but not its associated X window.
  • Fixed a bug that could cause nvidia-installer to fail to delete directories created as part of a previous installation.
  • Updated nvidia-installer to report failures to remove installed files or restore backed up files with a single warning message, instead of a separate message for each individual failure.
  • Improved the performance of modesets in cases where the mode timings remained the same, but other parameters of the mode configuration, such as the ViewPort or panning domain, changed.
  • Fixed an issue with RENDER convolution filters.The driver will no longer normalize filter kernels before accelerating them.
  • Improved debuggability of the NVIDIA OpenGL libraries by including proper stack unwinding information on all supported architectures.
  • Updated the dkms.conf file and the makefile for the NVIDIA Linux kernel module to allow DKMS installations on systems with separate source and output directories.
  • Fixed a bug that caused RENDER Pictures to be sampled incorrectly when using nearest filtering in some cases.
  • Added support for the RandR "Border" and "BorderDimensions" Output properties, which can be used to configure the ViewPortOut of an RandR output.This is functionally equivalent to the "ViewPortOut" MetaMode token.
  • Fixed a bug where RRGetCrtcInfo could report incorrect size information when an RandR output has a custom ViewPortIn.
  • Further improve performance of some versions of HyperMesh with Quadro GPUs.
  • Added a VDPAU page to the nvidia-settings control panel, to display information about the decoding capabilities of VDPAU-capable GPUs.
  • Added support for dynamic mode management through RandR, e.g. via the --newmode, --rmmode, and --delmode options in xrandr(1).
  • Increased the number of pages that are shareable across multiple processes in the x86 build of libnvidia-glcore.so, by reducing its R_386_PC32 relocation count.
  • Fixed a bug that caused XVideo applications to receive BadAlloc errors after VT switches and mode switches that occurred while a composite manager was running.
  • Removed the X driver's support for "CursorShadow".
  • Updated nvidia-installer to attempt unprelinking files whose checksums do not match the checksums recorded at installation time.
  • Switched .run package compression from gzip to xz.This provides a higher level of compression.

New in Nvidia Vulkan Display Driver 313.30 Beta (Apr 2, 2013)

  • Fixed CVE-2013-0131: NVIDIA UNIX GPU Driver ARGB Cursor Buffer Overflow in "NoScanout" Mode. This buffer overflow, which occurred when an X client installed a large ARGB cursor on an X server running in NoScanout mode, could cause a denial of service (e.g., an X server segmentation fault), or could be exploited to achieve arbitrary code execution.

New in Nvidia Vulkan Display Driver 313.26 Beta (Mar 5, 2013)

  • Added support for the following GPUs: GeForce GTX TITAN

New in Nvidia Vulkan Display Driver 313.18 Beta (Jan 16, 2013)

  • Added support for the following GPUs:
  • GeForce GTX 680MX
  • Tesla K20Xm
  • Added support in NV-CONTROL and in nvidia-settings for changing the Double Precision performance boost mode on supported GPUs.
  • Fixed a bug in nvidia-settings that allowed unavailable features to be selected in some drop-down menus.
  • Fixed several OpenGL driver bugs related to stencil-only framebuffer objects.
  • Updated the NVIDIA X driver to reprobe displays when VT-switching to X, to allow reporting of hotplug events when displays are connected or disconnected while VT-switched away from X.
  • Added unofficial GLX protocol support (i.e for GLX indirect rendering) for the following extension and core commands.
  • GL_ARB_vertex_array_object
  • OpenGL 3.0 commands ClearBufferfi, ClearBufferfv, ClearBufferiv,
  • ClearBufferuiv and GetStringi.
  • Fixed a bug that caused the cursor shadow to be clipped to 32x32 pixels, even on Kepler GPUs that support a 256x256 cursor image.
  • Fixed a bug that prevented some cursor image updates from taking effect on displays with rotation or other transformations applied.
  • Fixed cursor alpha blending artifacts on displays with rotation or other transformations applied.
  • Added support for the GLX_EXT_buffer_age extension.
  • Improved the performance of glDrawPixels() by up to 450% when the pixel data is of type GL_BYTE.
  • Fixed a bug when enabling framelock between displays connected to the same GPU as other displays with different refresh rates, which caused the latter to be incorrectly assigned to the framelock group.
  • Updated the reporting of HDMI 3D framerates and pixel clocks to be more consistent with how they are reported by HDMI 3D displays.
  • Fixed a bug that sometimes prevented rotation controls in the nvidia-settings control panel from working after changing resolutions.
  • Fixed a bug that could cause applications using GL_NV_vdpau_interop to crash during modeswitches.
  • Fixed a regression that could cause OpenGL applications to crash while compiling shaders.
  • Added a kernel module parameter, "NVreg_EnablePCIeGen3", which can be used to enable PCIe gen 3 when possible. Note that on many systems where the NVIDIA driver does not allow PCIe gen 3 by default, stability problems can be expected when this option is enabled: users should do so at their own risk.
  • Fixed a VDPAU bug that could cause the X server to hang when decoding some corrupted video streams.
  • Renamed VGX products to GRID products in the "Supported NVIDIA GPU Products" list.
  • Added support for X.org xserver ABI 14 (xorg-server 1.14).
  • Fixed a bug in nvidia-settings that could cause the wrong resolution to be set in basic mode for setups based on one display per X screen.
  • Fixed libnvidia-encode.so library dependency by linking it with libnvcuvid.so.1 instead of libnvcuvid.so while creating it.
  • Improved performance of OpenGL framebuffer object binds with Xinerama enabled by 2000-3000% when the application's windows do not span screen boundaries.
  • Fix performance issues when using some versions of HyperMesh with Quadro GPUs.

New in Nvidia Vulkan Display Driver 313.09 Beta (Dec 12, 2012)

  • Added unofficial GLX protocol support (i.e for GLX indirect rendering) for the following extension and core commands.
  • GL_ARB_vertex_array_object
  • OpenGL 3.0 commands ClearBufferfi, ClearBufferfv, ClearBufferiv,
  • ClearBufferuiv and GetStringi
  • Fixed a bug that caused the cursor shadow to be clipped to 32x32 pixels, even on Kepler GPUs that support a 256x256 cursor image.
  • Fixed a bug that prevented some cursor image updates from taking effect on displays with rotation or other transformations applied.
  • Fixed cursor alpha blending artifacts on displays with rotation or other transformations applied.
  • Added support for the GLX_EXT_buffer_age extension.
  • Improved the performance of glDrawPixels() by up to 450% when the pixel data is of type GL_BYTE.
  • Fixed libnvidia-encode.so library dependency by linking it with libnvcuvid.so.1 instead of libnvcuvid.so while creating it.
  • Improved performance of OpenGL framebuffer object binds with Xinerama enabled by 2000-3000% when the application's windows do not span screen boundaries.
  • Fix performance issues when using some versions of HyperMesh with Quadro GPUs.
  • Fixed a potential X server crash during initialization, when a graphics card with a TV connector has no TV connected.

New in Nvidia Vulkan Display Driver 310.14 Beta (Oct 15, 2012)

  • Implemented workarounds for two Adobe Flash bugs by applying libvdpau commit ca9e637c61e80145f0625a590c91429db67d0a40 to the version of libvdpau shipped with the NVIDIA driver.
  • Fixed an issue which affected the performance of moving windows of VDPAU applications when run in some composite managers.
  • Added unofficial GLX protocol support (i.e., for GLX indirect rendering) for the GL_ARB_pixel_buffer_object OpenGL extension.
  • Added support for HDMI 3D Stereo with Quadro Kepler and later GPUs. See the documentation for the "Stereo" X configuration option in the README for details.
  • Added experimental support for OpenGL threaded optimizations, available through the __GL_THREADED_OPTIMIZATIONS environment variable. For more information, please refer to the "Threaded Optimizations" section in chapter "Specifying OpenGL Environment Variable Settings" of the README.
  • Improved performance and responsiveness of windowed OpenGL applications running inside a Unity session.
  • Added support for OpenGL 4.3.
  • Added support for the "Backlight" RandR output property for configuring the brightness of some notebook internal panels.
  • Fixed a bug that prevented the Ubuntu Unity launcher panel from unhiding: https://bugs.launchpad.net/unity/+bug/1057000
  • Fixed a bug that caused nvidia-installer to sometimes attempt to write a log file in a nonexistent directory.
  • Fixed a bug that caused incorrect input transformation after resizing an NVIDIA X screen with xserver ABI 12 (xorg-server 1.12) or newer.
  • Fixed a bug that caused GLX to leak memory when Xinerama is enabled.

New in Nvidia Vulkan Display Driver 302.11 Beta (May 21, 2012)

  • Added support for the following GPUs:
  • GeForce GTX 690
  • GeForce GTX 670
  • GeForce 605
  • GeForce GT 610
  • GeForce GT 630
  • GeForce GT 640
  • GeForce GT 645
  • Fixed a bug affecting some G-Sync configurations which could cause active stereo content to be inverted on some display devices.
  • Added support for calculating the physical size and DPI of each RandR 1.2 Output using the EDID Detailed Timing Description.
  • Fixed a bug that prevented a workaround for the invalid EDID in certain AUO laptop flat panels from being applied, leading to an 800x600 desktop repeated several times across the screen.
  • Fixed a bug that caused the link configuration of DisplayPort devices to be reported incorrectly in nvidia-settings.

New in Nvidia Vulkan Display Driver 290.03 Beta (Oct 24, 2011)

  • Added support for the following GPU:
  • GeForce 510
  • Fixed a bug that prevented the driver from loading on some systems with integrated graphics.
  • Fixed issues in VDPAU that prevented allocating and displaying extremely large VdpOutputSurfaces.
  • Added support for limiting heap allocations in the OpenGL driver through the use of the __GL_HEAP_ALLOC_LIMIT environment variable. See the README for further details.
  • Added an "Accel" option to the X driver to allow disabling its use of the graphics processing hardware. This is useful when other components, such as CUDA, require exclusive use of the GPU's processing cores.
  • Modified how the OpenGL driver allocates executable memory so it may continue to function properly if /tmp is mounted noexec. As some fallback allocation methods may be prohibited under SELinux policy, the driver now supports detection of this policy as well as manual override of this detection via the __GL_SELINUX_BOOLEANS environment variable.
  • Fixed a bug that caused various GLSL built-in uniforms to not be updated properly when calling glPopAttrib.
  • Improved performance by caching compiled OpenGL shaders to disk. Added a "GLShaderDiskCache" option to the X driver to enable/disable this feature. Added the __GL_SHADER_DISK_CACHE and __GL_SHADER_DISK_CACHE_PATH environment variables for further configuration. See the README for further details.
  • Fixed a bug that caused trapezoid and triangle rendering to be very slow on older GPUs with xorg-server 1.11.

New in Nvidia Vulkan Display Driver 285.03 Beta (Aug 19, 2011)

  • Fixed a bug causing corruption of images which are 2047 pixels wide.
  • Improved performance of the RENDER extension on Fermi-based GPUs.
  • Fixed a bug causing the X server to crash after a VT-switch while running an OpenGL stereo application which is a member of a swap group.

New in Nvidia Vulkan Display Driver 280.13 Beta (Aug 2, 2011)

  • Fixed a GLX bug that could cause the X server to crash when rendering a display list using GLX indirect rendering.
  • Fixed a GLX bug that could cause a hang in applications that use X server grabs.
  • Fixed an X driver bug that caused 16x8 stipple patterns to be rendered incorrectly.
  • Fixed a GLX_EXT_texture_from_pixmap bug that caused corruption when texturing from sufficiently small pixmaps and, in particular, corruption in the GNOME Shell Message Tray.
  • Added unofficial GLX protocol support (i.e., for GLX indirect rendering) for the following OpenGL extension:
  • GL_EXT_vertex_attrib_64bit
  • Added GLX protocol support (i.e., for GLX indirect rendering) for the following OpenGL extensions:
  • GL_ARB_half_float_pixel
  • GL_EXT_packed_depth_stencil

New in Nvidia Vulkan Display Driver 270.18 Beta (Jan 24, 2011)

  • Added preliminary support for xserver 1.10.
  • Reorganized the NVIDIA driver's /proc file system layout to better reflect current needs: /proc/driver/nvidia/cards/0..N has been moved to /proc/driver/nvidia/gpus/0..N/information
  • Added new shared library: libnvidia-ml.so.
  • NVML provides programmatic access to static information and monitoring data for NVIDIA GPUs, as well as limited managment capabilities. It is intended for use with Tesla compute products.
  • See web-based documentation and associated nvml.h header for more info.
  • Added a new X configuration option "3DVisionDisplayType" to specify the display type when NVIDIA 3D Vision is enabled with a non 3D Vision ready display.
  • Fixed several bugs relating to hardware-accelerated gradients, which were causing visual corruption in some of the default Ubuntu GNOME themes.

New in Nvidia Vulkan Display Driver 260.19.04 Beta (Sep 10, 2010)

  • Added support for the nvcuvid API.
  • nvcuvid provides a mechanism for decoding video and exposing the surfaces to CUDA, allowing applications to perform custom processing of the video. nvcuvid is primarily targeted at transcoding and video- processing applications. nvcuvid was already available on other platforms.
  • By default, nvidia-installer places headers in /usr/include/nvcuvid, and library in /usr/lib/libnvcuvid.so, or in the appropriate library path for your system.
  • Stopped packaging and installing OpenGL, VDPAU, CUDA, and OpenCL header files with the driver. Those interested in these files can get them from their Linux distributions' packages, where available, or upstream from:
  • OpenGL header files (gl.h, glext.h glx.h, glxext.h) from here.
  • VDPAU header files (vdpau.h and vdpau_x11.h) from here.
  • CUDA and OpenCL header files (cuda.h, cudaGL.h, cudaVDPAU.h, cl.h, cl_gl.h, cl_platform.h) from here.
  • Note that while libvdpau.so is still included in 260.xx drivers, it will be removed from a future release series in early 2011. Distributors are encouraged to package libvdpau.so from http://freedesktop.org/wiki/Software/VDPAU
  • Fixed a bug in VDPAU that could cause a "display preemption" when toggling MPlayer to full-screen the first time.
  • Added OpenGL 4.1 support for Quadro Fermi, GeForce GTX 4xx, and later GPUs.
  • Enhanced VDPAU to fully support Xinerama.
  • Fixed a bug in the X driver that prevented operation of Xinerama when using multiple NVIDIA GPUs from different major hardware generations on X with ABI 4 or greater.
  • Fixed a bug in the OpenGL driver's Xinerama support.
  • Rendering should have ocurred to all physical X screens driven by an NVIDIA GPU compatible with the NVIDIA GPU driving physical X screen 0. However, if some physical X screen did not satisfy that requirement, then not only would that physical X screen not be rendered to (as expected), but also all physical X screens with a higher number would not be rendered to (which was unexpected).
  • Added GPU "Processor Clock" reporting to the nvidia-settings PowerMizer page.
  • Implemented support for SLI Mosaic Mode on Quadro FX 5800 and Quadro Fermi and newer Quadro GPUs.
  • Enhanced the VDPAU overlay-based presentation queue to allow it to be used when SLI is active, and in some cases when the X composite extension is enabled. See the README for further details.
  • Added support for configuring the dithering mode used when driving a flat panel with a GeForce 8 family or Quadro 4600/5600 or newer GPU.See the "Dithering Controls" in the Flat Panel page in nvidia-settings.
  • Added unofficial GLX protocol support (i.e., for GLX indirect rendering) for the following OpenGL extensions:
  • GL_EXT_texture_integer
  • GL_ARB_stencil_two_side
  • GL_EXT_transform_feedback2
  • GL_NV_transform_feedback2
  • GL_NV_conditional_render
  • Added GLX protocol support (i.e., for GLX indirect rendering) for the following OpenGL extensions:
  • GL_NV_point_sprite
  • GL_EXT_stencil_two_side
  • GL_EXT_point_parameters
  • GL_ARB_transpose_matrix
  • GL_EXT_framebuffer_blit
  • GL_EXT_framebuffer_multisample
  • GLX protocol for the following OpenGL extension is promoted from unofficial GLX ptotocol to ARB approved GLX protocol:
  • GL_EXT_geometry_shader4
  • GL_ARB_shader_objects
  • GL_ARB_vertex_shader
  • GL_ARB_fragment_shader
  • Added support for configuring individual displays as any eye in passive stereo mode "4" when using TwinView or SLI Mosaic through extensions to the MetaMode syntax.
  • Added ColorSpace and ColorRange features for HDMI. These give the ability to output YUV over HDMI and select full/reduced color range on RGB over HDMI. ColorSpace and ColorRange are X Configuration options and can be changed dynamically through nvidia-settings.

New in Nvidia Vulkan Display Driver 256.29 Beta (May 31, 2010)

  • Fixed a bug which prevented use of high performance PowerMizer levels on systems with certain ACPI configurations.

New in Nvidia Vulkan Display Driver 195.22 Beta (Nov 25, 2009)

  • Added support for NVIDIA 3D Vision Stereo on Linux with Quadro GPUs. See the "Stereo" X configuration documentation in the README for details.
  • Enhanced the VDPAU blit-based presentation queue to provide values of first_presentation_time" that have less jitter.
  • Add support for R16F and RG32F GLXFBConfigs when using GeForce 8 series and higher GPUs.
  • Added support for A2BGR10 32-bit GLX visuals on 30-bit X screens. These allow some level of window transparency when using 30-bit visuals with GLX and Composite, but they may cause problems with older X servers and/or applications. ARGB GLX visuals can be disabled by adding:
  • Option "AddARGBGLXVisuals" "False" to the X configuration file.
  • Fixed a problem that caused DisplayPort devices to behave incorrectly when DPMS power saving mode was triggered.
  • Updated VDPAU to improve thread concurrency. See the README for details.
  • Altered NVIDIA X driver behavior in the case that no display devices are connected to the GPU. Previously, in this case, the NVIDIA X driver would pretend a CRT was connected to the GPU. Now, the NVIDIA X driver will not automatically pretend that any CRTs are connected. If the X driver does not detect any connected display devices, the X server will fail to start.
  • To restore the old behavior, use the ConnectedMonitor X configuration option; e.g.,
  • Option "ConnectedMonitor" "CRT"
  • Alternatively, if display is not desired, Quadro and Tesla GPU users can enable "NoScanout" mode, which bypasses any mode timing validation or use of display devices; this is configured with:
  • Option "UseDisplayDevice" "none"
  • Disabled software cursors when the driver is operating in "no scanout" (UseDisplayDevice "none") mode. The software cursor image is not visible in remote desktop applications or screenshots anyway, so having software cursor enabled was unnecessary.
  • Changed glXSwapBuffers() behavior for a pixmap such that it is now a no-op n the direct rendering case in order to match the indirect case and comply with the GLX spec. Previously, calling glXSwapBuffers() on pixmaps in the direct case would swap the pixmap's buffers if the pixmap was double buffered.
  • Modified the installation location and names of internal VDPAU libraries to conform to conventions and Debian packaging guidelines. New versions of libvdpau expect this layout. Compatibility with old versions of libvdpau is maintained with symlinks.
  • Fixed a bug that could cause errors in graphical applications run after a previous application using VDPAU and OpenGL. This behaviour was observed when running Gwenole Beauchesne's hwdecode-demos application.
  • Modified vdpau.h to increment VDPAU_VERSION, to reflect the fact that new features have been added in the past. Also, add the new define VDPAU_INTERFACE_VERSION.
  • Fixed a periodic temporary hang in the VDPAU blit-based presentation queue.
  • Fixed a problem that caused resolution limitations or corruption on certain DisplayPort devices such as the Apple 24" Cinema display or some DisplayPort to VGA adapters.
  • Disabled the UseEvents option for GeForce 8 series and higher GPUs due to a problem that causes occasional short hangs. It will be re-enabled when that bug has been tracked down and fixed.
  • VDPAU now allows multiple streams to be decoded at once, without the need to set any environment variables.

New in Nvidia Vulkan Display Driver 190.16 Beta (Jul 23, 2009)

  • Added GLX protocol support (i.e., for GLX indirect rendering) for the following OpenGL extensions:
  • GL_ARB_draw_buffers
  • GL_EXT_Cg_shader
  • GL_EXT_gpu_program_parameters
  • GL_NV_fragment_program
  • GL_NV_gpu_program4
  • GL_NV_register_combiners
  • GL_NV_vertex_program1_1
  • GL_NV_vertex_program2
  • Added unofficial GLX protocol support (i.e., for GLX indirect rendering) for the following OpenGL extensions:
  • GL_ARB_geometry_shader4
  • GL_ARB_shader_objects
  • GL_ARB_texture_buffer_object
  • GL_ARB_vertex_buffer_object
  • GL_ARB_vertex_shader
  • GL_EXT_bindable_uniform
  • GL_EXT_compiled_vertex_array
  • GL_EXT_geometry_shader4
  • GL_EXT_gpu_shader4
  • GL_EXT_texture_buffer_object
  • GL_NV_geometry_program4
  • GL_NV_vertex_program
  • GL_NV_parameter_buffer_object
  • GL_NV_vertex_program4 GLX protocol for GL_EXT_vertex_array was also updated to incorporate rendering using GL_ARB_vertex_buffer_object. Use of these extensions with GLX indirect rendering requires the AllowUnofficialGLXProtocol X configuration option and the __GL_ALLOW_UNOFFICIAL_PROTOCOL environment variable.
  • Fixed a bug that caused glXGetVideoSyncSGI, glXWaitVideoSyncSGI, and glXGetRefreshRateSGI to operate on the wrong screen when there are multiple X screens.
  • Fixed glXQueryVersion to report GLX version 1.4.NVIDIA's GLX version has been 1.4 for several releases, and was already reported as 1.4 in the GLX client and GLX server version strings.
  • Fixed a problem that caused window border corruption when the screen is rotated.
  • Fixed a bug that causes corruption or GPU errors when an application paints a redirected window whose background is set to ParentRelative on X.Org servers older than 1.5. This was typically triggered by running Kopete while using Compiz or Beryl.
  • Added support for configuring the GPU PowerMizer Mode on GeForce 8 or later GPUs with multiple performance levels via nvidia-settings and NV-CONTROL.
  • Fixed a bug in VDPAU that could cause visible corruption when decoding H.264 clips with alternating frame/field coded reference pictures, and a video surface is concurrently removed from the DPB, and re-used as the decode target, in a single decode operation. This affected all GPUs supported by VDPAU.
  • Fixed a bug in VDPAU that could cause visible corruption near the bottom edge of the picture when decoding VC-1 advanced profile clips whose heights are not exact multiples of 16 pixels, on G98 and MCP7x (IGP) GPUs.
  • Enhanced VDPAU to better handle corrupt/invalid H.264 bitstreams on G84, G86, G92, G94, G96, or GT200 GPUs. This should prevent most cases of "display preemption" that are caused by bitstream errors.
  • Fixed an X server crash when using the VDPAU overlay-based presentation queue and VT-switching away from the X server.
  • Enhanced VDPAU's detection of the GPU's video decode capabilities.
  • Fixed a bug in VDPAU that could cause ghosting/flashing issues when decoding H.264 clips, in certain full DPB scenarios, on G98 and MCP7x.
  • Fixed VDPAU to detect an attempt to destroy the VdpDevice object when other device-owned objects still exist. VDPAU now triggers "display preemption", and returns an error, when this occurs.
  • Enhanced VDPAU's error handling and resource management in presentation queue creation and operation. This change correctly propagates all errors back to the client application, and avoids some resource leaks.

New in Nvidia Vulkan Display Driver 180.16 Beta (Dec 14, 2008)

  • Support for the following GPUs being added...
  • Quadro FX 2700M
  • GeForce 9400M G
  • GeForce 9800GT
  • GeForce 8200M G
  • GeForce Go 7700
  • GeForce 9800M GTX
  • GeForce 9800M GT
  • GeForce 9800M GS
  • GeForce 9500GT
  • GeForce 9700M GT
  • GeForce 9650M GT
  • Updated implementation of VDPAU.
  • Fixed:
  • SDI sync skew controls in nvidia-settings
  • SDI applications hanging or crashing
  • nvidia-settings crashing when there is a Device and Screen section within the xorg.conf but no ServerLayout
  • Linux OpenGL library crash when using FreeBSD's Linux emulation layer
  • Improved documentation and cleanups within the VDPAU header file (vdpau.h).