Friday, September 21, 2007


Critics are raving: "Gallium 3D is the best thing that ever happened to Free Software graphics", "It's breathtaking!", "Never before has nudity been so tasteful!"... Alright, maybe not the last one. Actually none of them, since it's a brand new project. In fact that's the point of this entry. To introduce you two.

You, a brilliant (as derived from the fact that you're reading this blog) Free Software enthusiast or simply my very own stalker (both options very satisfying to me personally). And Gallium3D, the foundation of Free Software graphics for years to come.

Gallium3D is a redesign of Mesa's device driver model. It's a new approach to the problem of accelerating graphics. Given tremendous investment that free desktops make in OpenGL nowadays I'm very excited to be working on it.

At Tungsten Graphics we've decided that we need a device driver model that would:
  • make drivers smaller and simpler
  • model modern graphics hardware
  • support multiple graphics API's
The basic model, as presented by Keith Whitwell on XDS2007, looks as follows:

You can follow the development of Gallium as it happens in Mesas gallium-0.1 branch.

Also you can read a detailed explanation of what it is on our wiki .

Now why should you be excited (besides the fact that, like I already pointed out, there's no developer nudity in it and that being excited about the stuff I'm excited about is in general a good idea).
  • Faster graphics
  • Better and more stable drivers
  • OpenGL 3
  • Ability to properly accelerate other graphics APIs through the same framework. Did someone say OpenVG?
This is a huge step on our road to tame the "accelerated graphics" demon in Free Software. We've been talking about it for a long time and now and we're finally doing it. There's something zen like about working on free software graphics for years and finally seeing all the pieces falling into place.


Stregatto said...

Hi zack, accelerated graphics are going to be everywhere on there desktop in the future.
Unluckily at the moment dri requires authentication, as any dri application can completely lock the xserver.
Myself, i once naively ran "gdb gears" under X, and after setting "break malloc" and run'ning i completely locked my machine.
Is there any plan to improve on this?
At least some way to kill an application that is holding dri locks should be found (like ctrl-alt-del in winzozz, or maybe something better)
If in the near future (almost) every application is going to use dri, i'd say that this will be an important issue (even disregarding all security concerns, we can't expect all gl apps to be bug-free)...
BTW, thanks for working to improve DRI ;)

rmgraham said...

as both a fanboy and a stalker, I am honoured to be acknowledged not once, but twice.

As per the latter, I like your new digs, but those curtains really must go. I'm glad you don't plan on staying there long..

As per the former, bring on the awesome!

Anonymous said...

You say "multiple graphics apis". Could this mean a native Direct3D implementation on Linux? Because that would make porting windoze games and apps a lot easier and thus profitable.

chrisG said...

Looks like an Xrender frontend should not be too difficult to create. And it would be great if this would lead to pervasive Xrender acceleration.

Anonymous said...

best blog ever, lol. keep going, we need more peole like you in free software.

Anonymous said...

There is no part of that post I didn't like Simpler, faster, easier, more stable. Words I always want to hear to describe an updated piece of software.

diego said...

you rock zack, always doing great things :)

keep up the awesome work

lixfe said...

I'm glad that TG is working on this ambitious project. I was recently asking a question, would it be possible to support multiple graphic API's on DRI? - the answer with Gallium seems to be: YES.

Even the notorious windows & Xbox-only D3D seems possible, if Wine people decide to try making their implementation working (also) on Gallium, which would hopefully make it faster and more compatible with D3D apps.

Given the fact that community will soon receive 3D programming specs of AMD's "next-gen" hardware, this project seems even more important and useful as it's conceived to use features of current state-of-art GPU's much better than the old stack could.

Aaron said...

Oh, man, you're funny. You're like... a comedian. Except you're not.

Also, I'm glad to hear about this Gallium3D, being a game developer and all...

Anonymous said...

Hey Zack, being one of your very active stalkers (and a FS enthusiast) I realize it's very hard to keep track of your many incredible projects. To clearify things for me I feel I have to ask you a question:

In a previous post, you mentioned a Mesa and LLVM based framework for optimizing high-level OpenGL code. Also, you mentioned that drivers have to be ported. So does the Gallium3D architecture have this in mind?

Keep up the great work!

Jahmal said...

I would like to second anonymous' question. Will the LLVM 2.0 based Shader Language compiler be going into a major Mesa release in the *future*?

Seems to me it would be very useful for both Mesa itself and the softpipe component of Gallium 3D.


Anonymous said...

haiku os will enjoy very much this architecture, help this Os to get 3d aceleration.

sajith said...

Can anyone tell me what became of tungstengraphics wiki? I've been trying to make sense of gallium pipe driver -- were there some bits and peices about pipe driver in the wiki?

Anonymous said...

Thank you. Up till now I had been looking at modifying the X11-DRI+DRM drivers for my hobby Operating System ambitions, now that I have some more accurate knowledge about Gallium3D I will be looking into porting it.