The first version of OpenGL, version 1.0, was released on June 30, 1992, by Mark Segal and
Kurt Akeley. Since then, OpenGL has occasionally been extended by releasing a new version of the specification. Such releases define a baseline set of features which all conforming graphics cards must support, and against which new extensions can more easily be written. Each new version of OpenGL tends to incorporate several extensions which have widespread support among graphics-card vendors, although the details of those extensions may be changed.
OpenGL 2.0 Release date: September 7, 2004 OpenGL 2.0 was originally conceived by
3Dlabs to address concerns that OpenGL was stagnating and lacked a strong direction. As a result, the spec was delayed, and the Khronos Group went into a
media blackout until the release of the final OpenGL 3.0 spec. The final specification proved far less revolutionary than the Longs Peak proposal. Instead of removing all immediate mode and fixed functionality (non-shader mode), the spec included them as deprecated features. The proposed object model was not included, and no plans have been announced to include it in any future revisions. As a result, the API remained largely the same with a few existing extensions being promoted to core functionality. Among some developer groups this decision caused something of an uproar, with many developers professing that they would switch to
DirectX in protest. Most complaints revolved around the lack of communication by Khronos to the development community and multiple features being discarded that were viewed favorably by many. Other frustrations included the requirement of DirectX 10 level hardware to use OpenGL 3.0 and the absence of geometry shaders and instanced rendering as core features. Other sources reported that the community reaction was not quite as severe as originally presented, with many vendors showing support for the update.
OpenGL 3.0 Release date: August 11, 2008 OpenGL 3.0 introduced a deprecation mechanism to simplify future revisions of the API. Certain features, marked as deprecated, could be completely disabled by requesting a
forward-compatible context from the windowing system. OpenGL 3.0 features could still be accessed alongside these deprecated features, however, by requesting a
full context. Deprecated features include: • All fixed-function vertex and fragment processing • Direct-mode rendering, using glBegin and glEnd • Display lists • Indexed-color rendering targets •
OpenGL Shading Language version 1.30 Hardware support: Nvidia
GeForce 8 Series and newer, ATI
Radeon HD 2000 series and newer,
Intel HD Graphics in Intel
Sandy Bridge processors and newer.
OpenGL 3.1 Release date: March 24, 2009 OpenGL 3.1 fully removed all of the features which were deprecated in version 3.0, with the exception of wide lines. From this version onwards, it's not possible to access new features using a
full context, or to access deprecated features using a
forward-compatible context. An exception to the former rule is made if the implementation supports the ARB_compatibility extension, but this is not guaranteed. Includes support for GLSL 1.40. Hardware support: Mesa supports ARM Panfrost with Version 21.0.
OpenGL 3.2 Release date: August 3, 2009 OpenGL 3.2 further built on the deprecation mechanisms introduced by OpenGL 3.0, by dividing the specification into a
core profile and
compatibility profile. Compatibility contexts include the previously removed fixed-function APIs, equivalent to the ARB_compatibility extension released alongside OpenGL 3.1, while core contexts do not. OpenGL 3.2 also included an upgrade to GLSL version 1.50.
OpenGL 3.3 Release date: March 11, 2010 OpenGL 3.3 includes minor additions, with the goal of retaining as much functionality as possible from OpenGL 4.0, while keeping support for older hardware.
OpenGL 4.1 Release date: July 26, 2010 • Minimum "maximum texture size" is 16,384 × 16,384 for GPUs implementing this specification. • Improved compatibility for
OpenGL ES 2.0 • Multiple Viewports for the same rendering surface, or one per surface. Hardware support: Nvidia
GeForce 400 series and newer, AMD
Radeon HD 5000 series and newer (FP64 shaders implemented by emulation on some TeraScale GPUs),
Intel HD Graphics in Intel
Haswell processors and newer • Support for shaders with atomic counters and load-store-atomic read-modify-write operations to one level of a texture • Drawing multiple instances of data captured from GPU vertex processing (including tessellation), to enable complex objects to be efficiently repositioned and replicated • Support for modifying an arbitrary subset of a compressed texture, without having to re-download the whole texture to the GPU for significant performance improvements Hardware support: Nvidia
GeForce 400 series and newer, AMD
Radeon HD 5000 series and newer (FP64 shaders implemented by emulation on some TeraScale GPUs), and
Intel HD Graphics in Intel
Haswell processors and newer. •
Compute shaders leveraging GPU parallelism within the context of the graphics pipeline • Shader storage buffer objects, allowing shaders to read and write buffer objects like image load/store from 4.2, but through the language rather than function calls. • Image format parameter queries •
ETC2/EAC texture compression as a standard feature • Full compatibility with
OpenGL ES 3.0 APIs • Debug abilities to receive debugging messages during application development • Texture views to interpret textures in different ways without data replication • Increased memory security and multi-application robustness Hardware support: AMD
Radeon HD 5000 series and newer (FP64 shaders implemented by emulation on some TeraScale GPUs),
Intel HD Graphics in Intel
Haswell processors and newer. Nvidia
GeForce 400 series and newer, • Direct State Access (DSA) – object accessors enable state to be queried and modified without binding objects to contexts, for increased application and middleware efficiency and flexibility. • Flush Control – applications can control flushing of pending commands before context switching – enabling high-performance multithreaded applications; • Robustness – providing a secure platform for applications such as WebGL browsers, including preventing a GPU reset affecting any other running applications; • OpenGL ES 3.1 API and shader compatibility – to enable the easy development and execution of the latest OpenGL ES applications on desktop systems. Hardware support: AMD
Radeon HD 5000 series and newer (FP64 shaders implemented by emulation on some TeraScale GPUs),
Intel HD Graphics in Intel
Broadwell processors and newer (Linux Mesa: Haswell and newer), Nvidia
GeForce 400 series and newer,
OpenGL 4.6 Release date: July 31, 2017 • more efficient, GPU-sided,
geometry processing • more efficient shader execution (Glossary of computer graphics#azdo|) • more information through statistics, overflow query and counters • higher performance through no error handling contexts •
clamping of
polygon offset function, solves a shadow rendering problem •
SPIR-V shaders • Improved
anisotropic filtering Hardware support: AMD
Radeon HD 7000 series and newer (FP64 shaders implemented by emulation on some TeraScale GPUs), Intel
Skylake and newer, Nvidia
GeForce 400 series and newer. Driver support: •
Mesa 19.2 on
Linux supports OpenGL 4.6 for Intel Broadwell and newer. Mesa 20.0 supports AMD Radeon GPUs, while support for Nvidia Kepler+ is in progress. Zink as Emulation Driver with 21.1 and software driver LLVMpipe also support with Mesa 21.0. •
AMD Adrenalin 18.4.1 Graphics Driver on
Windows 7 SP1,
10 version 1803 (April 2018 update) for AMD Radeon HD 7700+, HD 8500+ and newer. Released April 2018. •
Intel 26.20.100.6861 graphics driver on
Windows 10. Released May 2019. •
NVIDIA GeForce 397.31 Graphics Driver on
Windows 7,
8,
10 x86-64 bit only, no
32-bit support. Released April 2018 == Alternative implementations ==