OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".
The API is cross-language and multi-platform. The GLU library and the original GLUT are not available for OpenGL ES; freeglut however, supports it. OpenGL ES is managed by the non-profit technology consortium Khronos Group. Vulkan, a next-generation API from Khronos, is made for simpler high performance drivers for mobile and desktop devices.
Versions
Several versions of the OpenGL ES specification now exist. OpenGL ES 1.0 is drawn up against the OpenGL 1.3 specification, OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification. This means that, for example, an application written for OpenGL ES 1.0 should be easily portable to the desktop OpenGL 1.3; as the OpenGL ES is a stripped-down version of the API, the reverse may or may not be true, depending on the particular features used.
OpenGL ES comes with its own version of
shading language (OpenGL ES SL), which is different from
OpenGL SL.
Version 1.0 and 1.1 both have ''common'' (CM) and ''common lite'' (CL) profiles, the difference being that the ''common lite'' profile only supports
fixed-point instead of
floating point
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base.
Numbers of this form ...
data type support, whereas ''common'' supports both.
OpenGL ES 1.0
OpenGL ES 1.0 was released publicly July 28, 2003. OpenGL ES 1.0 is based on the original OpenGL 1.3 API, with much functionality removed and a little bit added. One significant difference between OpenGL and OpenGL ES is that OpenGL ES removed the need to bracket OpenGL library calls with
glBegin
and
glEnd
. Other significant differences are that the calling semantics for primitive rendering functions were changed in favor of vertex arrays, and
fixed-point data types were introduced for vertex coordinates. Attributes were also added to better support the computational abilities of embedded processors, which often lack a
floating point unit
A floating-point unit (FPU), numeric processing unit (NPU), colloquially math coprocessor, is a part of a computer system specially designed to carry out operations on floating-point numbers. Typical operations are addition, subtraction, multipli ...
(FPU). Many other functions and rendering primitives were removed in version 1.0 to produce a lightweight interface, including:
* quad and polygon rendering primitives;
* texgen, line, and polygon stipple;
* polygon mode and antialiased polygon rendering are not supported, although rendering using multisample is still possible (rather than alpha border fragments);
*
ARB_Image
pixel class operations, bitmaps, and 3D textures are not supported;
* several of the more technical drawing modes are eliminated, including frontbuffer and accumulation buffer;
* bitmap operations for copying pixels individually, evaluators, and user selection operations are not allowed;
* display lists and feedback are removed, as are push and pop operations for state attributes;
* and some material parameters were removed, including ''back-face'' parameters and user-defined clip planes.
The actual version is 1.0.0.2.
OpenGL ES 1.1
OpenGL ES 1.1 added features such as mandatory support for multitexture, better multitexture support (including combiners and
dot product
In mathematics, the dot product or scalar productThe term ''scalar product'' means literally "product with a Scalar (mathematics), scalar as a result". It is also used for other symmetric bilinear forms, for example in a pseudo-Euclidean space. N ...
texture operations), automatic
mipmap
In computer graphics, a mipmap (''mip'' being an acronym of the Latin phrase ''multum in parvo'', meaning "much in little") is a pre-calculated, optimized sequence of images, each of which has an image resolution which is a factor of two small ...
generation,
vertex buffer objects, state queries, user clip planes, and greater control over point rendering.
Actual Version is 1.1.12.
OpenGL ES 2.0
OpenGL ES 2.0 was publicly released in March 2007. It is roughly based on OpenGL 2.0, but it eliminates most of the
fixed-function rendering pipeline in favor of a programmable one in a move similar to the transition from OpenGL 3.0 to 3.1. Control flow in shaders is generally limited to forward branching and to loops where the maximum number of iterations can easily be determined at compile time. Almost all rendering features of the transform and lighting stage, such as the specification of materials and light parameters formerly specified by the fixed-function API, are replaced by
shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as '' shading''. Shaders have evolved to perform a variety of s ...
s written by the graphics programmer. As a result, OpenGL ES 2.0 is not
backward compatible
In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with inpu ...
with OpenGL ES 1.1. Some incompatibilities between the desktop version of OpenGL and OpenGL ES 2.0 persisted until OpenGL 4.1, which added the
GL_ARB_ES2_compatibility
extension.
Actual version is 2.0.25.
The Khronos Group has written a document describing the differences between OpenGL ES 2.0 and ordinary OpenGL 2.0.
OpenGL ES 3.0
The OpenGL ES 3.0 specification was publicly released in August 2012. It is backwards compatible with OpenGL ES 2.0, and partially compatible with
WebGL
WebGL (short for Web Graphics Library) is a JavaScript Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...
2.0, as WebGL 2.0 was designed to have a high degree of interoperability with OpenGL ES 3.0.
The current version of the OpenGL ES 3.0 standard is 3.0.6, released in November 2019.
New functionality in the OpenGL ES 3.0 specification includes:
* multiple enhancements to the
rendering pipeline
The computer graphics pipeline, also known as the rendering pipeline, or graphics pipeline, is a framework within computer graphics that outlines the necessary procedures for transforming a 3D computer graphics, three-dimensional (3D) scene into ...
to enable acceleration of advanced visual effects including:
occlusion queries,
transform feedback,
instanced rendering and support for four or more
rendering targets;
* high quality
ETC2 / EAC texture compression as a standard feature, eliminating the need for a different set of
textures for each platform;
* a new version of the GLSL ES
shading language with full support for integer and
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
floating point
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base.
Numbers of this form ...
operations;
* greatly enhanced
texturing functionality including guaranteed support for
floating point
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base.
Numbers of this form ...
textures, 3D textures, depth textures, vertex textures, NPOT textures, R/RG textures, immutable textures, 2D array textures,
swizzles,
LOD and
mip level clamps, seamless
cube maps and sampler objects;
* an extensive set of required, explicitly sized
texture
Texture may refer to:
Science and technology
* Image texture, the spatial arrangement of color or intensities in an image
* Surface texture, the smoothness, roughness, or bumpiness of the surface of an object
* Texture (roads), road surface c ...
and render-buffer formats, reducing implementation variability and making it much easier to write portable applications.
OpenGL ES 3.1
The OpenGL ES 3.1 specification was publicly released in March 2014.
New functionality in OpenGL ES 3.1 includes:
*
Compute shader
In computing, a compute kernel is a routine compiled for high throughput accelerators (such as graphics processing units (GPUs), digital signal processors (DSPs) or field-programmable gate arrays (FPGAs)), separate from but used by a main pro ...
s
* Independent vertex and fragment shaders
* Indirect draw commands
OpenGL ES 3.1 is backward compatible with OpenGL ES 2.0 and 3.0, thus enabling applications to incrementally incorporate new features. Actual Version is 3.1-(November 2016).
OpenGL ES 3.2
The OpenGL ES 3.2 specification was publicly released in August 2015.
New capabilities in OpenGL ES 3.2 include:
* Geometry and
tessellation
A tessellation or tiling is the covering of a surface, often a plane, using one or more geometric shapes, called ''tiles'', with no overlaps and no gaps. In mathematics, tessellation can be generalized to higher dimensions and a variety ...
shaders to efficiently process complex scenes on the GPU.
* Floating point render targets for increased flexibility in higher precision compute operations.
*
ASTC compression to reduce the
memory footprint
Memory footprint refers to the amount of main memory that a program uses or references while running.
The word footprint generally refers to the extent of physical dimensions that an object occupies, giving a sense of its size. In computing, t ...
and bandwidth used to process textures.
* Enhanced blending for sophisticated compositing and handling of multiple color attachments.
* Advanced texture targets such as texture buffers, multisample 2D array and cube map arrays.
* Debug and robustness features for easier code development and secure execution.
Actual State is 3.2.6 July 2019.
Some more extensions are developed or in Development in Mesa for next OpenGL ES Version (see Mesamatrix).
Next generation API is Vulkan.
Platform usage
For complete list of companies and their conformant products, vie
here
OpenGL ES 1.0
OpenGL ES 1.0 added an official 3D
graphics API
A graphics library or graphics API is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in ...
to the
Android and
Symbian
Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian OS ...
OS v8.0a operating systems, as well as by
QNX It is also supported by the
PlayStation 3
The PlayStation 3 (PS3) is a home video game console developed and marketed by Sony Computer Entertainment (SCE). It is the successor to the PlayStation 2, and both are part of the PlayStation brand of consoles. The PS3 was first released on ...
as one of its official graphics APIs (the other one being low level ''libgcm'' library) with
Nvidia's Cg in lieu of GLSL. The PlayStation 3 also includes several features of the 2.0 version of OpenGL ES.
*
Nokia 6630
OpenGL ES 1.1
The 1.1 version of OpenGL ES is supported by:
*
Android 1.6
* Apple
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
for
iPad
The iPad is a brand of tablet computers developed and marketed by Apple Inc., Apple that run the company's mobile operating systems iOS and later iPadOS. The IPad (1st generation), first-generation iPad was introduced on January 27, 2010. ...
,
iPhone
The iPhone is a line of smartphones developed and marketed by Apple that run iOS, the company's own mobile operating system. The first-generation iPhone was announced by then–Apple CEO and co-founder Steve Jobs on January 9, 2007, at ...
, and
iPod Touch
The iPod Touch (stylized as iPod touch) is a discontinued line of iOS-based mobile devices designed and formerly marketed by Apple Inc. with a touchscreen-controlled user interface. As with other iPod models, the iPod Touch can be used as a po ...
*
RIM's BlackBerry 5.0 operating system series (only
BlackBerry Storm 2,
BlackBerry Curve 8530 and later models have the needed hardware)
*
BlackBerry PlayBook
The BlackBerry PlayBook is a mini tablet computer that was developed by BlackBerry. It was manufactured by Quanta Computer, an original design manufacturer (ODM).
*
BlackBerry BB10
* Various
Nokia
Nokia Corporation is a Finnish multinational corporation, multinational telecommunications industry, telecommunications, technology company, information technology, and consumer electronics corporation, originally established as a pulp mill in 1 ...
phones such as Nokia N95, N93, N93i, and N82.
* The Palm
webOS
webOS, also known as LG webOS, is a Linux kernel-based multitasking operating system for smart devices, such as smart TVs, that has also been used as a mobile operating system. Initially developed by Palm, Inc. (which was acquired by Hewlett ...
, using the Plug-in Development Kit
*
Nintendo 3DS
The is a foldable dual-screen handheld game console produced by Nintendo. Announced in March 2010 as the successor to the Nintendo DS, the console was released originally on February 26, 2011 and went through various revisions in its lifetime, ...
OpenGL ES 2.0
Supported by:
* The Android platform since Android 2.0 through NDK and Android 2.2 through Java
*
AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
on
AmigaOne
AmigaOne is a series of computers intended to run AmigaOS 4 developed by Hyperion Entertainment, as a successor to the Amiga series by Commodore International. Unlike the original Amiga computers which used Motorola 68k processors, the AmigaOne ...
with
Warp3D Nova and compatible
Radeon HD graphics card.
* Apple
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
5 or later in
iPad
The iPad is a brand of tablet computers developed and marketed by Apple Inc., Apple that run the company's mobile operating systems iOS and later iPadOS. The IPad (1st generation), first-generation iPad was introduced on January 27, 2010. ...
,
iPad Mini,
iPhone
The iPhone is a line of smartphones developed and marketed by Apple that run iOS, the company's own mobile operating system. The first-generation iPhone was announced by then–Apple CEO and co-founder Steve Jobs on January 9, 2007, at ...
3GS or later, and
iPod Touch
The iPod Touch (stylized as iPod touch) is a discontinued line of iOS-based mobile devices designed and formerly marketed by Apple Inc. with a touchscreen-controlled user interface. As with other iPod models, the iPod Touch can be used as a po ...
3rd generation or later
*
BlackBerry
BlackBerry is a discontinued brand of handheld devices and related mobile services, originally developed and maintained by the Canadian company Research In Motion (RIM, later known as BlackBerry Limited) until 2016. The first BlackBerry device ...
devices with
BlackBerry OS
BlackBerry OS is a discontinued proprietary mobile operating system developed by Canadian company Research In Motion (now BlackBerry Limited) for its BlackBerry line of smartphone handheld devices. The operating system provides multitasking ...
7.0 and
Blackberry 10
BlackBerry 10 (BB10) is a proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry Limited (formerly known as Research In Motion). Released in January 2013, BlackBerry 10 is a complete rework from t ...
, as well as the
BlackBerry PlayBook
The BlackBerry PlayBook is a mini tablet computer that was developed by BlackBerry. It was manufactured by Quanta Computer, an original design manufacturer (ODM).
*
Google Native Client
Google Native Client (NaCl) is a discontinued sandboxing technology for running either a subset of Intel x86, ARM, or MIPS native code, or a portable executable, in a sandbox. It allows safely running native code from a web browser, independ ...
*
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
HD Graphics 965G / X3000 and higher (Linux)
*
Nvidia
Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
(Android), Curie NV40+: Linux, Windows
* Various
Nokia
Nokia Corporation is a Finnish multinational corporation, multinational telecommunications industry, telecommunications, technology company, information technology, and consumer electronics corporation, originally established as a pulp mill in 1 ...
phones (such as
Symbian
Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian OS ...
^3 based
Nokia N8
The Nokia N8 is a touchscreen-based smartphone developed by Nokia. Announced on 27 April 2010, the Nokia N8 was the first device to run on the Symbian^3 mobile operating system and it was the company's flagship device for the year. It was rel ...
,
MeeGo
MeeGo is a discontinued Linux distribution hosted by the Linux Foundation, using source code from the operating systems Moblin (produced by Intel) and Maemo (produced by Nokia). MeeGo was primarily targeted at mobile devices and information app ...
based
Nokia N9, and
Maemo
Maemo is a Linux-based software platform originally developed by Nokia, now developed by the Free software movement, community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and Software development ...
based
Nokia N900
The Nokia N900 is a smartphone made by Nokia, launched at Nokia World on 2 September 2009 and released in November. Superseding the Nokia N810, the N900's default operating system, Maemo 5, is a Linux-based OS originally developed for the Nokia ...
)
* Palm
webOS
webOS, also known as LG webOS, is a Linux kernel-based multitasking operating system for smart devices, such as smart TVs, that has also been used as a mobile operating system. Initially developed by Palm, Inc. (which was acquired by Hewlett ...
, using the Plug-in Development Kit
* The
Pandora
In Greek mythology, Pandora was the first human woman created by Hephaestus on the instructions of Zeus. As Hesiod related it, each god cooperated by giving her unique gifts. Her other name—inscribed against her figure on a white-ground '' ky ...
console
* The
Raspberry Pi
Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
* The
Odroid
* Various
Samsung
Samsung Group (; stylised as SΛMSUNG) is a South Korean Multinational corporation, multinational manufacturing Conglomerate (company), conglomerate headquartered in the Samsung Town office complex in Seoul. The group consists of numerous a ...
mobile phones (such as the
Wave
In physics, mathematics, engineering, and related fields, a wave is a propagating dynamic disturbance (change from List of types of equilibrium, equilibrium) of one or more quantities. ''Periodic waves'' oscillate repeatedly about an equilibrium ...
)
* Web browsers (
WebGL
WebGL (short for Web Graphics Library) is a JavaScript Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...
)
* The
GCW Zero
The GCW Zero is a Linux-based open-source handheld video game console created by a start up, Game Consoles Worldwide. The GCW Zero was funded by a successful crowdfunding campaign on kickstarter.com on 29 January 2013 with US$238,499 collected, ...
console
* The
PlayStation Vita
The PlayStation Vita (PS Vita) is a handheld game console developed and marketed by Sony Computer Entertainment. It was first released in Japan on December 17, 2011, then in other international territories on February 22, 2012, and was produced ...
portable console
* The
PlayStation 4
The PlayStation 4 (PS4) is a home video game console developed by Sony Interactive Entertainment. Announced as the successor to the PlayStation 3 in February 2013, it was launched on November 15, 2013, in North America, November 29, 2013, in ...
console
OpenGL ES 3.0
Supported by:
* Android since version 4.3, on devices with appropriate hardware and drivers, including:
**
Nexus 7 (2013)
**
Nexus 4
**
Nexus 5
**
Nexus 10
**
HTC Butterfly S
**
HTC One/
One Max
**
LG G2
**
LG G Pad 8.3
**
Samsung Galaxy J5
**
Samsung Galaxy J5 (2016)
**
Samsung Galaxy S4 (Snapdragon version)
**
Samsung Galaxy S5
**
Samsung Galaxy Note 3
**
Samsung Galaxy Note 10.1 (2014 Edition)
**
Sony Xperia M
**
Sony Xperia Z/ZL
**
Sony Xperia Z1
**
Sony Xperia Z Ultra
**
Sony Xperia Tablet Z
* iOS since version 7, on devices including:
**
iPhone 5S
**
iPad Air
**
iPad mini with Retina display
* BlackBerry 10 OS since version 10.2, on devices including:
**
BlackBerry Z3
**
BlackBerry Z30
**
BlackBerry Passport
Supported by some recent versions of these GPUs:
*
Adreno
Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.
History
Adreno is an integrated graphics processing unit (GPU) within Qualcomm's Snapdrago ...
300 and 400 series (
Android,
BlackBerry 10
BlackBerry 10 (BB10) is a proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry Limited (formerly known as Research In Motion). Released in January 2013, BlackBerry 10 is a complete rework from t ...
, Windows10
Windows RT
Windows RT is a mobile operating system developed by Microsoft and released alongside Windows 8 on October 26, 2012. It is a version of Windows 8 or Windows 8.1 built for the 32-bit ARM architecture (ARMv7), designed to take advantage of th ...
)
*
Mali
Mali, officially the Republic of Mali, is a landlocked country in West Africa. It is the List of African countries by area, eighth-largest country in Africa, with an area of over . The country is bordered to the north by Algeria, to the east b ...
T600 series onwards (Android,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
7)
*
PowerVR
PowerVR is a division of Imagination Technologies (formerly VideoLogic) that develops hardware and software for 2D and 3D rendering, and for video encoding, video decoding, decoding, associated image processing and DirectX, OpenGL ES, OpenVG, and ...
Series6 (
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
, Linux)
*
Vivante
Vivante Corporation was a Fabless manufacturing, fabless semiconductor industry, semiconductor company headquartered in Sunnyvale, California, with an R&D center in Shanghai, China. The company was founded in 2004 as GiQuila and focused on the ...
(Android,
OS X
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
10.8.3, Windows 7)
*
Nvidia
Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
(Android), Tesla G80+: Linux, Windows 7+
*
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
HD Graphics Sandy Bridge and higher (Linux)
* AMD Terascale and actual GCN-architecture (Windows, Linux)
* LLVMpipe and Softpipe: soft drivers in Mesa
* VIRGL: virtual Driver for virtual machines in 2018 with Mesa 18.1 (See Mesamatrix.net)
OpenGL ES 3.1
Supported by Windows, Linux, Android (since version 5.0) on devices with appropriate hardware and drivers, including:
*
Adreno
Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.
History
Adreno is an integrated graphics processing unit (GPU) within Qualcomm's Snapdrago ...
400 series
*
Adreno
Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.
History
Adreno is an integrated graphics processing unit (GPU) within Qualcomm's Snapdrago ...
500 series (Mesa 18.1 for Linux and Android)
* AMD Terascale and actual GCN-architecture (Windows, Linux (r600, radeonSI))
* Intel HD Graphics for
Intel Atom Z3700 series (Android)
* Intel HD Graphics for Intel Celeron N and J series (Android)
* Intel HD Graphics for Intel Pentium N and J series (Android)
*
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
HD Graphics Haswell and higher (Linux Mesa: previous Ivy Bridge nearly without stencil texturing)
* Mali T6xx (midgard) series onwards (Android, Linux)
*
Nvidia
Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
GeForce 400 series onwards (Windows, Linux)
* Nvidia Tegra K1 (Android, Linux)
* Nvidia Tegra X1 (Android)
* PowerVR Series 6, 6XE, 6XT, 7XE and 7XT (Linux, Android)
*
Vivante
Vivante Corporation was a Fabless manufacturing, fabless semiconductor industry, semiconductor company headquartered in Sunnyvale, California, with an R&D center in Shanghai, China. The company was founded in 2004 as GiQuila and focused on the ...
GC2000 series onwards (optional with GC800 and GC1000)
* panfrost: ARM panfrost support (Linux Mesa 22.0)
* v3d: Driver for Broadcom VideoCore in Mesa (Linux)
** The
Raspberry Pi
Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
4 and 5
* VIRGL: virtual Driver for virtual machines in 2018 with Mesa 18.1 (See Mesamatrix.net)
* LLVMpipe: software driver in Mesa 20.2 (Linux)
* softpipe: software driver in Mesa 20.3 (Linux)
* Zink: emulation driver in Mesa 21.1 (Linux)
* d3d12: WSL2 linux driver for Microsoft 10+ (Mesa 22.0)
* Apple M1 and M2 graphics in Fedora Asahi Remix (Linux)
Android Extension Pack
Android Extension Pack (AEP) is a set of OpenGL ES 3.1 extensions, all bundled into a single extension introduced by Google in 2014. This allows applications to use all of the features of the set of extensions, while only testing for the presence of a single one. The AEP was officially added to Android Lollipop to provide extra features like tessellation over what was officially in the GLES 3.1 revision. OpenGL ES 3.2 update is largely made up of the AEP additions, which are already present in desktop OpenGL.
OpenGL ES 3.2

OpenGL ES 3.2, incorporating the
Android Extension Pack (AEP), "boasts a small number of improvements over last year’s OpenGL ES 3.1. Both make use of similar features from the AEP. From the AEP, OpenGL ES 3.2 compliant hardware will support Tessellation for additional geometry detail, new geometry shaders, ASTC texture compression for a smaller memory bandwidth footprint, floating point render targets for high accuracy compute processes, and new debugging features for developers. These high-end features are already found in the group’s full OpenGL 4 specification."
Supported by Windows, Linux, Android (since version 6.0 possible, 7.0+ Vulkan 1.0 and OpenGL ES 3.2 needed) on devices with appropriate hardware and drivers, including:
*
Adreno
Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.
History
Adreno is an integrated graphics processing unit (GPU) within Qualcomm's Snapdrago ...
420 and newer (Android, Linux (freedreno))
* AMD GCN-architecture (Windows, Linux (Mesa 18.2 with radeonSI))
*
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
HD Graphics Skylake and higher (Linux)
* Mali-T760 and newer (Android, Linux)
* Nvidia GeForce 400 series (Fermi) and newer (Windows, Linux)
* VIRGL: virtual Driver for virtual machines in 2018 with Mesa 18.1 (See Mesamatrix.net)
* LLVMpipe: software driver in Mesa 20 (Linux)
* Zink: Vulkan emulation driver in Mesa 21.2 (Linux)
Deprecation in Apple platforms
OpenGL ES (and OpenGL) was
deprecated
Deprecation is the discouragement of use of something human-made, such as a term, feature, design, or practice. Typically something is deprecated because it is claimed to be inferior compared to other options available.
Something may be deprec ...
in Apple's operating systems in favour of its own proprietary
Metal
A metal () is a material that, when polished or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, electricity and thermal conductivity, heat relatively well. These properties are all associated wit ...
graphics API
A graphics library or graphics API is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in ...
, but still worked in up to at least
iOS 12
iOS 12 is the iOS version history, twelfth major release of the iOS mobile operating system developed by Apple Inc., Apple. Aesthetically similar to its predecessor, iOS 11, it focuses more on performance than on new features, quality improvemen ...
.
The future
There is currently no plan for a new core version of OpenGL ES, as adoption of
Vulkan
Vulkan is a cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and o ...
has been deemed to displace it in embedded and mobile applications. Development of extensions to OpenGL ES continues as of 2017.
OpenGL compatibility
A few libraries have been created to emulate OpenGL calls using GL ES:
*
Nvidia
Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
offers a 2-clause
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
d library called Regal, originally started by Cass Everitt. It was last updated in 2016. Regal is used for example by
Google's NaCl.
* The
MIT license
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
d GL4ES emulates OpenGL 2.1/1.5 using GL ES 2.0/1.1. It is based on glshim.
See also
*
Direct3D
Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
– Windows API for high-performance 3D graphics, with 3D acceleration hardware support
*
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
– Windows API for handling tasks related to graphics and video
*
Metal
A metal () is a material that, when polished or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, electricity and thermal conductivity, heat relatively well. These properties are all associated wit ...
– low level, high-performance 3D accelerated graphics library for Apple platforms
*
OpenSL ES – API for audio on embedded systems, developed by the Khronos Group
*
ANGLE (software)
ANGLE (''Almost Native Graphics Layer Engine'') is an open source, cross-platform graphics engine abstraction layer developed by Google. ANGLE translates OpenGL ES 2/3 calls to DirectX 9, 11, OpenGL, Vulkan or Metal API calls. It is a portable v ...
– Google developed library to turn OpenGL ES calls into those of DirectX or Vulkan
*
Mobile 3D Graphics API - a
graphics API
A graphics library or graphics API is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in ...
and
file format
A file format is a Computer standard, standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary format, pr ...
specification for developing
Java ME
Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of porting, portable code for embedded system, embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digita ...
applications
References
Further reading
*
*
*
*
External links
*
Public bug trackingOpenGL ES Conformant companiesPublic forumsList of OpenGL ES compatible devicesOpenGL home pageOpenGL ES 1.1 & 2.0 Emulator from ARM Link unusable. Do not click.
OpenGL ES 3.0 Emulator from ARMLink unusable. Do not click.
{{DEFAULTSORT:Opengl Es
3D graphics APIs
Es
Virtual reality
Augmented reality