12 August 2012

OpenGL 4.3

OpenGL 4.3 has just arrived!

It has been a while (almost one year) since the last update of the API but finally we have it. Moreover this new version brings some quite interesting stuff and moves graphics API a bit further.
I am not going to write a full and a professional review of the API but I try to mention some more important features and concepts.

So what do we get with this new release?


At first some links to look for more info:

My view

Several items that gained my attention:
  • ES3_compatibility - Adds missing features to OpenGL so that code from OpenGL ES 3.0 can be easily moved to desktop code. This extension follows the  ES2_compatibility. All in all we get
    • ReleaseShaderCompiler function and functions for loading shaders from binaries
    • Fixed point precision for vertex attributes
    • Support for ES shading language, we can use #version 300 es for GLSL ES 3.0 and #version 100 es for GLSL ES 1.0
  • compute_shader - Although OpenCL is a great platform and it gains more and more popularity it is not perfect for OpenGL cooperation. For instance you have to do context switching which may cost a lot. Moreover OpenCL is sometimes to generic and too powerful. Compute Shaders can be executed in the OpenGL contexts. Another important feature is that 'interop' is simpler (same language syntax, shared uniforms, resources, etc). This makes writing generic computation a bit easier.
  • DEBUG features - lots of debug features that gives us more power to handle errors and know what is going wrong. glGetError is to simple and not enough any more.
  • vertex_attrib_binding - more flexibility with vertex attributes


When comparing with OpenGL 3.0 the new release has tons of new stuff. It is quite hard to follow new standards so quickly! All in all we can see that OpenGL becomes more and more generic and programmable. Maybe in some time we will be able to write custom pipelines in Compute Shaders? New and 'hot' extensions are waiting to be in the standard: NW_bindless_texture and AMD_sparse_texture (for virtual texturing). Morever the ES version is now like OpenGL 3.0 so building multi-platform apps becomes easier.
We will see what happens next...
Books about OpenGL 4.3:

Interested in new blog posts and occasional updates? Please sign up for my free newsletter.

Copyright Bartlomiej Filipek, 2016, Blogger platform
Any opinions expressed herein are in no way representative of those of my employers.
This site contains ads or referral links, which provide me with a commission. Thank you for your understanding.