It was just eleven days ago that NVIDIA had released the 180.11 Beta Linux Driver, but in the wee hours of Saturday morning NVIDIA has pushed out a new beta driver. This driver contains a few fixes, support for new GPUs, and an updated implementation of the Video Decode and Presentation API for Unix.
The release highlights for the 180.16 driver release mention 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, and GeForce 9650M GT. However, support for some of these GPUs has actually been in the driver for quite a while. For example, in early November we were using a Sparkle GeForce 9500GT 1GB with the 177.80 Linux driver and this graphics card has been available since July. Either the NVIDIA Linux engineers had too much Eggnog to drink at their Christmas party or it's really just to reflect newer versions of some select GPU cores.
The fixes in this latest beta release affect 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, and a Linux OpenGL library crash when using FreeBSD's Linux emulation layer.
The most significant part of this release, however, is the updated implementation of VDPAU. As we have shared in two articles now -- NVIDIA VDPAU Benchmarks and HD Video Playback With A $20 CPU & $30 GPU On Linux -- this video API with PureVideo-like features does a remarkable job at offloading the video decoding (and related tasks) to the graphics processor instead of using the CPU. With our article earlier this week, we had no problems playing back HD video files in H.264, WMV3, and MPEG using a $20 Sempron processor and $30 GeForce graphics card when switching to VDPAU. With this low-end hardware we were even able to compile the Linux kernel and watch HD videos simultaneously without running into issues.
With this updated VDPAU specification, there is now support for more than four reference frames so that this NVIDIA PureVideo-like API can support level 4.1 reference frame limits on all of the GeForce GPUs. This should help in allowing more H.264 video files to play using VDPAU. However, the client video applications must now specify the reference frame allowance for VDPAU as well as the VDPAU memory usage. With NVIDIA's binary driver and VDPAU there is also fixes for corruption when decoding some H.264 streams. Another bug was addressed that prevented some VC-1 and WMV3 decoding from working on a few NVIDIA GPUs.
Another change is not painting the color key to presentation queue targets until the first frame is presented. In turn this should eliminate any lag time from when the video key is first displayed before the frame is visible. Lastly, there is improved documentation and cleanups within the VDPAU header file (vdpau.h). With the NVIDIA 180.16 beta release, the VdpDecoderCreate API has been broken so all clients such as MPlayer and MythTV will now need to be rebuilt from source against the revised API.