Last week I mentioned that it looked like Google was interested in Gallium3D for Chromium OS
. That has turned out to be the case and the flow of changes to the community Intel Gallium3D driver has only continued to increase.
Last week's article cited a number of commits by Stéphane Marchesin, the founder of the Nouveau project and now is leading the X/graphics activities at Google for Chromium OS, to the Intel Gallium3D driver that was started by VMware (Tungsten Graphics at the time) and is maintained by the community but goes without official support from Intel Corporation. Stéphane hasn't commented on the work, but David Airlie of Red Hat mentioned in our forums
"Chromebook platform is Pineview based which had 3D based on 915 instead of 965. That hardware has no vertex shader hw in the GPU, so you have to do vertex shaders on the CPU. Currently the classic mesa driver does vertex shaders with some slow codegen, whereas gallium can leverage the llvm vertex shader paths and is sufficiently faster for google to care. For i965 hw this isn't going to work as a plan since they do vertex shading in hw, though with the original 965 rumour has it doing the vertex shader in CPU and leaving frag shader in hw is possibly faster, at least Intel Windows drivers may have done this.
The main excuses Intel gives for not using gallium were about no rewriting their whole driver, but really they've nearly ended up rewriting it anyways for native GLSL frag shader and again for vertex shaders, so really regression testing needs to be in place anyways, and piglit is good at it."
Basically, Google can squeeze better performance out of a Gallium3D driver than a classic Mesa driver for the older Intel integrated graphics they are using right now for their mobile Chromium OS notebook/netbook.
The Intel Gallium3D driver though is only community supported, doesn't outperform the classic Mesa driver in all areas, and doesn't support the newest generations of Intel graphics.
Since last week, Marchesin has kept pushing more changes into Intel Gallium3D known as the "i915g" driver. There's also the newer "i965g" Gallium3D driver too, but it doesn't receive as much love and it's not of the interest of Google since they aren't shipping hardware at this time supported by that driver.
As can be seen from this Git web interface
, in the past week since initially mentioning Google's work on the driver, there's been another 30+ commits. This work includes trying to improve the shader compiler, support for new pipe formats, enabling support for new OpenGL extensions, bug-fixes, support for new operations, draw point sprites, and much more. It's quite interesting to see the pace of activity on this driver.
The work in the past few days, due to the Mesa branching of 7.11 from master for the next release, will end up being released in about six months as Mesa 7.12
(or possible Mesa 8.0). In the next couple of weeks though, if the change of i915g driver activity keeps up, I'll be sure to deliver a fresh set of Intel Gallium3D benchmarks to see how it compares to the classic i915 Mesa driver.
If anyone is interested in contributing, there's an i915g driver TODO list
; Marchesin has been keeping it up-to-date and adding new items.