Khronos OpenGL ES Registry

The OpenGL ES Registry contains specifications of the core API and shading language; specifications of Khronos- and vendor-approved OpenGL ES extensions; header files corresponding to the specifications; and related documentation.

The OpenGL ES Registry is part of the Combined OpenGL Registry for OpenGL, OpenGL ES, and OpenGL SC, which includes the XML API registry of reserved enumerants and functions.

Table of Contents


OpenGL ES Core API and Shading Language Specifications and Reference Pages

The current version of OpenGL ES is OpenGL ES 3.2. Specifications for older versions 3.1, 3.0, 2.0, 1.1, and 1.0 are also available below. For additional specifications, headers, and documentation not listed below, see the Khronos.org Developer Pages. Header files not labelled with a revision date include their last update time in comments near the top of the file.

OpenGL ES 3.2 Specifications and Documentation

OpenGL ES 3.1 Specifications and Documentation

OpenGL ES 3.0 Specifications and Documentation

OpenGL ES 2.0 Specifications and Documentation

OpenGL ES 1.1 Specifications and Documentation

OpenGL ES 1.0 Specification and Documentation


API and Extension Header Files

Because extensions vary from platform to platform and driver to driver, OpenGL ES segregates headers for each API version into a header for the core API (OpenGL ES 1.0, 1.1, 2.0, 3.0, 3.1 and 3.2) and a separate header defining extension interfaces for that core API. These header files are supplied here for developers and platform vendors. They define interfaces including enumerants, prototypes, and for platforms supporting dynamic runtime extension queries, such as Linux and Microsoft Windows, function pointer typedefs. Please report problems as Issues in the OpenGL-Registry repository.

In addition to the core API and extension headers, there is also an OpenGL ES version-specific platform header file intended to define calling conventions and data types specific to a platform.

Almost all of the headers described below depend on a platform header file common to multiple Khronos APIs called <KHR/khrplatform.h>.

Vendors may include modified versions of any or all of these headers with their OpenGL ES implementations, but in general only the platform-specific OpenGL ES and Khronos headers are likely to be modified by the implementation. This makes it possible for developers to drop in more recently updated versions of the headers obtained here, typically when new extensions are supplied on a platform.

OpenGL ES 3.2 Headers

  • <GLES3/gl32.h> OpenGL ES 3.2 Header File.
  • <GLES2/gl2ext.h> OpenGL ES Extension Header File (this header is defined to contain all defined extension interfaces for OpenGL ES 2.0 and all later versions, since later versions are backwards-compatible with OpenGL ES 2.0).
  • <GLES3/gl3platform.h> OpenGL ES 3.2 Platform-Dependent Macros (this header is shared with OpenGL ES 3.0 and 3.1).

OpenGL ES 3.1 Headers

OpenGL ES 3.0 Headers

OpenGL ES 2.0 Headers

OpenGL ES 1.1 Headers

Khronos Shared Platform Header (<KHR/khrplatform.h>)


