this year, Keith Whitwell had provided a status update on Gallium3D
and where they were at as of February. However, a lot has changed since then. Today at XDS 2008, Keith has provided a new status update of where they are at with this new driver infrastructure. Below are our notes from this talk as well as the following talk delivered by Tungsten's Jakob Bornecrantz.
- Recapping known features: New 3D driver environment, a lot simpler to work with than Mesa/DRI, multiple API support for free, taking away the nasty stuff within DRI drivers, easy to adopt for new environments, and strong interfaces.
- Core support for Gallium is essentially done for OpenGL and DirectX 9
- Additional APIs for Gallium 3D is on the way, but Tungsten Graphics doesn't want to comment on which ones at this time.
- GL support and sample drivers in Mesa gallium-0.1-branch.
- Intel 915 driver is complete but not fully optimized.
- Gallium 3D is now in a stabilization phase. Keith Whitwell: "We're done with the first iteration and now in a bug-fixing phase."
- Current work: building debug, tracing, and replay tools. Also working on new API front-ends and performance measurement and tuning.
- Fairly close to a point where Gallium will be merged to Mesa trunk. Before that, however, they intend to fix interface glitches, architecture oddities, and apply the lessons from the first couple of drivers.
- Tungsten has done a new driver for a newer class of GPU hardware, but no comment on what it is or when it will be released.
- A little bit of work left in some of the per-device driver components
- The winsys API will be hidden to the state tracker during the clean-up process of the Gallium code.
- It's time to think about putting together a Gallium specification and would help in the clean up process.
- Textures/Resources: unify surfaces and textures, remove the concept of a free-standing surface that owns its storage, possibly rename texture to resource to avoid confusion, textures own the storage and image data, 90% done.
- Future Possibility: Tungsten believes that 2D should be layered on 3D. They propose to define a 2D-friendly abstraction (such as pipe_context_2d) and provide a default implementation layered on the existing 3D-friendly interfaces.
i915 Gallium 3D:
- Gallium 3D hardware for Intel i915 IGP hardware.
- Current User Status: Passes 49 of 55 master tests for Clean. UT2004, Quake 3, and Google Earth should run.
- Code Status: ~10,000 lines of code for the i915 simple driver, ~6,200 lines of code for winsys, and ~114,000 lines of code for the state tracker.
- Current bugs: mipmap / render offsets, blend stuff, tiled textures and render targets. Linear tiling access is dead slow.
- Future: GEM, less bugs, proper tiling, zone rendering.
The main points from this talk is that Gallium 3D is approaching a point of stability, they have some new APIs in the work but won't comment on what they are (we believe it's GL ES, OpenVG, and others), work is underway on an official Gallium driver for an unknown card and unknown company, a specification for Gallium3D may be published soon, and lastly they are looking at possibly layering 2D support atop Gallium 3D in the future.