- Fixed a regression, introduced in 358.09, that caused incorrect rendering of OpenGL stereo applications in combination with Quadro Sync on certain GPUs.
- Fixed a regression, introduced in 358.09, that caused OpenGL stereo applications to hang when SLI AFR, SFR, or SLIAA modes were enabled.
- Fixed a regression, introduced in 358.09, that caused the system to hang while launching OpenGL applications when some SLI Mosaic topologies were in use.
- Fixed a bug, introduced in 358.09, that could cause a kernel crash when nvidia.ko and nvidia-modeset.ko have different versions. This could occur if an older driver package is installed after 358.09 is installed.
- Fixed a bug that could cause some G-SYNC monitors to flicker on Kepler-based GPUs when running at low frame rates.
- Fixed a regression that could cause OpenGL or VDPAU applications to hang in Xinerama layouts which include multiple X screens that are driven by the same GPU.
- Added a fallback to allow GLX to function when UNIX domain socket communication is blocked between NVIDIA client-side GLX and NVIDIA server-side GLX. For example, the default SELinux policy on Fedora 22 prevents the NVIDIA 358.09 GLX driver from working in GDM3:
- Fixed a regression from 358.09 that caused G-SYNC monitors configured to use 3D Vision stereo to go blank and report an unsupported signal.
- Fixed a regression from 358.09 that caused OpenGL applications that failed to negotiate permission to perform glXSwapBuffers via flipping to stop updating the screen. This was triggered on Fedora 22 where the SELinux system policy prevents gnome-shell from communicating with the X server.
Now, OpenGL applications that fail to negotiate flipping will fall back to glXSwapBuffers via blitting.
See https://bugzilla.redhat.com/show_bug.cgi?id=1271401 for more details.
- 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:
- GLX protocol for the following OpenGL 3.0 commands:
which are part of the following extensions:
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
- Added support for OpenGL 4.3.
- Added support for X.Org xserver ABI 20 (xorg-server 1.18).