Gallium3D Gets Support For ARB_sample_shading
Written by Michael Larabel in Mesa on 26 April 2014 at 01:15 PM EDT. 16 Comments
Support has landed within Mesa Gallium3D for handling the OpenGL 4.0 GL_ARB_sample_shading extension.

In terms of this GL4 extension, it's described by the OpenGL specification as:
In standard multisample rendering, an implementation is allowed to assign the same color and texture coordinate values to each sample, which then allows the optimization where the shader is only evaluated once and then distributed to the samples that have been determined to be covered by the primitive currently being rasterized. This can cause aliasing where the input color and texture coordinates are used to generate a result that doesn't antialias itself, for example with alpha-tested transparency.

This extension adds the ability to explicitly request that an implementation use a minimum number of unique set of fragment computation inputs when multisampling a pixel. Specifying such a requirement can reduce aliasing that results from evaluating the fragment computations too few times per pixel.

Ilia Mirkin, one of the frequent Nouveau driver developers in recent times, through a number of commits this morning added basic ARB_sample_sharing support to Gallium3D and its Mesa state tracker. Meanwhile, the Intel i965 classic Mesa DRI driver has already supported this OpenGL 4.0 extension going back several months.

Here's how things are looking for the OpenGL 4.0 support within Mesa/Gallium3D via the GL3/GL4 documentation:
GL 4.0:

  GLSL 4.0                                             not started
  GL_ARB_texture_query_lod                             DONE (i965, nv50, nvc0)
  GL_ARB_draw_buffers_blend                            DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
  GL_ARB_draw_indirect                                 DONE (i965)
  GL_ARB_gpu_shader5                                   started
  - 'precise' qualifier                                not started
  - Dynamically uniform sampler array indices          not started
  - Dynamically uniform UBO array indices              not started
  - Implicit signed -> unsigned conversions            not started
  - Fused multiply-add                                 DONE
  - Packing/bitfield/conversion functions              DONE
  - Enhanced textureGather                             DONE
  - Geometry shader instancing                         DONE
  - Geometry shader multiple streams                   not started
  - Enhanced per-sample shading                        DONE
  - Interpolation functions                            started
  GL_ARB_gpu_shader_fp64                               not started
  GL_ARB_sample_shading                                DONE (i965)
  GL_ARB_shader_subroutine                             not started
  GL_ARB_tessellation_shader                           not started
  GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, softpipe)
  GL_ARB_texture_cube_map_array                        DONE (i965, nv50, nvc0, r600, softpipe)
  GL_ARB_texture_gather                                DONE (i965, nv50, nvc0)
  GL_ARB_transform_feedback2                           DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_transform_feedback3                           DONE (i965, nv50, nvc0, r600, radeonsi)

About The Author
Author picture

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,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 automated benchmarking software. He can be followed via Twitter or contacted via

Related Mesa News
Popular News
Trending Reviews & Featured Articles