Open-Source Intel Mesa Driver Now Supports OpenGL 3.2 35
An anonymous reader writes "Mesa and its open-source Intel graphics driver now are in compliance with the OpenGL 3.2 specification (PDF). It took four years for Mesa to get up to GL 3.2 / GLSL 1.50 compliance, and support for the other Mesa drivers isn't too far behind, but they're still years behind in supporting OpenGL 4. Supporting a major new OpenGL API has resulted in Mesa 10.0 being called the next release. It has many other features, like performance improvements and new Gallium3D features. OpenGL 3.3 support might also be completed prior to the Mesa 10.0 release in November."
Re:Cool, but why? (Score:5, Informative)
and later on the page...
Re:Cool, but why? (Score:5, Informative)
It is a pretty complicated setup for the uninitiated, but the basics are this:
Mesa was originally just a reference software implementation of OpenGL. People started making graphics drivers that started accelerating parts of the graphics rendering code. These drivers grew quite large and are considered "classic drivers". They are mostly just big monolithic blobs that accelerate whatever they please. The intel driver is one of the only classic drivers remaining.
People wanted something a bit more flexible and easier to extend, so gallium3d was devised. Shaders are compiled into an intermediate language called TGSI, and then passed to the gallium3d drivers to be converted into command streams/assembly that will run on the video card. This system is a bit like a generic interface to the card's capabilities, and can in theory be run independently of OpenGL. Nouveau and radeon both use gallium3d drivers instead of the classic driver model.
All of the modern 3d accelerated drivers also make use of the DRI interface, which is an interface to the linux drivers that allows them to pass draw commands directly to the kernel's drm driver. There are also state trackers, which help generate TGSI for the gallium drivers. These exist for things like dri, gles, opencl, vdpau and help make sharing functionality between the various gallium3d drivers easier.
There are probably a few things wrong in here so don't take it as scripture, but it should give the overall picture of how things work. If anyone notices anything wrong please point it out.