This is possible thanks to the following extensions (more can be read in additional materials):įor those who would like to use the latest OpenGL today, NVidia has released the beta 382.88 (Windows) and 381.26.11 (Linux) drivers - the links are below.
GL_ARB_shader_atomic_counter_ops and GL_ARB_shader_group_vote - add the most basic functions built into shaders, which are standardized between driver vendors, which will allow for increased efficiency.GL_ARB_polygon_offset_clamp (based on GL_EXT_polygon_offset_clamp) - resolves the problem of “light leak”, which is related to shadow rendering.GL_ARB_texture_filter_anisotropic (based on GL_EXT_texture_filter_anisotropic) - allows to improve the visual texture quality by standardizing the anisotropic filtering.GL_ARB_pipeline_statistics_query and GL_ARB_transform_feedback_overflow_query - adds to the OpenGL functionality that was also available in DirectX.GL_ARB_indirect_parameters and GL_ARB_shader_draw_parameters - allow to reduce the CPU overhead associated with the batch rendering of geometry.GL_ARB_gl_spirv and GL_ARB_spirv_extensions - includes a standardization of SPIR-V in OpenGL.OpenGL 4.6 has included extensions such as: Just knowing GLSL and using the glslang tool (link in additional materials) we can translate the GLSL code into SPIR-V. In addition, you do not need to learn SPIR-V. Due to the fact that this functionality is included in the core of OpenGL API, it will be supported on every graphics card that supports OpenGL 4.6. This allows developers to simplify their shaders by having only one shader version in SPIR-V, which should work on every hardware.
SPIR-V is an intermediate language, defined and developed by the Khronos consortium for parallel computing on graphics cards. This latest release of the library includes a number of extensions that were developed by members of AMD, NVidia, Intel, and also includes support for SPIR-V for shaders. The latest version of OpenGL, numbered 4.6, was released on July 2017.