WebGL

Khronos

WebGL Extension Registry

Overview

The WebGL extension registry contains specifications for extensions to the core WebGL API. Most of these extensions are incorporated directly from the OpenGL ES or OpenGL extension registries, and refer to those extensions for their behavioral definition. Because WebGL extensions are specified as Web IDL interfaces, each specification also includes the IDL to which each implementation will comply.

An extension template is available for the submission of new proposed extensions. New extension proposals should be emailed to the public WebGL mailing list. When writing a new extension specification, it is recommended to check out the public WebGL repository. See the WebGL wiki page Using Github to contribute. The extension registry files are located under extensions/.

Each extension object is fetched from the WebGLRenderingContextBase by passing the name of the extension to the getExtension method, i.e.: context.getExtension("OES_texture_float").

Extensions which are marked as promoted to core or removed in a certain version of the WebGL API must not be supported in an implementation of that or newer version of the WebGL API.

Naming conventions

WebGL API extensions may derive from many sources, and the naming of each extension reflects its origin and intent.

Extension Development Process

Extensions move through four states during their development: proposed, draft, community approved, and Khronos ratified. Every extension should advance to Khronos ratified. If an extension cannot advance through the extension process it can be rejected.

Khronos ratified WebGL Extensions

By Number

By Name

  1. OES_texture_float
  2. OES_texture_half_float
  3. WEBGL_lose_context
  4. OES_standard_derivatives
  5. OES_vertex_array_object
  6. WEBGL_debug_renderer_info
  7. WEBGL_debug_shaders
  8. WEBGL_compressed_texture_s3tc
  9. WEBGL_depth_texture
  10. OES_element_index_uint
  11. EXT_texture_filter_anisotropic
  12. EXT_frag_depth
  13. WEBGL_draw_buffers
  14. ANGLE_instanced_arrays
  15. OES_texture_float_linear
  16. OES_texture_half_float_linear
  17. EXT_blend_minmax
  18. EXT_shader_texture_lod
  1. ANGLE_instanced_arrays
  2. EXT_blend_minmax
  3. EXT_frag_depth
  4. EXT_shader_texture_lod
  5. EXT_texture_filter_anisotropic
  6. OES_element_index_uint
  7. OES_standard_derivatives
  8. OES_texture_float
  9. OES_texture_float_linear
  10. OES_texture_half_float
  11. OES_texture_half_float_linear
  12. OES_vertex_array_object
  13. WEBGL_compressed_texture_s3tc
  14. WEBGL_debug_renderer_info
  15. WEBGL_debug_shaders
  16. WEBGL_depth_texture
  17. WEBGL_draw_buffers
  18. WEBGL_lose_context

Community approved WebGL Extensions

By Number

By Name

  1. WEBGL_compressed_texture_pvrtc
  2. EXT_color_buffer_half_float
  3. WEBGL_color_buffer_float
  4. EXT_sRGB
  5. WEBGL_compressed_texture_etc1
  6. EXT_disjoint_timer_query
  7. OES_fbo_render_mipmap
  8. WEBGL_compressed_texture_etc
  9. WEBGL_compressed_texture_astc
  10. EXT_color_buffer_float
  11. WEBGL_compressed_texture_s3tc_srgb
  12. EXT_disjoint_timer_query_webgl2
  13. EXT_float_blend
  14. OVR_multiview2
  15. KHR_parallel_shader_compile
  16. EXT_texture_compression_bptc
  17. EXT_texture_compression_rgtc
  18. WEBGL_multi_draw
  19. WEBGL_clip_cull_distance
  20. EXT_texture_norm16
  21. OES_draw_buffers_indexed
  22. WEBGL_provoking_vertex
  23. EXT_polygon_offset_clamp
  24. EXT_clip_control
  25. EXT_depth_clamp
  26. WEBGL_polygon_mode
  1. EXT_clip_control
  2. EXT_color_buffer_float
  3. EXT_color_buffer_half_float
  4. EXT_depth_clamp
  5. EXT_disjoint_timer_query
  6. EXT_disjoint_timer_query_webgl2
  7. EXT_float_blend
  8. EXT_polygon_offset_clamp
  9. EXT_sRGB
  10. EXT_texture_compression_bptc
  11. EXT_texture_compression_rgtc
  12. EXT_texture_norm16
  13. KHR_parallel_shader_compile
  14. OES_draw_buffers_indexed
  15. OES_fbo_render_mipmap
  16. OVR_multiview2
  17. WEBGL_clip_cull_distance
  18. WEBGL_color_buffer_float
  19. WEBGL_compressed_texture_astc
  20. WEBGL_compressed_texture_etc
  21. WEBGL_compressed_texture_etc1
  22. WEBGL_compressed_texture_pvrtc
  23. WEBGL_compressed_texture_s3tc_srgb
  24. WEBGL_multi_draw
  25. WEBGL_polygon_mode
  26. WEBGL_provoking_vertex

Draft WebGL Extensions

By Number

By Name

  1. WEBGL_blend_equation_advanced_coherent
  2. WEBGL_draw_instanced_base_vertex_base_instance
  3. WEBGL_multi_draw_instanced_base_vertex_base_instance
  4. WEBGL_shader_pixel_local_storage
  5. EXT_conservative_depth
  6. NV_shader_noperspective_interpolation
  7. OES_sample_variables
  8. OES_shader_multisample_interpolation
  9. EXT_blend_func_extended
  10. EXT_render_snorm
  11. WEBGL_render_shared_exponent
  12. WEBGL_stencil_texturing
  13. EXT_texture_mirror_clamp_to_edge
  1. EXT_blend_func_extended
  2. EXT_conservative_depth
  3. EXT_render_snorm
  4. EXT_texture_mirror_clamp_to_edge
  5. NV_shader_noperspective_interpolation
  6. OES_sample_variables
  7. OES_shader_multisample_interpolation
  8. WEBGL_blend_equation_advanced_coherent
  9. WEBGL_draw_instanced_base_vertex_base_instance
  10. WEBGL_multi_draw_instanced_base_vertex_base_instance
  11. WEBGL_render_shared_exponent
  12. WEBGL_shader_pixel_local_storage
  13. WEBGL_stencil_texturing

Proposed WebGL Extensions (do not implement!)

By Name

Rejected WebGL Extensions

By Name

Recent WebGL Extension Revisions

  1. EXT_polygon_offset_clamp : revision 3 on
  2. EXT_clip_control : revision 2 on
  3. EXT_depth_clamp : revision 2 on
  4. WEBGL_polygon_mode : revision 2 on
  5. WEBGL_multi_draw : revision 8 on
  6. WEBGL_multi_draw_instanced_base_vertex_base_instance : revision 8 on
  7. WEBGL_shader_pixel_local_storage : revision 2 on
  8. WEBGL_clip_cull_distance : revision 5 on
  9. EXT_disjoint_timer_query_webgl2 : revision 4 on
  10. EXT_disjoint_timer_query : revision 11 on
Atom feed Recent Revisions