VIA Fails With KMS/3D, But Has Yet Another X Driver
One year ago VIA came out with their Linux TODO list, which was disappointing. This list had a VIA TTM/GEM memory manager module for Q2'2010, a kernel mode-setting driver in the works for H2'2010, and a Gallium3D driver in-development for Q4'2010. Even meeting this TODO list would be bad as the support most Linux customers are after (3D and KMS to a lesser extent) would not be arriving until three years after VIA announced this newest Linux strategy. But, VIA has failed miserably in accomplishing any of these mile-stones for KMS and open-source 3D acceleration support. Though resulting in VIA's Linux community being fragmented even more, new VIA X.Org (DDX) drivers seem to keep popping up. If there wasn't already enough of these not-fully-working and rarely-touched open-source drivers, another VIA Chrome X.Org driver has been started recently that's a fork of another open-source VIA driver.
It was bad enough on the ATI/AMD side when there were just three drivers: the proprietary Catalyst driver and then the two open-source X.Org drivers: xf86-video-ati and xf86-video-radeonhd. Here at least there were different approaches in the open-source drivers (i.e. AtomBIOS vs. not), different hardware support (xf86-video-ati supporting pre-R500 ASICs where RadeonHD did not), and a semi-different feature-set. The RadeonHD driver ultimately ended up having a short life, but at least it was worked on, both groups of developers ended up learning things from each other, and the importance of both drivers were reduced when the Radeon kernel mode-setting driver was merged into the mainline Linux kernel. The open-source VIA situation only seems to degrade from being a horrible mess to a support catastrophe.
Earlier this year there was work on another open-source VIA driver being called xf86-video-openvia. It seems work on the OpenVIA driver has now been abandoned by its lead developer in favor of another one simply being called xf86-video-chrome. The xf86-video-chrome driver is just the latest, but it's not simply a rename or an evolution of the OpenVIA driver, but rather it's a restart.
The xf86-video-chrome repository (at GitHub) only goes back to the end of October when the work began. The xf86-video-chrome driver is based upon VIA's official open-source code (xf86-video-via), in particular the via-xserver-87a-55727_src package (it can be found on the VIA Linux web-site). This is the driver package with VIA and S3 Graphics copyrighted code going back to 1998 and 2001, respectively, with contributions as well from VA Linux Systems and Precision Insight. The open-source driver supports the CN700, CX700, VN896, VX800, and VX855 chipsets.
So what does this new xf86-video-chrome driver provide on top of this? Well, not much. In fact, at this point, it just removes more than it adds. The xf86-video-chrome driver removes support for the following features: MergedFB, ShadowFB, Xinerama, non-RandR, legacy RandR, down-scaling, excessive debug outputs, and other legacy functions. What the xf86-video-chrome driver then provides is a cleaner code-base by stripping out a lot of code and then doing some "general clean-up" to the open-source driver. Aside from that, it just adds 1200 x 900 LCD mode-line support and support for PLL quirks, which amounts to a few new lines of code. That really summarizes the xf86-video-chrome driver at this point.
The xf86-video-chrome driver now joins xf86-video-unichrome, xf86-video-openvia, xf86-video-via, and xf86-video-openchrome as all being X.Org display drivers for the VIA hardware (there may be other forks/branches too), none of which drivers are full-featured and all while there's still no proper OpenGL/3D acceleration under Linux for VIA hardware going into 2011. Intel's Poulsbo Linux situation may too be a bloody mess and involve binary blobs, but at least there the efforts are more concerted and there's working configurations complete with 3D.
For a while, VIA appeared to be tossing its limited Linux efforts behind the OpenChrome driver, but its development list remains eerily quiet and its SVN repository is far from lively. The OpenChrome driver is expected to provide its DDX support for the new OLPC XO 1.5 device, but that isn't merged yet. VIA's Linux cheerleader, Bruce Chang, also no longer seems to be active with their Linux support efforts.
Will 2011 be any different for VIA Technologies on Linux? We'd like to think so, but more than likely it won't be any better. The Linux 2.6.38 kernel merge window is soon opening up and with VIA (or any others) not yet producing any TTM/GEM patches, which are needed to foster any kernel mode-setting and Gallium3D driver work, this pushes back VIA's Q2'2010 TODO list back at least to being Q2'2011 before there could possibly be mainline VIA kernel memory management. Based upon how long it's taken the open-source Radeon and Nouveau (for NVIDIA hardware) driver teams to get where their at, it really is unlikely there could be any viable open-source KMS/3D support for VIA prior to 2012 and that's being optimistic. By that time, if the company is still around, they'll probably need to begin work on bringing up support for their newest generation of chipsets.