Mesa Gets Support For GL4's Separate Shader Objects

Written by Michael Larabel in Mesa on 6 April 2013 at 06:45 PM EDT. 6 Comments
MESA
Patches were published on Friday for the ARB_separate_shader_object extension of the OpenGL 4.1 specification.

The GL_ARB_separate_program_objects extensions allows for using different shaders for different stages, similar to Microsoft's Direct3D, NVIDIA Cg, and older versions of OpenGL. For a more thorough explanation, the OpenGL registry specification explains:
Conventional GLSL requires multiple shader stages (vertex, fragment, geometry, tessellation control, and tessellation evaluation) to be linked into a single monolithic program object to specify a GLSL shader for each stage.

While GLSL's monolithic approach has some advantages for optimizing shaders as a unit that span multiple stages, all existing GPU hardware supports the more flexible mix-and-match approach.

Shaders written for HLSL9, Cg, the prior OpenGL assembly program extensions, and game console favor a more flexible "mix-and-match" approach to specifying shaders independently for these different shader stages. Many developers build their shader content around the mix-and-match approach where they can use a single vertex shader with multiple fragment shaders (or vice versa).

This extension adopts a "mix-and-match" shader stage model for GLSL allowing multiple different GLSL program objects to be bound at once each to an individual rendering pipeline stage independently of other stage bindings. This allows program objects to contain only the shader stages that best suit the applications needs.
The Mesa support for separate OpenGL shader program objects come in the form of 12 patches and currently reside on the Mesa mailing list. This support comes for both the classic Intel Mesa driver as well as the Gallium3D drivers.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week