I have the opportunity to update our renderer, which we use for WebGL2. To make the rendering as compatible with feedback as possible, we continue to monitor downloaded extensions (as it was before the update) and emulate extensions, even if such an extension was advanced. The visualizer does a few relevant things with extensions. Outside, everything is pretty transparent.
To make it work smoothly, I need a complete list of advanced extensions. Found several blogs, but these lists are not complete. The other lists I found on GitHub do not look right because they have redundant extensions that did not actually advance or were dropped. I did not find much in the docs.
So, I did some empirical research and found:
// 12 extensions were promoted in WebGL2 without surprises [ 'ANGLE_instanced_arrays', 'EXT_blend_minmax', 'EXT_frag_depth', 'EXT_shader_texture_lod', 'EXT_sRGB', 'OES_element_index_uint', 'OES_standard_derivatives', 'OES_texture_float', 'OES_texture_half_float', 'OES_vertex_array_object', 'WEBGL_depth_texture', 'WEBGL_draw_buffers', ]
In particular, I am concerned about the extensions OES_texture_float_linear and OES_texture_half_float_linear , which are not on my list. WebGL2 Implementation I locally have OES_texture_float_linear , but don't have OES_texture_half_float_linear , while WebGL has both of them. I know that in the context of WebGL1 OES_texture_float_linear acts a little differently, so my intuition says that there may be problems.
In addition, something strange happened with the disjoint_timer_query extension. This extension has been partially merged. WebGL2 contexts got some properties of this extension. I have disjoint_timer_query_webgl2 in Chrome that has all the properties except one getQueryObject , which has been renamed to getQueryParameter , but in Firefox, the disjoint_timer_query extension is still available in the context of WebGL2.
So is this list complete? And in particular, should OES_texture_half_float_linear be listed? And why did it disappear while the similar OES_texture_float_linear remained?
Appreciate your help.
-
So the final answer (probably) should be:
// 14 extensions were promoted in WebGL2 [ 'ANGLE_instanced_arrays', 'EXT_blend_minmax', 'EXT_frag_depth', 'EXT_shader_texture_lod', 'OES_element_index_uint', 'OES_standard_derivatives', 'OES_texture_float', 'OES_texture_half_float', 'OES_vertex_array_object', 'WEBGL_depth_texture', 'WEBGL_draw_buffers', /* with caveats */ 'EXT_sRGB', 'OES_texture_half_float_linear', 'EXT_disjoint_timer_query', ]
Please note that the last three extensions have been advanced with reservations. The EXT_sRGB extension EXT_sRGB lost the constant SRGB_ALPHA . The OES_texture_half_float_linear extension OES_texture_half_float_linear promoted, but the OES_texture_float_linear analogue was not. The EXT_disjoint_timer_query extension is EXT_disjoint_timer_query advanced. Some properties of this extension appeared in the context of WebGL2, while other properties were ported to the EXT_disjoint_timer_query_webgl2 extension. Also, currently (2017.05.16), the Firefox WebGL2 context still has the EXT_disjoint_timer_query extensions and the EXT_disjoint_timer_query_webgl2 extension.