Last week we published our first benchmarks of LLVMpipe, which is a new driver for Gallium3D that's to serve as a software rasterizer on the CPU. LLVMpipe is ideal for cases where a GPU is not available or supported and it leverages LLVM (the Low-Level Virtual Machine) for optimization and providing much better software acceleration than Mesa's traditional software rasterizer or Gallium3D's previous Softpipe driver. LLVMpipe really likes modern, fast processors with SSE3/SSE4 support especially for best performance, but will work with nearly any 64-bit Intel/AMD processor. Unfortunately, LLVMpipe doesn't yet play well with GNOME Shell.
Red Hat's David Airlie has started a new mailing list discussion that's surrounding the "stupid development model" of Mesa. Their accepted policy of developing in stable branches and then pulling the code into the master code-base periodically (rather than just working directly on master) is causing many frustrations for Dave in being able to back-port fixes to existing stable branches of Mesa.
A month ago we talked about Gallium3D's LLVMpipe performing well and providing a much better software rasterizer than what is available with classic Mesa. Using LLVMpipe and a modest CPU for acceleration, the OpenArena was just about playable without any GPU assistance. Now a month later LLVMpipe is becoming a even more serious performer. LLVMpipe now is able to tap into the new geometry processing pipeline and it's causing some major performance gains.
While OpenGL 3.0 was announced in August of 2007, nearly three years later its coverage in the open-source Mesa stack is lacking even while the 3.1/3.2/3.3 revisions have been introduced and OpenGL 4.0 was already introduced this year. Slowly but surely though, the open-source developers are making progress in implementing OpenGL 3.x support for Mesa.
In May of last year there were Gallium3D state trackers published for OpenGL ES 1.1 and OpenGL ES 2.0. These were among the first major working state trackers for this new graphics architecture, but in the months since they have continued to receive much affection from a few developers and continue to improve. The OpenGL ES 1.1/2.0 support though may now be reworked by Kristian Høgsberg.
Mesa 7.8 was released last week (and then yesterday an emergency 7.8.1 release arrived) in its traditional bundled form with the DRI drivers, but this afternoon a version with the popular hardware drivers modularized and built around an SDK, has been published.
Mesa 7.8 was only released one week ago, but an "emergency" release of Mesa 7.8.1 will be arriving in just a few hours.
Besides the Mesa 7.8 release announcement hitting the Mesa mailing list over the weekend, also catching our interest is a new discussion concerning S3TC texture compression in this open-source software stack. One of the developers working on Spring RTS, an open-source real-time strategy game engine for Linux and Windows, is wanting the open-source Mesa developers to implement S3TC texture compression/decompression. But this is a rather sticky situation.
Ian Romanick has just released the 7.7.1 and 7.8.0 versions of the Mesa3D open-source OpenGL stack with the DRI/Gallium3D drivers. As planned, this release is coming right on time for the end of March with Intel preparing to make its quarterly Linux graphics driver update and there is also the release of X Server 1.8 coming in the near future.
Coming just one week after the first release candidate, the second release candidate for Mesa 7.8 is now available. This is in hopes of meeting the release schedule and pushing out the final release on Friday.
OpenGL 3.0 was announced in the summer of 2007 and since then we have seen the subsequent releases of the 3.1, 3.2, and 3.3 specifications. Just last week there was even the release of OpenGL 4.0. The proprietary Linux graphics drivers have picked up support for these latest industry standard specifications, but it hasn't been smooth sailing in the open-source world.
Three days ago we reported on Luc Verhaegen and his expedition of modularizing Mesa and its DRI drivers following his talk last month at FOSDEM concerning the ways of cleaning up the Linux graphics driver stack. While we were early to report on Luc's work, yesterday he announced his modularized DRI drivers and Mesa SDK on the Mesa3D development list, but his work has fallen on deaf ears.
Mesa 7.8 was branched earlier this month in preparation for a release later this month, and today the first planned release candidate of this major update to this critical piece of the open-source Linux 3D stack has arrived.
While we are still waiting for the hardware drivers to mature for Gallium3D (particularly the Nouveau stack for all NVIDIA GPUs, the Intel 965 driver, the ATI R300g driver to mature, and then the R600g driver to come about), VMware has been working on their a software rasterizer as well through a Gallium3D state tracker. This new software rasterizer looks like it's finally coming about and is already delivering great performance compared to Mesa's existing software rasterizer that is rather crippled.
Beyond working on a R600/700 winsys as well as a command submission checker for these ATI Radeon HD 2000/3000/4000 series graphics processors, Jerome Glisse of Red Hat has also been busy at work on a shader compiler for the R600/700 ASICs with the still-in-early-development Gallium3D driver. Over the weekend Jerome hit one of his first milestones with this code.
Mesa 7.7 was released just before the end of 2009, but by the end of March there will be the 7.8 release of the Mesa 7.8 graphics stack. Since January the Mesa 7.8 release plans have been to release it by the end of March -- around the same time as the planned X Server 1.8 release -- and in preparation for that this release series has now been branched from master.
Zack Rusin of VMware announced the other day that they are working on a DirectX 10/11 state tracker. This caused quite a discussion in our forums and now Zack has clarified his remarks. There is already a DirectX 9.0 state tracker for Gallium3D, but it and the state tracker to support the 10 and 11 versions of this Microsoft API will have a few limitations compared to most of the other state trackers. Simply put, the Direct3D state tracker from VMware will only be supported on Windows and it will not be released as open-source.
With state trackers emerging for the Gallium3D driver architecture to provide acceleration for a range of APIs from OpenGL ES and OpenVG to OpenGL and OpenCL, we knew it was likely that at some point there would be support for Microsoft's DirectX API. There was even a rumor of Tungsten Graphics already having a working DirectX state tracker. As VMware, which now owns Tungsten Graphics, the creator of Gallium3D, is using this open-source driver architecture within their virtualization platform for providing all sorts of hardware acceleration support to guest operating systems over the GPU, the DirectX support has become important.
Kristian Høgsberg, the mastermind behind DRI2 and the one behind the Wayland Display Server, has a new announcement and that's a DRI2 driver for the new Mesa EGL implementation. Kristian's work interfaces EGL with DRI2 and is described as a "nice, self-contained implementation." Kristian has aspirations to add support for EGL with a DRI2 driver on the KMS frame-buffer, which could be used in the Wayland world.
Back in December of 2008 VMware acquired Tungsten Graphics, the company that's principally behind Mesa 3D along with the Gallium3D driver architecture, the TTM memory manager, and other parts of the Linux graphics stack. A year later (this past November/December) we then found out VMware had them create a virtual Gallium3D driver for their VMware virtualization platform so that virtualized operating systems can exploit the graphics processor on the host system just not for driving OpenGL support, but OpenCL, OpenVG, OpenGL ES, and other areas covered now by the Gallium3D state tracker and going into the future (VDPAU, etc).
Back in mid-2008 we published two articles that looked at the contributors to the X Server and contributors to Mesa, which provided statistics as to the companies and developers contributing to these two important free software projects over the years. Since the start of the new year though I've been meaning to provide some other statistics about how the projects themselves have evolved over the year, but this morning I am finally pushing out these new numbers for the X.Org Server and Mesa.
In a Phoronix Forums thread in regards to a 2010 Linux graphics driver wish-list, a developer has shared that he has started a Direct3D 9.0 state tracker for Windows! Yes, where it would actually be possible to accelerate Direct3D 9.0 while on Linux when using a Gallium3D hardware driver.
While a blitter module was introduced for Gallium3D that uses the 3D engine for blitting, this doesn't help those without blit support that are still running the "classic" Mesa driver stack. Over the night, however, blit support has arrived for the ATI R600/700 Mesa driver. This support arrived in the form of three commits (1, 2, 3) that increase the driver's code-base by around 2,000 lines of code.
This week in the Mesa world Gallium3D feature levels came about and a new EGL state tracker was released. The week though is not over and there are more announcements coming out for this free software OpenGL stack used on Linux and other operating systems.
For the past few months there has been a developer, Chia-I Wu, working to bring the Mesa 3D stack to Android netbooks. Chia-I has worked to improve the OpenGL ES support in Mesa, wrote an Android EGL driver, Mesa OpenGL ES/EGL support outside of an X Server, and various other areas of interest. Also being worked on by this developer have been a set of improvements to the EGL support in the Gallium3D stack.
The last time we talked about Gallium3D work being done by Zack Rusin was just before the holidays when he was hacking on new geometry shader support. Zack's latest work on Gallium3D though is for defining "feature levels" that provides a table for what features can be supported by a given driver / graphics processor.
While ATI R600 users only recently received OpenGL 2.0 hardware support within the open-source Radeon 3D stack and there is many more OpenGL extensions to be implemented just not for the ATI Mesa driver but the other DRI drivers as well, Brian Paul has published a document that lays out the current state of OpenGL 3.x within the classic Mesa core. This document lays out what core Mesa supports and not necessarily that any of the drivers are implementing the said support at this time. Granted, with Mesa not really being very performance-efficient at this time or capable of running most games, a majority of users will be waiting for the OpenGL 3.x state tracker for Gallium3D.
Zack Rusin has just shared with the Mesa development community a plethora of new code. This is not code for yet another state tracker or new hardware driver, but rather it brings new geometry shader support to the Gallium3D infrastructure. There's a new syntax now being used for geometry shaders and these patches fully implement the support, including with the TGSI components. So far the feedback on these patches are very positive and should be merged to master in the near future.
VMware's Keith Whitwell has mentioned on the Mesa3D development list that he plans to merge the new Intel i965 Gallium3D driver to Mesa's master repository. At the beginning of November this new Gallium3D driver emerged and was formed within the i965g-restart branch, which continues to frequently see new work on this Gallium3D driver.
Just as planned, Mesa 7.7 has been released in time to make it into everyones stockings this holiday. Intel's Ian Romanick has just pushed out the release of Mesa 7.7.0, which delivers many new features, along with Mesa 7.6.1, which delivers bug-fixes and greater stabilization work atop the Mesa 7.6 code-base.
928 Mesa news articles published on Phoronix.