Gallium3D Gets Support For ARB_sample_shading
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)