Extension Specifications by number

  1. GL_OES_blend_equation_separate
  2. GL_OES_blend_func_separate
  3. GL_OES_blend_subtract
  4. GL_OES_byte_coordinates
  5. GL_OES_compressed_ETC1_RGB8_texture
  6. GL_OES_compressed_paletted_texture
  7. GL_OES_draw_texture
  8. GL_OES_extended_matrix_palette
  9. GL_OES_fixed_point
  10. GL_OES_framebuffer_object
  11. GL_OES_matrix_get
  12. GL_OES_matrix_palette
  13. GL_OES_point_size_array
  14. GL_OES_point_sprite
  15. GL_OES_query_matrix
  16. GL_OES_read_format
  17. GL_OES_single_precision
  18. GL_OES_stencil_wrap
  19. GL_OES_texture_cube_map
  20. GL_OES_texture_env_crossbar
  21. GL_OES_texture_mirrored_repeat
  22. GL_OES_EGL_image
  23. GL_OES_depth24
  24. GL_OES_depth32
  25. GL_OES_element_index_uint
  26. GL_OES_fbo_render_mipmap
  27. GL_OES_fragment_precision_high
  28. GL_OES_mapbuffer
  29. GL_OES_rgb8_rgba8
  30. GL_OES_stencil1
  31. GL_OES_stencil4
  32. GL_OES_stencil8
  33. GL_OES_texture_3D
  34. GL_OES_texture_float_linear
    GL_OES_texture_half_float_linear
  35. GL_OES_texture_float
    GL_OES_texture_half_float
  36. GL_OES_texture_npot
  37. GL_OES_vertex_half_float
  38. GL_AMD_compressed_3DC_texture
  39. GL_AMD_compressed_ATC_texture
  40. GL_EXT_texture_filter_anisotropic
  41. GL_EXT_texture_type_2_10_10_10_REV
  42. GL_OES_depth_texture
  43. GL_OES_packed_depth_stencil
  44. GL_OES_standard_derivatives
  45. GL_OES_vertex_type_10_10_10_2
  46. GL_OES_get_program_binary
  47. GL_AMD_program_binary_Z400
  48. GL_EXT_texture_compression_dxt1
  49. GL_AMD_performance_monitor
  50. GL_EXT_texture_format_BGRA8888
  51. GL_NV_fence
  52. GL_IMG_read_format
  53. GL_IMG_texture_compression_pvrtc
  54. GL_QCOM_driver_control
  55. GL_QCOM_performance_monitor_global_mode
  56. GL_IMG_user_clip_plane
  57. GL_IMG_texture_env_enhanced_fixed_function
  58. GL_APPLE_texture_2D_limited_npot
  59. GL_EXT_texture_lod_bias
  60. GL_QCOM_writeonly_rendering
  61. GL_QCOM_extended_get
  62. GL_QCOM_extended_get2
  63. GL_EXT_discard_framebuffer
  64. GL_EXT_blend_minmax
  65. GL_EXT_read_format_bgra
  66. GL_IMG_program_binary
  67. GL_IMG_shader_binary
  68. GL_EXT_multi_draw_arrays
    GL_SUN_multi_draw_arrays
  69. GL_QCOM_tiled_rendering
  70. GL_OES_vertex_array_object
  71. GL_NV_coverage_sample
  72. GL_NV_depth_nonlinear
  73. GL_IMG_multisampled_render_to_texture
  74. GL_OES_EGL_sync
  75. GL_APPLE_rgb_422
  76. GL_EXT_shader_texture_lod
  77. GL_APPLE_framebuffer_multisample
  78. GL_APPLE_texture_format_BGRA8888
  79. GL_APPLE_texture_max_level
  80. GL_ARM_mali_shader_binary
  81. GL_ARM_rgba8
  82. GL_ANGLE_framebuffer_blit
  83. GL_ANGLE_framebuffer_multisample
  84. GL_VIV_shader_binary
  85. GL_EXT_frag_depth
  86. GL_OES_EGL_image_external
  87. GL_DMP_shader_binary
  88. GL_QCOM_alpha_test
  89. GL_EXT_unpack_subimage
  90. GL_NV_draw_buffers
  91. GL_NV_fbo_color_attachments
  92. GL_NV_read_buffer
  93. GL_NV_read_depth_stencil
  94. GL_NV_texture_compression_s3tc_update
  95. GL_NV_texture_npot_2D_mipmap
  96. GL_EXT_color_buffer_half_float
  97. GL_EXT_debug_label
  98. GL_EXT_debug_marker
  99. GL_EXT_occlusion_query_boolean
  100. GL_EXT_separate_shader_objects
  101. GL_EXT_shadow_samplers
  102. GL_EXT_texture_rg
  103. GL_NV_EGL_stream_consumer_external
  104. GL_EXT_sRGB
  105. GL_EXT_multisampled_render_to_texture
  106. GL_EXT_robustness
  107. GL_EXT_texture_storage
  108. GL_ANGLE_instanced_arrays
  109. GL_ANGLE_pack_reverse_row_order
  110. GL_ANGLE_texture_compression_dxt3
    GL_ANGLE_texture_compression_dxt1
    GL_ANGLE_texture_compression_dxt5
  111. GL_ANGLE_texture_usage
  112. GL_ANGLE_translated_shader_source
  113. GL_FJ_shader_binary_GCCSO
  114. GL_OES_required_internalformat
  115. GL_OES_surfaceless_context
  116. GL_KHR_texture_compression_astc_hdr
    GL_KHR_texture_compression_astc_ldr
  117. GL_KHR_debug
  118. GL_QCOM_binning_control
  119. GL_ARM_mali_program_binary
  120. GL_EXT_map_buffer_range
  121. GL_EXT_shader_framebuffer_fetch
    GL_EXT_shader_framebuffer_fetch_non_coherent
  122. GL_APPLE_copy_texture_levels
  123. GL_APPLE_sync
  124. GL_EXT_multiview_draw_buffers
  125. GL_NV_draw_texture
  126. GL_NV_packed_float
  127. GL_NV_texture_compression_s3tc
  128. GL_NV_3dvision_settings
  129. GL_NV_texture_compression_latc
  130. GL_NV_platform_binary
  131. GL_NV_pack_subimage
  132. GL_NV_texture_array
  133. GL_NV_pixel_buffer_object
  134. GL_NV_bgr
  135. GL_OES_depth_texture_cube_map
  136. GL_EXT_color_buffer_float
  137. GL_ANGLE_depth_texture
  138. GL_ANGLE_program_binary
  139. GL_IMG_texture_compression_pvrtc2
  140. GL_NV_draw_instanced
  141. GL_NV_framebuffer_blit
  142. GL_NV_framebuffer_multisample
  143. GL_NV_generate_mipmap_sRGB
  144. GL_NV_instanced_arrays
  145. GL_NV_shadow_samplers_array
  146. GL_NV_shadow_samplers_cube
  147. GL_NV_sRGB_formats
  148. GL_NV_texture_border_clamp
  149. GL_EXT_disjoint_timer_query
  150. GL_EXT_draw_buffers
  151. GL_EXT_texture_sRGB_decode
  152. GL_EXT_sRGB_write_control
  153. GL_EXT_texture_compression_s3tc
  154. GL_EXT_pvrtc_sRGB
  155. GL_EXT_instanced_arrays
  156. GL_EXT_draw_instanced
  157. GL_NV_copy_buffer
  158. GL_NV_explicit_attrib_location
  159. GL_NV_non_square_matrices
  160. GL_EXT_shader_integer_mix
  161. GL_OES_texture_compression_astc
  162. GL_NV_blend_equation_advanced
    GL_NV_blend_equation_advanced_coherent
  163. GL_INTEL_performance_query
  164. GL_ARM_shader_framebuffer_fetch
  165. GL_ARM_shader_framebuffer_fetch_depth_stencil
  166. GL_EXT_shader_pixel_local_storage
  167. GL_KHR_blend_equation_advanced
    GL_KHR_blend_equation_advanced_coherent
  168. GL_OES_sample_shading
  169. GL_OES_sample_variables
  170. GL_OES_shader_image_atomic
  171. GL_OES_shader_multisample_interpolation
  172. GL_OES_texture_stencil8
  173. GL_OES_texture_storage_multisample_2d_array
  174. GL_EXT_copy_image
  175. GL_EXT_draw_buffers_indexed
  176. GL_EXT_geometry_shader
    GL_EXT_geometry_point_size
  177. GL_EXT_gpu_shader5
  178. GL_EXT_shader_implicit_conversions
  179. GL_EXT_shader_io_blocks
  180. GL_EXT_tessellation_shader
    GL_EXT_tessellation_point_size
  181. GL_EXT_texture_border_clamp
  182. GL_EXT_texture_buffer
  183. GL_EXT_texture_cube_map_array
  184. GL_EXT_texture_view
  185. GL_EXT_primitive_bounding_box
  186. GL_ANDROID_extension_pack_es31a
  187. GL_EXT_compressed_ETC1_RGB8_sub_texture
  188. GL_KHR_robust_buffer_access_behavior
  189. GL_KHR_robustness
  190. GL_KHR_context_flush_control
    GLX_ARB_context_flush_control
    WGL_ARB_context_flush_control
  191. GL_DMP_program_binary
  192. GL_APPLE_clip_distance
  193. GL_APPLE_color_buffer_packed_float
  194. GL_APPLE_texture_packed_float
  195. GL_NV_internalformat_sample_query
  196. GL_NV_bindless_texture
  197. GL_NV_conditional_render
  198. GL_NV_path_rendering
  199. GL_NV_image_formats
  200. GL_NV_shader_noperspective_interpolation
  201. GL_NV_viewport_array
  202. GL_EXT_base_instance
  203. GL_EXT_draw_elements_base_vertex
  204. GL_EXT_multi_draw_indirect
  205. GL_EXT_render_snorm
  206. GL_EXT_texture_norm16
  207. GL_OES_copy_image
  208. GL_OES_draw_buffers_indexed
  209. GL_OES_geometry_shader
  210. GL_OES_gpu_shader5
  211. GL_OES_primitive_bounding_box
  212. GL_OES_shader_io_blocks
  213. GL_OES_tessellation_shader
    GL_OES_tessellation_point_size
  214. GL_OES_texture_border_clamp
  215. GL_OES_texture_buffer
  216. GL_OES_texture_cube_map_array
  217. GL_OES_texture_view
  218. GL_OES_draw_elements_base_vertex
  219. GL_OES_EGL_image_external_essl3
  220. GL_EXT_texture_sRGB_R8
  221. GL_EXT_YUV_target
  222. GL_EXT_texture_sRGB_RG8
  223. GL_EXT_float_blend
  224. GL_EXT_post_depth_coverage
  225. GL_EXT_raster_multisample
  226. GL_EXT_texture_filter_minmax
  227. GL_NV_conservative_raster
  228. GL_NV_fragment_coverage_to_color
  229. GL_NV_fragment_shader_interlock
  230. GL_NV_framebuffer_mixed_samples
  231. GL_NV_fill_rectangle
  232. GL_NV_geometry_shader_passthrough
  233. GL_NV_path_rendering_shared_edge
  234. GL_NV_sample_locations
  235. GL_NV_sample_mask_override_coverage
  236. GL_NV_viewport_array2
  237. GL_NV_polygon_mode
  238. GL_EXT_buffer_storage
  239. GL_EXT_sparse_texture
  240. GL_OVR_multiview
  241. GL_OVR_multiview2
  242. GL_KHR_no_error
  243. GL_INTEL_framebuffer_CMAA
  244. GL_EXT_blend_func_extended
  245. GL_EXT_multisample_compatibility
  246. GL_KHR_texture_compression_astc_sliced_3d
  247. GL_OVR_multiview_multisampled_render_to_texture
  248. GL_IMG_texture_filter_cubic
  249. GL_EXT_polygon_offset_clamp
  250. GL_EXT_shader_pixel_local_storage2
  251. GL_EXT_shader_group_vote
  252. GL_IMG_framebuffer_downsample
  253. GL_EXT_protected_textures
  254. GL_EXT_clip_cull_distance
  255. GL_NV_viewport_swizzle
  256. GL_EXT_sparse_texture2
  257. GL_NV_gpu_shader5
  258. GL_NV_shader_atomic_fp16_vector
  259. GL_NV_conservative_raster_pre_snap_triangles
  260. GL_EXT_window_rectangles
  261. GL_EXT_shader_non_constant_global_initializers
  262. GL_INTEL_conservative_rasterization
  263. GL_NVX_blend_equation_advanced_multi_draw_buffers
  264. GL_OES_viewport_array
  265. GL_EXT_conservative_depth
  266. GL_EXT_clear_texture
  267. GL_IMG_bindless_texture
  268. GL_NV_texture_barrier
  269. GL_EXT_draw_transform_feedback
  270. GL_QCOM_framebuffer_foveated
  271. GL_NV_draw_vulkan_image
  272. GL_EXT_multisampled_render_to_texture2
  273. GL_EXT_texture_compression_astc_decode_mode
    GL_EXT_texture_compression_astc_decode_mode_rgb9e5
  274. GL_QCOM_shader_framebuffer_fetch_noncoherent
  275. GL_EXT_EGL_image_array
  276. GL_EXT_memory_object
    GL_EXT_semaphore
  277. GL_EXT_memory_object_fd
    GL_EXT_semaphore_fd
  278. GL_EXT_memory_object_win32
    GL_EXT_semaphore_win32
  279. GL_EXT_win32_keyed_mutex
  280. GL_EXT_external_buffer
  281. GL_NV_blend_minmax_factor
  282. GL_EXT_texture_compression_rgtc
  283. GL_EXT_texture_compression_bptc
  284. GL_KHR_parallel_shader_compile
  285. GL_EXT_texture_compression_s3tc_srgb
  286. GL_EXT_clip_control
  287. GL_EXT_texture_mirror_clamp_to_edge
  288. GL_MESA_tile_raster_order
  289. GL_QCOM_texture_foveated
  290. GL_MESA_program_binary_formats
  291. GL_NV_clip_space_w_scaling
  292. GL_NV_stereo_view_rendering
  293. GL_NV_conservative_raster_pre_snap
  294. GL_EXT_EGL_image_external_wrap_modes
  295. GL_EXT_texture_format_sRGB_override
  296. GL_INTEL_blackhole_render
  297. GL_EXT_EGL_image_storage
  298. GL_MESA_framebuffer_flip_y
  299. GL_AMD_framebuffer_multisample_advanced
  300. GL_QCOM_shader_framebuffer_fetch_rate
  301. GL_NV_memory_attachment
  302. GL_QCOM_texture_foveated_subsampled_layout
  303. GL_QCOM_YUV_texture_gather
  304. GL_NV_compute_shader_derivatives
  305. GL_EXT_depth_clamp
  306. GL_EXT_texture_query_lod
  307. GL_NV_scissor_exclusive
  308. GL_NV_mesh_shader
  309. GL_NV_shader_texture_footprint
  310. GL_NV_representative_fragment_test
  311. GL_NV_shading_rate_image
  312. GL_NV_fragment_shader_barycentric
  313. GL_EXT_multiview_timer_query
  314. GL_EXT_multiview_texture_multisample
  315. GL_EXT_multiview_tessellation_geometry_shader
  316. GL_EXT_texture_shadow_lod
  317. GL_KHR_shader_subgroup
  318. GL_NV_shader_subgroup_partitioned
  319. GL_INTEL_shader_integer_functions2
  320. GL_ARM_texture_unnormalized_coordinates
  321. GL_QCOM_shading_rate
  322. GL_QCOM_motion_estimation
  323. GL_MESA_framebuffer_flip_x
  324. GL_MESA_framebuffer_swap_xy
  325. GL_NV_memory_object_sparse
  326. GL_NV_timeline_semaphore
  327. GL_QCOM_texture_foveated2
  328. GL_NV_primitive_shading_rate
  329. GL_QCOM_frame_extrapolation
  330. GL_QCOM_render_shared_exponent
  331. GL_MESA_bgra
  332. GL_EXT_texture_storage_compression
  333. GL_EXT_EGL_image_storage_compression
  334. GL_EXT_separate_depth_stencil
  335. GL_EXT_shader_samples_identical
  336. GL_EXT_fragment_shading_rate
    GL_EXT_fragment_shading_rate_attachment
    GL_EXT_fragment_shading_rate_primitive
  337. GL_EXT_framebuffer_blit_layers
  338. GL_QCOM_texture_lod_bias
  339. GL_QCOM_render_sRGB_R8_RG8
  340. GL_MESA_sampler_objects
  341. GL_ARM_shader_core_properties