Gallium 3D and the rest

this is kind of a followup to this post, which explains what I mean with “the rest”.

So now we are going to look at Gallium 3D and put in in the context of the rest. First of all you need to know that there is the DRI protocol, an API provided by the kernel and there is a DRI driver which controls the graphics hardware by using this protocol.

Gallium 3D is now a modularization of the DRI driver, where the parts which the intel and radeon drivers(and others) have in common are put in a seperate package which is then used by both. Furthermore Gallium 3D itself provides a simple graphics API on which you can implement more complex APIs like OpenGL, OpenVG or Direct3D.

Currently every driver reinvents the wheel, when it comes to common parts and if you want to implement some other graphics API, you have to map it to the OpenGL like interface which current DRI drivers provide, which in many cases slows things down.

Now how does this relate to DRI2? There are people asking whether Gallium 3D or DRI2 is better. Well you will need both. Like already said above DRI2 just a protocol, which Gallium 3D will have to use in order to talk to the kernel – just like any DRI1 driver which will be updated to DRI2.

And DRI2 is what you want for proper memory management on the graphics card, one that allows redirected direct rendering etc.