Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
OpenGL ES
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Subset of the OpenGL API for embedded systems}} '''OpenGL for Embedded Systems''' ('''OpenGL ES''' or '''GLES''') is a subset of the [[OpenGL]] 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 [[GLSL|OpenGL SL]].<ref>{{cite web|url=https://stackoverflow.com/a/8872201/239247|title=What versions of GLSL can I use in OpenGL ES 2.0?|publisher=Stack Overflow}}</ref>{{rs?|date=January 2025}} 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 arithmetic|fixed-point]] instead of [[floating point]] 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 <code>glBegin</code> and <code>glEnd</code>. Other significant differences are that the calling semantics for primitive rendering functions were changed in favor of vertex arrays, and [[fixed-point arithmetic|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]] (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); * <code>ARB_Image</code> 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.<ref>{{cite web|url=https://www.khronos.org/registry/OpenGL/specs/es/1.0/opengles_spec_1_0.pdf|title=OpenGL ES Common/Common-Lite Profile Specification - Version 1.0.02 (Annotated)|last=Blythe|first=David|website=registry.khronos.org|archive-url=https://web.archive.org/web/20240922061823/https://registry.khronos.org/OpenGL/specs/es/1.0/opengles_spec_1_0.pdf|archive-date=22 September 2024|url-status=live}}</ref> {| class="wikitable" style="width: 100%" |- ! scope="col" style="width: 20%" | Extension Name ! scope="col" style="width: 25%" | Sort #Number ! scope="col" | Details |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_byte_coordinates.txt OES_byte_coordinates] |OpenGL ES Extension #4 || (formerly OpenGL Extension #291) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_compressed_paletted_texture.txt OES_compressed_paletted_texture] |OpenGL ES Extension #6 ||(formerly OpenGL Extension #294) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_fixed_point.txt OES_fixed_point] |OpenGL ES Extension #9 || (formerly OpenGL Extension #292) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_query_matrix.txt OES_query_matrix] |OpenGL ES Extension #16 ||(formerly OpenGL Extension #296) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_read_format.txt OES_read_format] |OpenGL ES Extension #17 || (formerly OpenGL Extension #295) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_single_precision.txt OES_single_precision] |OpenGL ES Extension #18 ||(formerly OpenGL Extension #293) |- | |optional || Mesa (most drivers) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt OES_compressed_ETC1_RGB8_texture] |OpenGL ES Extension #5 || |} ===OpenGL ES 1.1=== OpenGL ES 1.1 added features such as mandatory support for multitexture, better multitexture support (including combiners and [[dot product]] texture operations), automatic [[mipmap]] generation, [[vertex buffer object]]s, state queries, user clip planes, and greater control over point rendering.<ref>{{cite web|url=http://developer.amd.com/wordpress/media/2012/10/GDC06-GLES_Tutorial_Day-Munshi-OpenGLES_Overview.pdf|title=OpenGL ES 1.1+ and ES 2.0|website=developer.amd.com|publisher=GameDevelopers Conference|archive-url=https://web.archive.org/web/20210224091401/http://developer.amd.com/wordpress/media/2012/10/GDC06-GLES_Tutorial_Day-Munshi-OpenGLES_Overview.pdf|archive-date=24 February 2021|url-status=dead}}</ref> Actual Version is 1.1.12.<ref>{{cite web|url=https://registry.khronos.org/OpenGL/specs/es/1.1/es_full_spec_1.1.pdf|title=OpenGL ES Common/Common-Lite Profile Specification - Version 1.1.12 (Full Specification)|last1=Munshi|last2=Leech|first1=Aaftab|first2=Jon|date=24 April 2008|website=registry.khronos.org|archive-url=https://web.archive.org/web/20241231052016/https://registry.khronos.org/OpenGL/specs/es/1.1/es_full_spec_1.1.pdf|archive-date=31 December 2024|url-status=live}}</ref> {| class="wikitable" style="width: 100%" |- ! scope="col" style="width: 20%" | Extension Name ! scope="col" style="width: 15%" | Sort #Number |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_draw_texture.txt OES_draw_texture] |OpenGL ES Extension #7 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_matrix_get.txt OES_matrix_get] |OpenGL ES Extension #11 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_point_size_array.txt OES_point_size_array] |OpenGL ES Extension #14 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_point_sprite.txt OES_point_sprite] |OpenGL ES Extension #15 |- |optional | Mesa (all drivers) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_framebuffer_object.txt OES_framebuffer_object] |OpenGL ES Extension #10 (became core in ES 2.0)<ref>{{cite web|title=stack overflow: glGenFramebuffersOES vs glGenFramebuffers?|access-date=2022-04-19|url=https://stackoverflow.com/questions/3272748/glgenframebuffersoes-vs-glgenframebuffers}}</ref> |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image.txt OES_EGL_image] |OpenGL ES Extension #23 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt OES_EGL_image_external] |OpenGL ES Extension #87 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_required_internalformat.txt OES_required_internalformat] |OpenGL ES Extension # TBD |} ==={{Anchor|2.0}}OpenGL ES 2.0=== OpenGL ES 2.0 was publicly released in March 2007.<ref>{{cite web |url=http://www.khronos.org/news/press/releases/finalized_opengl_es_20_specification/ |title=Khronos Press Releases - OpenGL ES 2.0 |publisher=Khronos.org |date=2007-03-05 |access-date=2010-12-23 |archive-url=https://web.archive.org/web/20101228111715/http://www.khronos.org/news/press/releases/finalized_opengl_es_20_specification/ |archive-date=2010-12-28 }}</ref> 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.<ref>Edward Angel, Dave Shreiner, ''Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL'', 6th Edition, p. xxi-xxii, {{ISBN|978-0-13-254523-5}}</ref> 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.<ref>{{cite web|title=The OpenGL® ES Shading Language|publisher=Khronos.org|access-date=2013-02-16|url=http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf}}</ref> 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]]s written by the graphics programmer. As a result, OpenGL ES 2.0 is not [[backward compatibility|backward compatible]] 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 <code>GL_ARB_ES2_compatibility</code> extension.<ref>{{cite web|url=http://www.opengl.org/registry/doc/glspec41.core.20100725.pdf|title=The OpenGL(R)Graphics System: A Specification (Version 4.1 (Core Profile)|date=July 25, 2010}}</ref> Actual version is 2.0.25.<ref>{{cite web|url=https://registry.khronos.org/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf|title=OpenGL ES Common Profile Specification - Version 2.0.25 (Full Specification)|last1=Munshi|last2=Leech|first1=Aaftab|first2=Jon|date=2 November 2010|website=registry.khronos.org|archive-url=https://web.archive.org/web/20250312175627/https://registry.khronos.org/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf|archive-date=12 March 2025|url-status=live}}</ref> The Khronos Group has written a document describing the differences between OpenGL ES 2.0 and ordinary OpenGL 2.0.<ref>{{cite web|url=https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_cm_spec_2.0.pdf|title=OpenGL© ES – Common Profile Specification 2.0.25 (Difference Specification)|date=November 2, 2010}}</ref> {| class="wikitable" style="width: 100%" |- ! scope="col" style="width: 20%" | Extension Name ! scope="col" style="width: 20%" | Sort #Number |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_cube_map.txt OES_texture_cube_map] |OpenGL ES Extension #20 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_npot.txt OES_texture_npot] |OpenGL ES Extension #37 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth24.txt OES_depth24] |OpenGL ES Extension #24 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth_texture.txt OES_depth_texture] |OpenGL ES Extension #44 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_element_index_uint.txt OES_element_index_uint] |OpenGL ES Extension #26 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_fbo_render_mipmap.txt OES_fbo_render_mipmap] |OpenGL ES Extension #27 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_get_program_binary.txt OES_get_program_binary] |OpenGL ES Extension #47 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_mapbuffer.txt OES_mapbuffer] |OpenGL ES Extension #29 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_packed_depth_stencil.txt OES_packed_depth_stencil] |OpenGL ES Extension #43 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_rgb8_rgba8.txt OES_rgb8_rgba8] |OpenGL ES Extension #30 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_stencil8.txt OES_stencil8] |OpenGL ES Extension #33 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_vertex_half_float.txt OES_vertex_half_float] |OpenGL ES Extension #38 |- |additional |in MESA (all drivers) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image.txt OES_EGL_image] |OpenGL ES Extension #23 (different for 1.1) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt OES_EGL_image_external] |OpenGL ES Extension #87 (different for 1.1) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_3D.txt OES_texture_3D] |OpenGL ES Extension #34 (became core in ES 3.0)<ref name="auto">{{cite web|title=OpenGL ES 3.0 Programming Guide|publisher=Pearson Education, Inc.|access-date=2022-04-18|url=https://www.rose-hulman.edu/class/csse/csse351/reference/OpenGL_ES_3.0_Programming_Guide.pdf}}</ref> |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_float_linear.txt OES_texture_float_linear OES_texture_half_float_linear] |OpenGL ES Extension #35, extended in ES 3.0 and 3.1 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_float.txt OES_texture_float OES_texture_half_float] |OpenGL ES Extension #36, extended in ES 3.0 and 3.1 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_standard_derivatives.txt OES_standard_derivatives] |OpenGL ES Extension #45 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_vertex_array_object.txt OES_vertex_array_object] |OpenGL ES Extension #71 (became core in ES 3.0)<ref name="auto"/> |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_surfaceless_context.txt OES_surfaceless_context] |OpenGL ES Extension #116 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth_texture_cube_map.txt OES_depth_texture_cube_map] |OpenGL ES Extension #136 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_filter_anisotropic.txt EXT_texture_filter_anisotropic] |OpenGL ES Extension #41 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_type_2_10_10_10_REV.txt EXT_texture_type_2_10_10_10_REV] |OpenGL ES Extension #42 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_dxt1.txt EXT_texture_compression_dxt1] |OpenGL ES Extension #49 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_format_BGRA8888.txt EXT_texture_format_BGRA8888] |OpenGL ES Extension #51 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_discard_framebuffer.txt EXT_discard_framebuffer] |OpenGL ES Extension #64 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_minmax.txt EXT_blend_minmax] |OpenGL ES Extension #65 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_read_format_bgra.txt EXT_read_format_bgra] |OpenGL ES Extension #66 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multi_draw_arrays.txt EXT_multi_draw_arrays] |OpenGL ES Extension #69 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_frag_depth.txt EXT_frag_depth] |OpenGL ES Extension #86 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_unpack_subimage.txt EXT_unpack_subimage] |OpenGL ES Extension #90 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_rg.txt EXT_texture_rg] |OpenGL ES Extension #103 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers.txt EXT_draw_buffers] |OpenGL ES Extension #151 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_compressed_ETC1_RGB8_sub_texture.txt EXT_compressed_ETC1_RGB8_sub_texture] |OpenGL ES Extension #188 |- |[https://www.khronos.org/registry/OpenGL/extensions/NV/NV_draw_buffers.txt NV_draw_buffers] |OpenGL ES Extension #91 |- |[https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fbo_color_attachments.txt NV_fbo_color_attachments] |OpenGL ES Extension #92 |- |[https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_buffer.txt NV_read_buffer] |OpenGL ES Extension #93 |- |[https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_depth_stencil.txt NV_read_depth_stencil] |OpenGL ES Extension #94 |- |[https://www.khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_texture_compression_dxt.txt ANGLE_texture_compression_dxt] |OpenGL ES Extension #111 |} ==={{Anchor|3.0}}OpenGL ES 3.0=== The OpenGL ES 3.0 specification<ref>{{Cite web|url=https://registry.khronos.org/OpenGL/index_es.php|title=Khronos OpenGL ES Registry - The Khronos Group Inc|website=registry.khronos.org}}</ref> was publicly released in August 2012.<ref>{{cite web|url=http://www.khronos.org/news/press/khronos-releases-opengl-es-3.0-specification |title=Khronos Releases OpenGL ES 3.0 Specification to Bring Mobile 3D Graphics to the Next Level |publisher=Khronos |date=2012-08-06 |access-date=2012-08-06}}</ref> It is backwards compatible with OpenGL ES 2.0, and partially compatible with [[WebGL]] 2.0,<ref>{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API|title=WebGL: 2D and 3D graphics for the web|publisher=Mozilla|access-date=2023-06-30}}</ref> as WebGL 2.0 was designed to have a high degree of interoperability with OpenGL ES 3.0.<ref>{{Cite web|url=https://registry.khronos.org/webgl/specs/latest/2.0/|title=WebGL 2.0 Specification|website=registry.khronos.org}}</ref> The current version of the OpenGL ES 3.0 standard is 3.0.6, released in November 2019.<ref>{{cite web|url=https://registry.khronos.org/OpenGL/specs/es/3.0/es_spec_3.0.pdf|title=OpenGL ES - Version 3.0.6|last1=Leech|last2=Lipchak|first1=Jon|first2=Benj|date=1 November 2019|website=registry.khronos.org|archive-url=https://web.archive.org/web/20250131033513/https://registry.khronos.org/OpenGL/specs/es/3.0/es_spec_3.0.pdf|archive-date=31 January 2025|url-status=live}}</ref> New functionality in the OpenGL ES 3.0 specification includes: * multiple enhancements to the [[rendering pipeline]] to enable acceleration of advanced visual effects including: [[occlusion queries]], [[transform feedback]], [[Geometry instancing|instanced rendering]] and support for four or more [[Render Target|rendering targets]]; * high quality [[Ericsson Texture Compression#ETC2 and EAC|ETC2 / EAC]] [[texture compression]] as a standard feature, eliminating the need for a different set of [[Texture mapping|textures]] for each platform; * a new version of the GLSL ES [[shading language]]<ref>{{Cite web|url=https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf|title=GLSL ES 3.0 Specification|publisher=Khronos|access-date=2023-06-30}}</ref> with full support for integer and [[32-bit]] [[floating point]] operations; * greatly enhanced [[Texture mapping|texturing]] functionality including guaranteed support for [[floating point]] textures, 3D textures, depth textures, vertex textures, NPOT textures, R/RG textures, immutable textures, 2D array textures, [[Swizzling (computer graphics)|swizzles]], [[Level of detail (computer graphics)|LOD]] and [[Mipmap|mip level]] clamps, seamless [[Cube mapping|cube maps]] and sampler objects; * an extensive set of required, explicitly sized [[Texture mapping|texture]] and render-buffer formats, reducing implementation variability and making it much easier to write portable applications. {| class="wikitable" style="width: 100%" |- ! scope="col" style="width: 20%" | Extension Name ! scope="col" style="width: 25%" | Sort #Number ! scope="col" | Details |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_context_flush_control.txt KHR_context_flush_control] |OpenGL ES Extension #191 | (for GL_KHR_context_flush_control only) |- | additional | in MESA (all drivers) | |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_compression_astc.txt OES_texture_compression_astc] |OpenGL ES Extension #162 | |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_border_clamp.txt EXT_texture_border_clamp] |OpenGL ES Extension #182 | |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_elements_base_vertex.txt EXT_draw_elements_base_vertex] |OpenGL ES Extension #204 | |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external_essl3.txt OES_EGL_image_external_essl3] |OpenGL ES Extension #220 | |- |[https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_shader_integer_functions.txt MESA_shader_integer_functions] |OpenGL ES Extension #495 | |} ==={{Anchor|3.1}}OpenGL ES 3.1=== The OpenGL ES 3.1 specification<ref>{{Cite web|url=https://registry.khronos.org/OpenGL/index_es.php|title=Khronos OpenGL ES Registry - The Khronos Group Inc|website=registry.khronos.org}}</ref> was publicly released in March 2014. New functionality in OpenGL ES 3.1 includes:<ref>{{cite web|url=https://www.khronos.org/news/press/khronos-releases-opengl-es-3.1-specification |title=Khronos Releases OpenGL ES 3.1 Specification |publisher=Khronos.org |date=2014-03-17 |access-date=2014-03-17}}</ref> * [[Compute shader]]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).<ref>{{cite web|url=https://registry.khronos.org/OpenGL/specs/es/3.1/es_spec_3.1.pdf|title=OpenGL ES - Version 3.1|last=Leech|first=Jon|date=3 November 2016|website=registry.khronos.org|archive-url=https://web.archive.org/web/20240922061823/https://registry.khronos.org/OpenGL/specs/es/3.1/es_spec_3.1.pdf|archive-date=22 September 2024|url-status=live}}</ref> {| class="wikitable" style="width: 100%" |- ! scope="col" style="width: 20%" | Extension Name ! scope="col" style="width: 15%" | Sort #Number |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_arrays_of_arrays.txt ARB_arrays_of_arrays] |ARB Extension #120 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_compute_shader.txt ARB_compute_shader] |ARB Extension #122 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_explicit_uniform_location.txt ARB_explicit_uniform_location] |ARB Extension #128 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_framebuffer_no_attachments.txt ARB_framebuffer_no_attachments] |ARB Extension #130 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_program_interface_query.txt ARB_program_interface_query] |ARB Extension #134 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_atomic_counters.txt ARB_shader_atomic_counters] |ARB Extension #114 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_image_load_store.txt ARB_shader_image_load_store] |ARB Extension #115 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_storage_buffer_object.txt ARB_shader_storage_buffer_object] |ARB Extension #137 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_separate_shader_objects.txt ARB_separate_shader_objects] |ARB Extension #97 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_stencil_texturing.txt ARB_stencil_texturing] |ARB Extension #138 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_attrib_binding.txt ARB_vertex_attrib_binding] |ARB Extension #125 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_draw_indirect.txt ARB_draw_indirect] | ARB Extension #87 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shading_language_packing.txt ARB_shading_language_packing] | ARB Extension #116 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_image_size.txt ARB_shader_image_size] | ARB Extension #136 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_storage_multisample.txt ARB_texture_storage_multisample] | ARB Extension #141 |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_multisample.txt ARB_texture_multisample] | ARB Extension #67 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_integer_mix.txt EXT_shader_integer_mix] | OpenGL ES Extension #161 |- |optional | Mesa (all drivers OpenGL ES 3.1+) |- |[https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sample_locations.txt ARB_sample_locations] |ARB Extension #181 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_view.txt OES_texture_view] |OpenGL ES Extension #218 |- |[https://www.khronos.org/registry/OpenGL/extensions/NV/NV_image_formats.txt NV_image_formats] |OpenGL ES Extension #200 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_render_snorm.txt EXT_render_snorm] |OpenGL ES Extension #206 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_norm16.txt EXT_texture_norm16] |OpenGL ES Extension #207 |} ==={{Anchor|3.2}}OpenGL ES 3.2=== The OpenGL ES 3.2 specification<ref>{{Cite web|url=https://registry.khronos.org/OpenGL/index_es.php|title=Khronos OpenGL ES Registry - The Khronos Group Inc|website=registry.khronos.org}}</ref> was publicly released in August 2015. New capabilities in OpenGL ES 3.2 include: * Geometry and [[Tessellation (computer graphics)|tessellation]] shaders to efficiently process complex scenes on the GPU. * Floating point render targets for increased flexibility in higher precision compute operations. * [[Adaptive Scalable Texture Compression|ASTC compression]] to reduce the [[memory footprint]] 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.<ref>{{cite web|url=https://registry.khronos.org/OpenGL/specs/es/3.2/es_spec_3.2.pdf|title=OpenGL ES - Version 3.2|last=Leech|first=Jon|date=5 May 2022|website=registry.khronos.org|archive-url=https://web.archive.org/web/20240922061823/https://registry.khronos.org/OpenGL/specs/es/3.2/es_spec_3.2.pdf|archive-date=22 September 2024|url-status=live}}</ref><ref>{{cite web|url=https://registry.khronos.org/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.pdf|title=OpenGL ES Shading Language - Version 3.20.8|date=14 August 2023|website=registry.khronos.org|archive-url=https://web.archive.org/web/20250124122240/https://registry.khronos.org/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.pdf|archive-date=24 January 2025|url-status=live}}</ref> {| class="wikitable" style="width: 100%" |- ! scope="col" style="width: 20%" | Extension Name ! scope="col" style="width: 25%" | Sort #Number |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_blend_equation_advanced.txt KHR_blend_equation_advanced] |OpenGL ES Extension #168 |- |[https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_color_buffer_float.txt EXT_color_buffer_float] |OpenGL ES Extension #137 |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_debug.txt KHR_debug] |OpenGL ES Extension #118 |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_robustness.txt KHR_robustness] |OpenGL ES Extension #190 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_copy_image.txt OES_copy_image] |OpenGL ES Extension #208 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_draw_buffers_indexed.txt OES_draw_buffers_indexed] |OpenGL ES Extension #209 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_draw_elements_base_vertex.txt OES_draw_elements_base_vertex] |OpenGL ES Extension #219 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_geometry_shader.txt OES_geometry_shader] |OpenGL ES Extension #210 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_gpu_shader5.txt OES_gpu_shader5] |OpenGL ES Extension #211 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_sample_shading.txt OES_sample_shading] |OpenGL ES Extension #169 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_sample_variables.txt OES_sample_variables] |OpenGL ES Extension #170 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_shader_image_atomic.txt OES_shader_image_atomic] |OpenGL ES Extension #171 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_shader_io_blocks.txt OES_shader_io_blocks] |OpenGL ES Extension #213 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_shader_multisample_interpolation.txt OES_shader_multisample_interpolation] |OpenGL ES Extension #172 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_tessellation_shader.txt OES_tessellation_shader] |OpenGL ES Extension #214 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_border_clamp.txt OES_texture_border_clamp] |OpenGL ES Extension #215 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_buffer.txt OES_texture_buffer] |OpenGL ES Extension #216 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_cube_map_array.txt OES_texture_cube_map_array] |OpenGL ES Extension #217 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_stencil8.txt OES_texture_stencil8] |OpenGL ES Extension #173 |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_storage_multisample_2d_array.txt OES_texture_storage_multisample_2d_array] |OpenGL ES Extension #174 |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt KHR_texture_compression_astc_ldr] |OpenGL ES Extension #117 (LDR only) |- |[https://www.khronos.org/registry/OpenGL/extensions/OES/OES_primitive_bounding_box.txt OES_primitive_bounding_box] |OpenGL ES Extension #212 |- |optional | Mesa (all drivers OpenGL ES 3.2+) |- |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt KHR_texture_compression_astc_hdr] |OpenGL ES Extension #117 (LDR included), ARB Extension #118 |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_blend_equation_advanced.txt KHR_blend_equation_advanced_coherent] |OpenGL ES Extension #168 |- |[https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_sliced_3d.txt KHR_texture_compression_astc_sliced_3d] |OpenGL ES Extension #249 (ARB Extension #189) |- | [https://www.khronos.org/registry/OpenGL/extensions/OES/OES_viewport_array.txt OES_viewport_array] |OpenGL ES Extension #267 |} Some more extensions are developed or in Development in Mesa for next OpenGL ES Version (see Mesamatrix). Next generation API is Vulkan.<ref>{{Cite web|url=http://www.anandtech.com/show/9038/next-generation-opengl-becomes-vulkan-additional-details-released|title = Next Generation OpenGL Becomes Vulkan: Additional Details Released}}</ref> ==Platform usage== For complete list of companies and their conformant products, view [https://www.khronos.org/conformance/adopters/conformant-products/opengles here] ===OpenGL ES 1.0=== OpenGL ES 1.0 added an official 3D [[graphics API]] to the [[Android (operating system)|Android]]<ref>{{Cite web|url=https://developer.android.com/about|title=Android Platform|website=Android Developers}}</ref> and [[Symbian]] OS v8.0a<ref>{{Cite web |date=2008-03-30 |title=Symbian OS Version 8.0 Product sheet |url=http://www.symbian.com/symbianos/releases/v80/productsheet.html |archive-url=https://web.archive.org/web/20080330065954/http://www.symbian.com/symbianos/releases/v80/productsheet.html |archive-date=2008-03-30 |access-date=2008-03-30 }}</ref><ref>{{Cite web |last=Dueder |first=Janelle |date=2022-12-09 |title=OpenGL ES - Symbian Games Development |url=https://www.25yearsofprogramming.com/games-development/opengl-es.html |access-date=2023-01-14 |website=25 Years of Programming |language=en}}</ref> operating systems, as well as by [[QNX]]<ref>{{cite web | url=http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.gf_dev_guide/3d.html |title=Using OpenGL ES |work=QNX Software Development Platform (v6.5.0) |publisher=[[QNX]] |access-date=2011-01-08}}</ref> It is also supported by the [[PlayStation 3]] as one of its official graphics APIs<ref>{{cite web|url=http://www.khronos.org/developers/library/siggraph2006/OpenGL_ES_BOF/OpenGL-ES-Demos.ppt|title=OpenGL ES demo in PPT format|date=21 November 2021}}</ref> (the other one being low level ''libgcm'' library) with [[Cg (programming language)|Nvidia's Cg]] in lieu of GLSL.<ref>{{cite web|url=http://www.khronos.org/developers/library/siggraph2006/OpenGL_ES_BOF/OpenGL-ES-Demos.ppt|title=OpenGL ES/PSGL Presentation in PPT format|work=Sony|date=21 November 2021|publisher=Khronos}}</ref> The PlayStation 3 also includes several features of the 2.0 version of OpenGL ES. * [[Nokia 6630]]<ref>{{Cite web |date=2004-09-22 |title=OpenGL ES SDK available for Nokia 6630 |url=https://community.khronos.org/t/opengl-es-sdk-available-for-nokia-6630/424 |access-date=2023-01-14 |website=Khronos Forums |language=en}}</ref> ===OpenGL ES 1.1=== The 1.1 version of OpenGL ES is supported by: * [[Android (operating system)|Android]] 1.6 * Apple [[iOS]] for [[iPad]], [[iPhone]], and [[iPod Touch]] * [[Research In Motion|RIM]]'s BlackBerry 5.0 operating system series<ref>{{cite web |url=http://docs.blackberry.com/en/developers/deliverables/11953/New_in_this_beta_release_895185_11.jsp |title=New in this beta release |work=Release Notes - BlackBerry Java Application |publisher=[[Research in Motion]] |access-date=2009-12-08 |archive-url=https://web.archive.org/web/20091202054102/http://docs.blackberry.com/en/developers/deliverables/11953/New_in_this_beta_release_895185_11.jsp |archive-date=2009-12-02 }}</ref> (only [[BlackBerry Storm 2]], [[BlackBerry Curve 8530]] and later models have the needed hardware<ref>{{cite news |title=What to expect for BlackBerry smartphones |first=Damian |last=Koh |newspaper=[[CNET Networks|CNET Asia]] |date=2009-11-29 |url=http://asia.cnet.com/reviews/mobilephones/0,39050603,62059292,00.htm |access-date=2009-12-08 |archive-url=https://web.archive.org/web/20091213042524/http://asia.cnet.com/reviews/mobilephones/0,39050603,62059292,00.htm |archive-date=2009-12-13 }}</ref>) * [[BlackBerry PlayBook]] * [[BlackBerry 10|BlackBerry BB10]] * Various [[Nokia]] phones such as Nokia N95, N93, N93i, and N82. * The Palm [[webOS]], using the Plug-in Development Kit<ref name="autogenerated1989">{{cite web |url=http://developer.palm.com/index.php?option=com_content&view=article&id=1989&Itemid=370#CoreTechnologies |title=PDK - Overview |publisher=HP Palm Developer Center |access-date=2010-12-23 |archive-url=https://web.archive.org/web/20110101222701/http://developer.palm.com/index.php?option=com_content&view=article&id=1989&Itemid=370#CoreTechnologies |archive-date=2011-01-01 }}</ref> * [[Nintendo 3DS]]<ref>{{cite web|url=https://www.khronos.org/news/permalink/dmp-announces-opengl-es-1.1-conformant-pica-200-adopted-by-nintendo |title=DMP announces OpenGL ES 1.1 conformant PICA 200 adopted by Nintendo |date=2010-06-21 |access-date=2013-06-02}}</ref> ===OpenGL ES 2.0=== Supported by: * The Android platform since Android 2.0 through NDK and Android 2.2 through Java<ref>{{cite news |title=Android 2.2 specifications |url=http://developer.android.com/sdk/android-2.2.html |date=2010-07-01 |archive-url=https://web.archive.org/web/20101011134355/http://developer.android.com/sdk/android-2.2.html |archive-date=2010-10-11 }}</ref> * [[AmigaOS]] on [[AmigaOne]] with [[Warp3D|Warp3D Nova]] and compatible [[Radeon|Radeon HD]] graphics card. * Apple [[iOS (Apple)|iOS]] 5 or later in [[iPad]], [[iPad Mini]], [[iPhone]] 3GS or later, and [[iPod Touch]] 3rd generation or later * [[BlackBerry]] devices with [[BlackBerry OS]] 7.0 and [[Blackberry 10]], as well as the [[BlackBerry PlayBook]] * [[Google Native Client]] * [[Intel]] HD Graphics 965G / X3000 and higher (Linux)<ref name="people.freedesktop.org">{{Cite web|url=https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa+17.2.0|title=Mesa OpenGL Extensions and Capabilities|website=people.freedesktop.org}}</ref> * [[Nvidia]] (Android), Curie NV40+: Linux, Windows<ref name="ReferenceA">{{Cite web|url=https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa+17.1.0|title=Mesa OpenGL Extensions and Capabilities|website=people.freedesktop.org}}</ref> * Various [[Nokia]] phones (such as [[Symbian]]^3 based [[Nokia N8]], [[MeeGo]] based [[Nokia N9]], and [[Maemo]] based [[Nokia N900]]<ref name=n900specs>{{cite web|title=Maemo software - Nokia > Nokia N900 mobile computer > Technical specifications|url=http://maemo.nokia.com/n900/specifications/|publisher=Nokia Corporation|access-date=12 January 2010|archive-url=https://web.archive.org/web/20091029005250/http://maemo.nokia.com/n900/specifications/|archive-date=29 October 2009}}</ref>) * Palm [[webOS]], using the Plug-in Development Kit<ref name="autogenerated1989"/> * The [[Pandora (console)|Pandora]] console * The [[Raspberry Pi]] * The [[Odroid]] * Various [[Samsung]] mobile phones (such as the [[Samsung Wave|Wave]]) * Web browsers ([[WebGL]]) * The [[GCW Zero]] console * The [[PlayStation Vita]] portable console * The [[PlayStation 4]] 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 series|HTC One]]/[[HTC One Max|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]]<ref>{{cite web|url=https://developer.apple.com/ios8/|title=iOS 8 for Developers|publisher=Apple Developer}}</ref> ** [[iPad Air]] ** [[iPad Mini 2|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:'''<ref>{{cite web|url=https://www.khronos.org/conformance/adopters/conformant-products#opengles|title=Khronos Conformant Products|date=21 November 2021}}</ref>'''<ref>{{cite web |url=http://www.brightsideofnews.com/news/2013/4/11/the-state-of-opengl-es-30-whos-got-what.aspx |title=The State of OpenGL ES 3.0: Who's Got What |last=Sag |first=Anshel |work=Bright Side of News |date=2013-04-11 |url-status=live |archive-url=https://web.archive.org/web/20130615000704/http://www.brightsideofnews.com/news/2013/4/11/the-state-of-opengl-es-30-whos-got-what.aspx |archive-date=2013-06-15 |access-date=2015-12-22 }}</ref> * [[Adreno]] 300 and 400 series ([[Android (operating system)|Android]], [[BlackBerry 10]], Windows10 [[Windows RT]]) * [[Mali (GPU)|Mali]] T600 series onwards (Android, [[Linux]], [[Windows]] 7) * [[PowerVR]] Series6 ([[iOS]], Linux) * [[Vivante]] (Android, [[OS X]] 10.8.3, Windows 7) * [[Nvidia]] (Android), Tesla G80+: Linux, Windows 7+ * [[Intel]] HD Graphics Sandy Bridge and higher (Linux)<ref name="people.freedesktop.org"/> * AMD Terascale and actual GCN-architecture (Windows, Linux) * LLVMpipe and Softpipe: soft drivers in Mesa<ref name="ReferenceA"/> * 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,<ref>{{cite web | url=http://www.khronos.org/conformance/adopters/conformant-products#opengles | title=OpenGL ES3.1 Conformant Products | access-date=2014-08-11}}</ref> including: * [[Adreno]] 400 series<ref>{{cite web | url=https://developer.qualcomm.com/mobile-development/maximize-hardware/mobile-gaming-graphics-adreno/adreno-gpu | title=Adreno™ Graphics Processing Units | publisher=Qualcomm | access-date=2014-08-11}}</ref><ref>{{cite web | url=https://developer.qualcomm.com/forum/qdn-forums/maximize-hardware/mobile-gaming-graphics-adreno/27936 | title=GL ES 3.1 on Adreno 3xx? | access-date=2014-08-11}}</ref> * [[Adreno]] 500 series (Mesa 18.1 for Linux and Android) * AMD Terascale and actual GCN-architecture (Windows, Linux (r600, radeonSI)) * Intel HD Graphics for [[Atom (system on chip)|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]] HD Graphics Haswell and higher (Linux Mesa: previous Ivy Bridge nearly without stencil texturing)<ref name="people.freedesktop.org"/> * Mali T6xx (midgard) series onwards<ref>{{cite web | url=http://www.anandtech.com/show/8234/arms-mali-midgard-architecture-explored/3 | title=ARM's Mali Midgard Architecture Explored | publisher=AnandTech | access-date=2014-08-11}}</ref> (Android, Linux) * [[Nvidia]] [[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 Corporation|Vivante]] GC2000 series onwards (optional with GC800 and GC1000)<ref>{{cite web | url=http://www.vivantecorp.com/index.php/en/technology/3d.html | title=Vivante Vega Cores for 3D | publisher=Vivante | access-date=2014-12-10}}</ref> * panfrost: ARM panfrost support (Linux Mesa 22.0) * v3d: Driver for Broadcom VideoCore in Mesa (Linux) ** The [[Raspberry Pi]] 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.<ref>{{cite web|url=https://www.phoronix.com/scan.php?page=article&item=sig-gles32-glu&num=3|title=Khronos Debuts OpenGL ES 3.2 & New GL Extensions, But No Vulkan This Week|date=August 10, 2015|access-date=August 11, 2015}}</ref> ===OpenGL ES 3.2=== [[File:Glxinfo with glxgears screenshot.png|thumb|OpenGL ES 3.2 usage on a Linux system (with [[AMDgpu (Linux kernel module)|AMDGPU]])]] OpenGL ES 3.2, incorporating the [[#Android_Extension_Pack|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."<ref>{{cite web |url=http://www.androidauthority.com/opengl-es-3-2-vulkan-everything-to-know-632068/ |title=OpenGL ES 3.2 and Vulkan – everything you need to know |work=Android Authority |date=2015-08-15 |access-date=2015-12-22 }}</ref><ref name="3D-BOF-SIGGRAPH_Aug15">{{cite web |url=https://www.khronos.org/assets/uploads/developers/library/2015-siggraph/3D-BOF-SIGGRAPH_Aug15.pdf |title=3D Graphics API State of the Union: SIGGRAPH 2015 |work=Khronos |quote=Industry will ship >1.7 billion devices in 2015}}</ref> 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]] 420 and newer (Android, Linux (freedreno)) * AMD GCN-architecture (Windows, Linux (Mesa 18.2 with radeonSI)) * [[Intel]] HD Graphics Skylake and higher (Linux)<ref name="people.freedesktop.org"/> * Mali-T760 and newer (Android, Linux) * Nvidia GeForce 400 series (Fermi) and newer (Windows, Linux)<ref>{{cite web | url=http://www.anandtech.com/show/9698/nvidia-releases-35850-game-ready-drivers-for-star-wars-battlefront | title=NVIDIA Releases 358.50 Game Ready Drivers For Star Wars Battlefront | publisher=AnandTech | access-date=2015-10-07}}</ref> * 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 [[deprecation|deprecated]] in Apple's operating systems in favour of its own proprietary [[Metal (API)|Metal]] [[graphics API]], but still worked in up to at least [[iOS 12]].<ref>{{Cite web|url=https://developer.apple.com/ios/whats-new/|title=What's New in iOS - Apple Developer|quote=Apps built using OpenGL ES will continue to run in iOS 12, but OpenGL ES is deprecated in iOS 13.|author=Apple Inc.|website=developer.apple.com|language=en|access-date=2018-08-07}}</ref> ==The future== There is currently no plan for a new core version of OpenGL ES, as adoption of [[Vulkan (API)|Vulkan]] has been deemed to displace it in embedded and mobile applications. Development of extensions to OpenGL ES continues as of 2017. <ref>{{Cite web|url=https://www.khronos.org/assets/uploads/developers/library/2017-siggraph/06_3D-BOF-SIGGRAPH_Aug17.pdf|title=Vulkan, OpenGL, and OpenGL ES.|author=Khronos.|website=www.khronos.org|language=en|access-date=2020-04-24}}</ref> ==OpenGL compatibility== {{expand section|date=September 2014}} A few libraries have been created to emulate OpenGL calls using GL ES: * [[Nvidia]] offers a 2-clause [[BSD license]]d library called Regal, originally started by Cass Everitt. It was last updated in 2016.<ref>{{cite web|url=https://github.com/p3/regal|title=p3/regal: Regal for OpenGL|date=18 October 2021|publisher=GitHub}}</ref> Regal is used for example by [[Google Native Client|Google's NaCl]].<ref>{{cite web|url=https://www.gamedeveloper.com/programming/in-depth-bringing-regal-opengl-to-native-client|title=In-depth: Bringing Regal OpenGL to Native Client|last=McCutchan|first=John|date=7 September 2012|publisher=Gamasutra}}</ref> * The [[MIT license]]d GL4ES emulates OpenGL 2.1/1.5 using GL ES 2.0/1.1. It is based on glshim.<ref>{{cite web |title=GL4ES - The OpenGL driver for GLES Hardware |url=http://ptitseb.github.io/gl4es/ |website=GitHub}}</ref> ==See also== * [[Direct3D]] – Windows API for high-performance 3D graphics, with 3D acceleration hardware support * [[DirectX]] – Windows API for handling tasks related to graphics and video * [[Metal (API)|Metal]] – 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)]] – Google developed library to turn OpenGL ES calls into those of DirectX or Vulkan * [[Mobile 3D Graphics API]] - a [[graphics API]] and [[file format]] specification for developing [[Java ME]] [[mobile application|application]]s ==References== {{Reflist|30em}} ==Further reading== * {{Cite book |first1=Dan|last1=Ginsburg |first2=Budirijanto|last2=Purnomo |first3=Dave|last3=Shreiner |first4=Aaftab|last4=Munshi | title=OpenGL ES 3.0 Programming Guide | publisher=Addison-Wesley Professional | year=2014 | isbn=978-0-321-93388-1 }} * {{Cite book |first1=Kari |last1=Pulli |first2=Tomi |last2=Aarnio |first3=Ville |last3=Miettinen |first4=Kimmo |last4=Roimela |name-list-style=amp |first5=Jani |last5=Vaarala |title=Mobile 3D Graphics with OpenGL ES and M3G |publisher=Morgan Kaufmann |year=2007 |isbn=978-0-12-373727-4 }} * {{Cite book |first1=Dave |last1=Astle |name-list-style=amp |first2=David |last2=Durnil |title=OpenGL ES Game Development |publisher=Course Technology PTR |isbn=1-59200-370-2 |year=2004 |url-access=registration |url=https://archive.org/details/openglesgamedeve0000astl }} * {{Cite journal |first1=Kari |last1=Pulli |first2=Tomi |last2=Aarnio |first3=Kimmo |last3=Roimela |name-list-style=amp |first4=Jani |last4=Vaarala |doi=10.1109/MCG.2005.129 |title=Designing graphics programming interfaces for mobile devices |journal=IEEE Computer Graphics and Applications |publisher=IEEE CG&A 2005 |year=2005 |volume=25 |issue=6 |pages=66–75 |pmid=16315479 |s2cid=8177273 }} ==External links== {{Wikibooks|OpenGL Programming/OpenGL ES Overview}} * {{Official website}} * [http://www.khronos.org/bugzilla/ Public bug tracking] * [http://www.khronos.org/members/conformant#opengles OpenGL ES Conformant companies] * [https://web.archive.org/web/20080915121240/http://www.khronos.org/message_boards/viewforum.php?f=19 Public forums] * [http://www.glbenchmark.com/result.jsp List of OpenGL ES compatible devices] * [http://www.opengl.org/ OpenGL home page] * [https://web.archive.org/web/20140214144547/http://malideveloper.arm.com/develop-for-mali/tools/opengl-es-2-0-emulator/ OpenGL ES 1.1 & 2.0 Emulator from ARM] Link unusable. Do not click. * [https://web.archive.org/web/20140128102919/http://malideveloper.arm.com/develop-for-mali/tools/opengl-es-3-0-emulator/ OpenGL ES 3.0 Emulator from ARM] Link unusable. Do not click. {{Khronos Group standards}} {{DEFAULTSORT:Opengl Es}} [[Category:3D graphics APIs]] [[Category:OpenGL|Es]] [[Category:Virtual reality]] [[Category:Augmented reality]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Expand section
(
edit
)
Template:ISBN
(
edit
)
Template:Khronos Group standards
(
edit
)
Template:Official website
(
edit
)
Template:Reflist
(
edit
)
Template:Rs?
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Wikibooks
(
edit
)