|For months we have seen S3 Graphics advertise a magical Linux driver in their press releases that promised to offer OpenGL 3.0 support and advanced video functionality. They had reported to us the driver would be released in December, but that deadline had passed and they continued to announce Linux support when launching the Chrome 540 GTX, but still there was nothing. However, S3 Graphics has now actually delivered such a driver! They have delivered a Chrome 500 series Linux driver that not only provides OpenGL 3.0 support but also H.264, VC-1, and MPEG-2 hardware decoding on the GPU. While it may appear to be good, this driver is still far from perfect.|
The initial release of this new S3 Graphics driver is labeled version 14.02.08 and was released this week on the S3 Graphics web-site. The prominent features are, of course, OpenGL 3.0 support and the H.264 / VC-1 / MPEG-2 video decoding. Unfortunately, this driver remains closed-source like their earlier Chrome 400 series Linux driver. This driver package is officially supported by S3 Graphics on Ubuntu 8.04, Ubuntu 8.10, Red Hat Enterprise Linux WS Release 5, Fedora Core 9, Mandriva Linux 2009, and SuSE Linux 11. The S3 Linux driver right now only supports Linux x86 with no x86_64 support. While the support is centered on the Chrome 530 GT and Chrome 540 GTX, the Chrome 430 ULP, 430 GS, 430 GT, and 440 GTX are also compatible. Additionally, the Chrome 4300E and 4300E+ embedded chipsets are also stated to be compatible.
The S3 Chrome 500 Linux driver is capable of hardware 2D acceleration using both XAA and EXA. This driver also supports Xinerama and Compiz, but currently there is no support for RandR 1.2.
When it comes to the video acceleration, S3 Graphics states the driver provides full H.264 (MPEG-4 AVC) and VC-1 acceleration while there is also MPEG2-HD VLD bit-stream hardware decoding. What video interface are they using? An enhanced version of XvMC? NVIDIA's very popular (and very effective) VDPAU? They are actually using VA-API. Intel developed the Video Acceleration API, but so far, only their Intel Poulsbo Chipset driver supports this API. Intel is actually considering VDPAU support for their other chipsets. Fortunately, there is mainline VA-API support in FFmpeg and MPlayer and a VDPAU back-end for VA-API. With S3's VA-API implementation, however, a specific revision of MPlayer, libavcodec, libavformat, libavutil, and libpostproc need to be checked out from Subversion followed by applying their own patch. This nearly 7,500-line patch also adds a VA NOX and XvMC NOX mode to MPlayer. Without Chrome hardware though, we are unable to test this support or comment much more on the usability of their video acceleration.
It is nice that S3 Graphics finally delivered an updated Linux driver, but we do not know at this time how well the driver really works. The VA-API support is certainly nice and we are hopeful that it was implemented well, but sadly, it requires patching MPlayer and the other software packages manually instead of using the mainline VA-API code. On top of all of that, this driver is closed-source and S3 Graphics does not engage in any active open-source efforts. We reported earlier that the kernel module for the Chrome 400 series Linux driver advertised itself as being GPL. With the kernel module for the Chrome 500 series, it too is continuing to advertise itself as GPL licensed. While they say that, we have yet to see any actual code.