Khronos Debuts OpenGL ES 3.2 & New GL Extensions, But No Vulkan This Week

Written by Michael Larabel in Software on 10 August 2015 at 09:00 AM EDT. Page 2 of 4. 57 Comments.

The new extensions for OpenGL today are focused on enhancing shaders, multi-threaded shader compilation, modifiable locations of multi-samples within a pixel, providing OpenGL ES 3.2 compatibility, streamlined sparse textures, etc. While the OpenGL.org registry should be updated soon to reflect the new extensions, here was the drafts of the extensions as of last week with their summaries:

ARB_fragment_shader_interlock

"This extension provides new GLSL built-in functions beginInvocationInterlockARB() and endInvocationInterlockARB() that delimit a critical section of fragment shader code. For pairs of shader invocations with "overlapping" coverage in a given pixel, the OpenGL implementation will guarantee that the critical section of the fragment shader will be executed for only one fragment at a time."

ARB_gpu_shader_int64

This extension adds support for 64-bit scalar and vector integer data types and new built-in functions for dealing with these 64-bit integer types.

ARB_parallel_shader_compile

"Compiling GLSL into implementation-specific code can be a time consuming process, so a GL implementation may wish to perform the compilation in a separate CPU thread. This extension provides a mechanism for the application to provide a hint to limit the number of threads it wants to be used to compile shaders, as well as a query to determine if the compilation process is complete."

ARB_post_depth_coverage

"This extension allows the fragment shader to control whether values in gl_SampleMaskIn[] reflect the coverage after application of the early depth and stencil tests."

ARB_sample_locations

"This extension allows an application to modify the locations of samples within a pixel used in multisample rasterization. Additionally, it allows applications to specify different sample locations for each pixel in a group of adjacent pixels, which may increase antialiasing quality (particularly if a custom resolve shader is used that takes advantage of these different locations)."

ARB_shader_atomic_counter_ops

"The ARB_shader_atomic_counters extension introduced atomic counters, but it limits list of potential operations that can be performed on them to increment, decrement, and query. This extension extends the list of GLSL built-in functions that can operate on atomic counters. The list of new operations include: Addition and subtraction, Minimum and maximum, Bitwise operators (AND, OR, XOR, etc.), and Exchange, and compare and exchange operators.

ARB_shader_ballot

"This extension provides the ability for a group of invocations which execute in lockstep to do limited forms of cross-invocation communication via a group broadcast of a invocation value, or broadcast of a bitarray representing a predicate value from each invocation in the group."

ARB_shader_clock

"This extension exposes a 64-bit monotonically incrementing shader counter which may be used to derive local timing information within a single shader invocation."

ARB_shader_viewport_layer_array

"This extension effectively merges the AMD_vertex_shader_layer and AMD_vertex_shader_viewport_index extensions together and extends them further to allow both outputs to be written from tessellation evaluation shaders."

ARB_sparse_texture2

This extension builds on ARB_sparse_texture to provide new built-in GLSL functions and other additions.

ARB_sparse_texture_clamp

Building on the new ARB_sparse_texture2 to add new built-in GLSL texture lookup functions to "specify a minimum level of detail to use for lookups where the level of detail is computed automatically."

ARB_texture_filter_minmax

"This extension provides a new texture and sampler parameter (TEXTURE_REDUCTION_MODE_ARB) which allows applications to produce a filtered texel value by computing a component-wise minimum (MIN) or maximum (MAX) of the texels that would normally be averaged. The reduction mode is orthogonal to the minification and magnification filter parameters. The filter parameters are used to identify the set of texels used to produce a final filtered value; the reduction mode identifies how these texels are combined."

Yeah, it's a lot of new OpenGL extensions for not declaring a new OpenGL revision... But proceed on to the next page to learn about OpenGL ES 3.2, Vulkan, etc.


Related Articles