David Airlie recently published UBO and TBO patches for Gallium3D
that allowed the Softpipe driver to work with the OpenGL Uniform Buffer Object and Texture Buffer Object features. Airlie has now worked on AMD's R600 Gallium3D driver to support these OpenGL 3.x features as part of GLSL 1.40 support.
After his previous patches were doing Gallium3D infrastructure work and readying the Softpipe software rasterizer, David Airlie has Uniform Buffer Objects and Texture Buffer Objects working for R600g. For a Radeon HD 5000 (Evergreen) graphics cards, the Gallium3D driver is passing all of the same Piglit tests as the Softpipe driver when the GL Shading Language 1.40 support is enabled.
Texture Buffer Objects were added to the core specification with OpenGL 3.0 and is a 1D texture backed by a buffer object. Uniform Buffer Objects are buffer objects storing uniform data and have been part of the specification since OpenGL 3.1.
The work that he published on Sunday morning consisted of one patch addressing the Uniform Buffer Object support and the second patch did the Texture Buffer Object support and enabling the GLSL 1.40 support. The patch now advertises GL Shading Language 1.40 rather than GLSL 1.30 for hardware that is from Evergreen (Cedar, the lowest-end Radeon HD 5000 series GPU) or newer. While so far he's only tested this support on the Evergreen hardware, he doesn't believe there's much work to enable this support for the Radeon HD 4000 and Radeon HD 6000 series graphics cards. GLSL 1.40 is the shading language version to go with the OpenGL 3.1 specification.
The UBO and TBO patches for R600g can be found on the mesa-dev list
. These new patches for adding more OpenGL 3.x functionality plus the DRM performance improvements
and more Mesa performance improvements from Marek
all this week make for one nice early Christmas gift to open-source AMD Radeon Linux users.