mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-03 14:09:33 +03:00
Write GL info to test artifact in end2end_tests.
These will show up as glinfo.json in the "cas outputs" of the shard that runs these tests. We currently have information for Pixel 4, NVIDIA and Intel Win/Linux, and SwiftShader Windows. GLES 1.x extensions are treated separately. Some WebGL/Mac-only/D3D-only extensions show as unsupported anywhere. In order to capture artifacts on Android, we use a render test output parameter. Bug: angleproject:6379 Change-Id: I560b219b5a586cdbb68d272090f38eedc76aba20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176780 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
This commit is contained in:
committed by
Angle LUCI CQ
parent
3d429f597f
commit
0004ecc2a4
2
BUILD.gn
2
BUILD.gn
@@ -1007,7 +1007,7 @@ if (angle_has_rapidjson) {
|
||||
}
|
||||
angle_source_set("angle_json_serializer") {
|
||||
public_deps = [
|
||||
":libANGLE_base",
|
||||
":angle_common",
|
||||
"$angle_root/third_party/rapidjson",
|
||||
]
|
||||
sources = [
|
||||
|
||||
@@ -1,206 +1,282 @@
|
||||
# ANGLE Supported Extensions
|
||||
|
||||
This is a list of all extensions currently supported by ANGLE's front-end. Back-end support is not
|
||||
yet documented. To produce a list of all supported extensions in the Vulkan back-end, run
|
||||
This is a list of all extensions currently supported by ANGLE's front-end, and
|
||||
support listed for some of the tested targets for ANGLE's Vulkan back-end. To
|
||||
produce a list of all supported extensions in the Vulkan back-end, run
|
||||
`angle_end2end_tests` with `--gtest_filter EGLPrintEGLinfoTest.PrintGLInfo/ES*_Vulkan`.
|
||||
|
||||
This list is automatically generated by gen_extensions.py using data from registry_xml.py and gl.xml.
|
||||
This list is automatically generated by [`gen_extensions.py`](../src/libANGLE/gen_extensions.py)
|
||||
using data from registry_xml.py and gl.xml.
|
||||
|
||||
| Extension Name |
|
||||
| -------------- |
|
||||
| `GL_ANGLE_base_vertex_base_instance` |
|
||||
| `GL_ANGLE_client_arrays` |
|
||||
| `GL_ANGLE_compressed_texture_etc` |
|
||||
| `GL_ANGLE_copy_texture_3d` |
|
||||
| `GL_ANGLE_depth_texture` |
|
||||
| `GL_ANGLE_framebuffer_blit` |
|
||||
| `GL_ANGLE_framebuffer_multisample` |
|
||||
| `GL_ANGLE_get_image` |
|
||||
| `GL_ANGLE_get_serialized_context_string` |
|
||||
| `GL_ANGLE_get_tex_level_parameter` |
|
||||
| `GL_ANGLE_instanced_arrays` |
|
||||
| `GL_ANGLE_lossy_etc_decode` |
|
||||
| `GL_ANGLE_memory_object_flags` |
|
||||
| `GL_ANGLE_memory_object_fuchsia` |
|
||||
| `GL_ANGLE_memory_size` |
|
||||
| `GL_ANGLE_multi_draw` |
|
||||
| `GL_ANGLE_multiview_multisample` |
|
||||
| `GL_ANGLE_pack_reverse_row_order` |
|
||||
| `GL_ANGLE_program_binary` |
|
||||
| `GL_ANGLE_program_cache_control` |
|
||||
| `GL_ANGLE_provoking_vertex` |
|
||||
| `GL_ANGLE_relaxed_vertex_attribute_type` |
|
||||
| `GL_ANGLE_request_extension` |
|
||||
| `GL_ANGLE_robust_client_memory` |
|
||||
| `GL_ANGLE_robust_resource_initialization` |
|
||||
| `GL_ANGLE_semaphore_fuchsia` |
|
||||
| `GL_ANGLE_texture_compression_dxt3` |
|
||||
| `GL_ANGLE_texture_compression_dxt5` |
|
||||
| `GL_ANGLE_texture_external_update` |
|
||||
| `GL_ANGLE_texture_multisample` |
|
||||
| `GL_ANGLE_texture_rectangle` |
|
||||
| `GL_ANGLE_texture_usage` |
|
||||
| `GL_ANGLE_translated_shader_source` |
|
||||
| `GL_ANGLE_webgl_compatibility` |
|
||||
| `GL_ANGLE_yuv_internal_format` |
|
||||
| `GL_APPLE_clip_distance` |
|
||||
| `GL_ARB_sync` |
|
||||
| `GL_CHROMIUM_bind_generates_resource` |
|
||||
| `GL_CHROMIUM_bind_uniform_location` |
|
||||
| `GL_CHROMIUM_color_buffer_float_rgb` |
|
||||
| `GL_CHROMIUM_color_buffer_float_rgba` |
|
||||
| `GL_CHROMIUM_copy_compressed_texture` |
|
||||
| `GL_CHROMIUM_copy_texture` |
|
||||
| `GL_CHROMIUM_framebuffer_mixed_samples` |
|
||||
| `GL_CHROMIUM_lose_context` |
|
||||
| `GL_CHROMIUM_sync_query` |
|
||||
| `GL_CHROMIUM_texture_filtering_hint` |
|
||||
| `GL_EXT_EGL_image_array` |
|
||||
| `GL_EXT_EGL_image_external_wrap_modes` |
|
||||
| `GL_EXT_EGL_image_storage` |
|
||||
| `GL_EXT_YUV_target` |
|
||||
| `GL_EXT_blend_func_extended` |
|
||||
| `GL_EXT_blend_minmax` |
|
||||
| `GL_EXT_buffer_storage` |
|
||||
| `GL_EXT_clip_control` |
|
||||
| `GL_EXT_clip_cull_distance` |
|
||||
| `GL_EXT_color_buffer_float` |
|
||||
| `GL_EXT_color_buffer_half_float` |
|
||||
| `GL_EXT_compressed_ETC1_RGB8_sub_texture` |
|
||||
| `GL_EXT_copy_image` |
|
||||
| `GL_EXT_debug_label` |
|
||||
| `GL_EXT_debug_marker` |
|
||||
| `GL_EXT_discard_framebuffer` |
|
||||
| `GL_EXT_disjoint_timer_query` |
|
||||
| `GL_EXT_draw_buffers` |
|
||||
| `GL_EXT_draw_buffers_indexed` |
|
||||
| `GL_EXT_draw_elements_base_vertex` |
|
||||
| `GL_EXT_external_buffer` |
|
||||
| `GL_EXT_float_blend` |
|
||||
| `GL_EXT_frag_depth` |
|
||||
| `GL_EXT_geometry_shader` |
|
||||
| `GL_EXT_gpu_shader5` |
|
||||
| `GL_EXT_instanced_arrays` |
|
||||
| `GL_EXT_map_buffer_range` |
|
||||
| `GL_EXT_memory_object` |
|
||||
| `GL_EXT_memory_object_fd` |
|
||||
| `GL_EXT_multisample_compatibility` |
|
||||
| `GL_EXT_multisampled_render_to_texture` |
|
||||
| `GL_EXT_multisampled_render_to_texture2` |
|
||||
| `GL_EXT_occlusion_query_boolean` |
|
||||
| `GL_EXT_primitive_bounding_box` |
|
||||
| `GL_EXT_protected_textures` |
|
||||
| `GL_EXT_pvrtc_sRGB` |
|
||||
| `GL_EXT_read_format_bgra` |
|
||||
| `GL_EXT_robustness` |
|
||||
| `GL_EXT_sRGB` |
|
||||
| `GL_EXT_sRGB_write_control` |
|
||||
| `GL_EXT_semaphore` |
|
||||
| `GL_EXT_semaphore_fd` |
|
||||
| `GL_EXT_separate_shader_objects` |
|
||||
| `GL_EXT_shader_framebuffer_fetch_non_coherent` |
|
||||
| `GL_EXT_shader_io_blocks` |
|
||||
| `GL_EXT_shader_non_constant_global_initializers` |
|
||||
| `GL_EXT_shader_texture_lod` |
|
||||
| `GL_EXT_shadow_samplers` |
|
||||
| `GL_EXT_tessellation_shader` |
|
||||
| `GL_EXT_texture_border_clamp` |
|
||||
| `GL_EXT_texture_buffer` |
|
||||
| `GL_EXT_texture_compression_bptc` |
|
||||
| `GL_EXT_texture_compression_dxt1` |
|
||||
| `GL_EXT_texture_compression_rgtc` |
|
||||
| `GL_EXT_texture_compression_s3tc` |
|
||||
| `GL_EXT_texture_compression_s3tc_srgb` |
|
||||
| `GL_EXT_texture_cube_map_array` |
|
||||
| `GL_EXT_texture_filter_anisotropic` |
|
||||
| `GL_EXT_texture_format_BGRA8888` |
|
||||
| `GL_EXT_texture_format_sRGB_override` |
|
||||
| `GL_EXT_texture_norm16` |
|
||||
| `GL_EXT_texture_rg` |
|
||||
| `GL_EXT_texture_sRGB_R8` |
|
||||
| `GL_EXT_texture_sRGB_RG8` |
|
||||
| `GL_EXT_texture_sRGB_decode` |
|
||||
| `GL_EXT_texture_storage` |
|
||||
| `GL_EXT_texture_type_2_10_10_10_REV` |
|
||||
| `GL_EXT_unpack_subimage` |
|
||||
| `GL_IMG_texture_compression_pvrtc` |
|
||||
| `GL_IMG_texture_compression_pvrtc2` |
|
||||
| `GL_KHR_blend_equation_advanced` |
|
||||
| `GL_KHR_debug` |
|
||||
| `GL_KHR_no_error` |
|
||||
| `GL_KHR_parallel_shader_compile` |
|
||||
| `GL_KHR_robust_buffer_access_behavior` |
|
||||
| `GL_KHR_texture_compression_astc_hdr` |
|
||||
| `GL_KHR_texture_compression_astc_ldr` |
|
||||
| `GL_KHR_texture_compression_astc_sliced_3d` |
|
||||
| `GL_NV_EGL_stream_consumer_external` |
|
||||
| `GL_NV_depth_buffer_float2` |
|
||||
| `GL_NV_fence` |
|
||||
| `GL_NV_framebuffer_blit` |
|
||||
| `GL_NV_pack_subimage` |
|
||||
| `GL_NV_pixel_buffer_object` |
|
||||
| `GL_NV_read_depth` |
|
||||
| `GL_NV_read_stencil` |
|
||||
| `GL_NV_robustness_video_memory_purge` |
|
||||
| `GL_NV_shader_noperspective_interpolation` |
|
||||
| `GL_OES_EGL_image` |
|
||||
| `GL_OES_EGL_image_external` |
|
||||
| `GL_OES_EGL_image_external_essl3` |
|
||||
| `GL_OES_EGL_sync` |
|
||||
| `GL_OES_compressed_EAC_R11_signed_texture` |
|
||||
| `GL_OES_compressed_EAC_R11_unsigned_texture` |
|
||||
| `GL_OES_compressed_EAC_RG11_signed_texture` |
|
||||
| `GL_OES_compressed_EAC_RG11_unsigned_texture` |
|
||||
| `GL_OES_compressed_ETC1_RGB8_texture` |
|
||||
| `GL_OES_compressed_ETC2_RGB8_texture` |
|
||||
| `GL_OES_compressed_ETC2_RGBA8_texture` |
|
||||
| `GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture` |
|
||||
| `GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture` |
|
||||
| `GL_OES_compressed_ETC2_sRGB8_alpha8_texture` |
|
||||
| `GL_OES_compressed_ETC2_sRGB8_texture` |
|
||||
| `GL_OES_copy_image` |
|
||||
| `GL_OES_depth24` |
|
||||
| `GL_OES_depth32` |
|
||||
| `GL_OES_depth_texture` |
|
||||
| `GL_OES_depth_texture_cube_map` |
|
||||
| `GL_OES_draw_buffers_indexed` |
|
||||
| `GL_OES_draw_elements_base_vertex` |
|
||||
| `GL_OES_draw_texture` |
|
||||
| `GL_OES_element_index_uint` |
|
||||
| `GL_OES_fbo_render_mipmap` |
|
||||
| `GL_OES_framebuffer_object` |
|
||||
| `GL_OES_geometry_shader` |
|
||||
| `GL_OES_get_program_binary` |
|
||||
| `GL_OES_mapbuffer` |
|
||||
| `GL_OES_matrix_palette` |
|
||||
| `GL_OES_packed_depth_stencil` |
|
||||
| `GL_OES_point_size_array` |
|
||||
| `GL_OES_point_sprite` |
|
||||
| `GL_OES_query_matrix` |
|
||||
| `GL_OES_rgb8_rgba8` |
|
||||
| `GL_OES_sample_shading` |
|
||||
| `GL_OES_sample_variables` |
|
||||
| `GL_OES_shader_image_atomic` |
|
||||
| `GL_OES_shader_io_blocks` |
|
||||
| `GL_OES_shader_multisample_interpolation` |
|
||||
| `GL_OES_standard_derivatives` |
|
||||
| `GL_OES_surfaceless_context` |
|
||||
| `GL_OES_texture_3D` |
|
||||
| `GL_OES_texture_border_clamp` |
|
||||
| `GL_OES_texture_buffer` |
|
||||
| `GL_OES_texture_compression_astc` |
|
||||
| `GL_OES_texture_cube_map` |
|
||||
| `GL_OES_texture_cube_map_array` |
|
||||
| `GL_OES_texture_float` |
|
||||
| `GL_OES_texture_float_linear` |
|
||||
| `GL_OES_texture_half_float` |
|
||||
| `GL_OES_texture_half_float_linear` |
|
||||
| `GL_OES_texture_npot` |
|
||||
| `GL_OES_texture_stencil8` |
|
||||
| `GL_OES_texture_storage_multisample_2d_array` |
|
||||
| `GL_OES_vertex_array_object` |
|
||||
| `GL_OES_vertex_half_float` |
|
||||
| `GL_OES_vertex_type_10_10_10_2` |
|
||||
| `GL_OVR_multiview` |
|
||||
| `GL_OVR_multiview2` |
|
||||
| `GL_WEBGL_video_texture` |
|
||||
## GLES 2.0, 3.0, 3.1 and 3.2 extension support
|
||||
|
||||
*Note: some data is sampled from older drivers, so might not represent the latest driver support.*
|
||||
|
||||
| Extension Name | NVIDIA P400 Win10 | Intel 630 Win10 | NVIDIA P400 Linux | Intel 630 Linux | SwiftShader Win10 | Pixel 4 Android 11 |
|
||||
| -------------- | :---------------: | :-------------: | :---------------: | :-------------: | :---------------: | :----------------: |
|
||||
| [GL_KHR_blend_equation_advanced](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_blend_equation_advanced.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_blend_func_extended](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_func_extended.txt) | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ |
|
||||
| [GL_EXT_blend_minmax](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_minmax.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_buffer_storage](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_buffer_storage.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_clip_control](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_control.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_clip_cull_distance](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_cull_distance.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_APPLE_clip_distance](https://khronos.org/registry/OpenGL/extensions/APPLE/APPLE_clip_distance.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_color_buffer_float](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_color_buffer_float.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_color_buffer_half_float](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_color_buffer_half_float.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_EAC_R11_signed_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_EAC_R11_signed_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_EAC_R11_unsigned_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_EAC_R11_unsigned_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_EAC_RG11_signed_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_EAC_RG11_signed_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_EAC_RG11_unsigned_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_EAC_RG11_unsigned_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_compressed_ETC1_RGB8_sub_texture](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_compressed_ETC1_RGB8_sub_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC1_RGB8_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC2_punchthroughA_RGBA8_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC2_RGB8_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC2_RGB8_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC2_RGBA8_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC2_RGBA8_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC2_sRGB8_alpha8_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC2_sRGB8_alpha8_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_compressed_ETC2_sRGB8_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC2_sRGB8_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_copy_image](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_copy_image.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_copy_image](https://khronos.org/registry/OpenGL/extensions/OES/OES_copy_image.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_KHR_debug](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_debug.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_debug_label](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_debug_label.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_debug_marker](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_debug_marker.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_depth24](https://khronos.org/registry/OpenGL/extensions/OES/OES_depth24.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_depth32](https://khronos.org/registry/OpenGL/extensions/OES/OES_depth32.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_NV_depth_buffer_float2](https://khronos.org/registry/OpenGL/extensions/NV/NV_depth_buffer_float2.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_depth_texture](https://khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_depth_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_depth_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_depth_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_depth_texture_cube_map](https://khronos.org/registry/OpenGL/extensions/OES/OES_depth_texture_cube_map.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_discard_framebuffer](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_discard_framebuffer.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_disjoint_timer_query](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_disjoint_timer_query.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_draw_buffers](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_draw_buffers_indexed](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers_indexed.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_draw_buffers_indexed](https://khronos.org/registry/OpenGL/extensions/OES/OES_draw_buffers_indexed.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_draw_elements_base_vertex](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_elements_base_vertex.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_draw_elements_base_vertex](https://khronos.org/registry/OpenGL/extensions/OES/OES_draw_elements_base_vertex.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_EGL_image](https://khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_EGL_image_array](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_array.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_EGL_image_external](https://khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_EGL_image_external_essl3](https://khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external_essl3.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_EGL_image_external_wrap_modes](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_external_wrap_modes.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_EGL_image_storage](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_storage.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_NV_EGL_stream_consumer_external](https://khronos.org/registry/OpenGL/extensions/NV/NV_EGL_stream_consumer_external.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_EGL_sync](https://khronos.org/registry/OpenGL/extensions/OES/OES_EGL_sync.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_element_index_uint](https://khronos.org/registry/OpenGL/extensions/OES/OES_element_index_uint.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_external_buffer](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_external_buffer.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ |
|
||||
| [GL_OES_fbo_render_mipmap](https://khronos.org/registry/OpenGL/extensions/OES/OES_fbo_render_mipmap.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_NV_fence](https://khronos.org/registry/OpenGL/extensions/NV/NV_fence.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_float_blend](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_float_blend.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_frag_depth](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_frag_depth.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_framebuffer_blit](https://khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_framebuffer_blit.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_NV_framebuffer_blit](https://khronos.org/registry/OpenGL/extensions/NV/NV_framebuffer_blit.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_geometry_shader](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_geometry_shader.txt) | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_geometry_shader](https://khronos.org/registry/OpenGL/extensions/OES/OES_geometry_shader.txt) | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_get_program_binary](https://khronos.org/registry/OpenGL/extensions/OES/OES_get_program_binary.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_gpu_shader5](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader5.txt) | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ |
|
||||
| [GL_ANGLE_instanced_arrays](https://khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_instanced_arrays.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_instanced_arrays](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_instanced_arrays.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_mapbuffer](https://khronos.org/registry/OpenGL/extensions/OES/OES_mapbuffer.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_map_buffer_range](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_map_buffer_range.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_memory_object](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_memory_object.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_memory_object_fd](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_external_objects_fd.txt) | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ |
|
||||
| [GL_EXT_multisample_compatibility](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_multisample_compatibility.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_multisampled_render_to_texture](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture.txt) | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_multisampled_render_to_texture2](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture2.txt) | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OVR_multiview](https://khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview.txt) | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ |
|
||||
| [GL_OVR_multiview2](https://khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview2.txt) | ✔ | ✔ | ❌ | ❌ | ✔ | ✔ |
|
||||
| [GL_KHR_no_error](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_no_error.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_occlusion_query_boolean](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_occlusion_query_boolean.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_packed_depth_stencil](https://khronos.org/registry/OpenGL/extensions/OES/OES_packed_depth_stencil.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_pack_reverse_row_order](https://khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_pack_reverse_row_order.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_NV_pack_subimage](https://khronos.org/registry/OpenGL/extensions/NV/NV_pack_subimage.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_KHR_parallel_shader_compile](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_parallel_shader_compile.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_NV_pixel_buffer_object](https://khronos.org/registry/OpenGL/extensions/NV/NV_pixel_buffer_object.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_primitive_bounding_box](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_primitive_bounding_box.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_protected_textures](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_protected_textures.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ✔ |
|
||||
| [GL_EXT_pvrtc_sRGB](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_pvrtc_sRGB.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_NV_read_depth](https://khronos.org/registry/OpenGL/extensions/NV/NV_read_depth.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_read_format_bgra](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_read_format_bgra.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_NV_read_stencil](https://khronos.org/registry/OpenGL/extensions/NV/NV_read_stencil.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_rgb8_rgba8](https://khronos.org/registry/OpenGL/extensions/OES/OES_rgb8_rgba8.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_KHR_robust_buffer_access_behavior](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_robust_buffer_access_behavior.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_robustness](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_robustness.txt) | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ |
|
||||
| [GL_NV_robustness_video_memory_purge](https://khronos.org/registry/OpenGL/extensions/NV/NV_robustness_video_memory_purge.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_sample_shading](https://khronos.org/registry/OpenGL/extensions/OES/OES_sample_shading.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_sample_variables](https://khronos.org/registry/OpenGL/extensions/OES/OES_sample_variables.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_semaphore](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_semaphore.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_semaphore_fd](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_external_objects_fd.txt) | ❌ | ❌ | ✔ | ✔ | ❌ | ✔ |
|
||||
| [GL_EXT_separate_shader_objects](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_separate_shader_objects.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_shader_framebuffer_fetch_non_coherent](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_framebuffer_fetch_non_coherent.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_OES_shader_image_atomic](https://khronos.org/registry/OpenGL/extensions/OES/OES_shader_image_atomic.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_shader_io_blocks](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_io_blocks.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_shader_io_blocks](https://khronos.org/registry/OpenGL/extensions/OES/OES_shader_io_blocks.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_shader_multisample_interpolation](https://khronos.org/registry/OpenGL/extensions/OES/OES_shader_multisample_interpolation.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_shader_non_constant_global_initializers](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_non_constant_global_initializers.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_NV_shader_noperspective_interpolation](https://khronos.org/registry/OpenGL/extensions/NV/NV_shader_noperspective_interpolation.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_shader_texture_lod](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_texture_lod.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_shadow_samplers](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_shadow_samplers.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_sRGB](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_sRGB.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_sRGB_write_control](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_sRGB_write_control.txt) | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ |
|
||||
| [GL_OES_standard_derivatives](https://khronos.org/registry/OpenGL/extensions/OES/OES_standard_derivatives.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_surfaceless_context](https://khronos.org/registry/OpenGL/extensions/OES/OES_surfaceless_context.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ARB_sync](https://khronos.org/registry/OpenGL/extensions/ARB/ARB_sync.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_tessellation_shader](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_tessellation_shader.txt) | ✔ | ✔ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_texture_3D](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_3D.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_border_clamp](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_border_clamp.txt) | ✔ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_texture_border_clamp](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_border_clamp.txt) | ✔ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_texture_buffer](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_buffer.txt) | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_buffer](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_buffer.txt) | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_compression_astc](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_compression_astc.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_KHR_texture_compression_astc_hdr](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_KHR_texture_compression_astc_ldr](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_ldr.txt) | ❌ | ✔ | ❌ | ✔ | ✔ | ✔ |
|
||||
| [GL_KHR_texture_compression_astc_sliced_3d](https://khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_sliced_3d.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_texture_compression_bptc](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_bptc.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_EXT_texture_compression_dxt1](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_dxt1.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_IMG_texture_compression_pvrtc](https://khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_compression_pvrtc.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_IMG_texture_compression_pvrtc2](https://khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_compression_pvrtc2.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_texture_compression_rgtc](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_rgtc.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_EXT_texture_compression_s3tc](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_s3tc.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_texture_compression_s3tc_srgb](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_s3tc_srgb.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_EXT_texture_cube_map_array](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_cube_map_array.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_cube_map_array](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_cube_map_array.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_filter_anisotropic](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_filter_anisotropic.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_float](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_float.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_float_linear](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_float_linear.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_EXT_texture_format_BGRA8888](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_format_BGRA8888.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_format_sRGB_override](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_format_sRGB_override.txt) | ❌ | ✔ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_OES_texture_half_float](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_half_float.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_half_float_linear](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_half_float_linear.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_norm16](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_norm16.txt) | ❌ | ✔ | ❌ | ✔ | ❌ | ❌ |
|
||||
| [GL_OES_texture_npot](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_npot.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_rg](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_rg.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_sRGB_decode](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB_decode.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_sRGB_R8](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB_R8.txt) | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_sRGB_RG8](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB_RG8.txt) | ❌ | ❌ | ❌ | ❌ | ✔ | ✔ |
|
||||
| [GL_OES_texture_stencil8](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_stencil8.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_storage](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_storage.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_texture_storage_multisample_2d_array](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_storage_multisample_2d_array.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_EXT_texture_type_2_10_10_10_REV](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_type_2_10_10_10_REV.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_texture_usage](https://khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_texture_usage.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_translated_shader_source](https://khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_translated_shader_source.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_unpack_subimage](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_unpack_subimage.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_vertex_array_object](https://khronos.org/registry/OpenGL/extensions/OES/OES_vertex_array_object.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_vertex_half_float](https://khronos.org/registry/OpenGL/extensions/OES/OES_vertex_half_float.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_OES_vertex_type_10_10_10_2](https://khronos.org/registry/OpenGL/extensions/OES/OES_vertex_type_10_10_10_2.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_WEBGL_video_texture](https://khronos.org/registry/OpenGL/extensions/WEBGL/WEBGL_video_texture.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_EXT_YUV_target](https://khronos.org/registry/OpenGL/extensions/EXT/EXT_YUV_target.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
|
||||
## ANGLE unofficial extension support
|
||||
|
||||
*Note: some ANGLE extensions are currently missing specifications.*
|
||||
|
||||
| Extension Name | NVIDIA P400 Win10 | Intel 630 Win10 | NVIDIA P400 Linux | Intel 630 Linux | SwiftShader Win10 | Pixel 4 Android 11 |
|
||||
| -------------- | :---------------: | :-------------: | :---------------: | :-------------: | :---------------: | :----------------: |
|
||||
| [GL_ANGLE_base_vertex_base_instance](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_base_vertex_base_instance.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_bind_generates_resource](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_bind_generates_resource.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_bind_uniform_location](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_bind_uniform_location.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_client_arrays](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_client_arrays.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_color_buffer_float_rgb](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_color_buffer_float_rgb.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_CHROMIUM_color_buffer_float_rgba](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_color_buffer_float_rgba.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_compressed_texture_etc](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_compressed_texture_etc.txt) | ❌ | ✔ | ❌ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_copy_compressed_texture](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_copy_compressed_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_copy_texture](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_copy_texture.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_copy_texture_3d](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_copy_texture_3d.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_framebuffer_mixed_samples](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_framebuffer_mixed_samples.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_framebuffer_multisample](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_framebuffer_multisample.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_get_image](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_get_image.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_get_serialized_context_string](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_get_serialized_context_string.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_get_tex_level_parameter](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_get_tex_level_parameter.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_CHROMIUM_lose_context](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_lose_context.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_lossy_etc_decode](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_lossy_etc_decode.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_memory_object_flags](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_memory_object_flags.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_memory_object_fuchsia](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_memory_object_fuchsia.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_memory_size](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_memory_size.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_multi_draw](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_multi_draw.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_multiview_multisample](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_multiview_multisample.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_program_binary](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_program_binary.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_program_cache_control](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_program_cache_control.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_provoking_vertex](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_provoking_vertex.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_relaxed_vertex_attribute_type](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_relaxed_vertex_attribute_type.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_request_extension](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_request_extension.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_robust_client_memory](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_robust_client_memory.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| [GL_ANGLE_robust_resource_initialization](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_robust_resource_initialization.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_semaphore_fuchsia](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_semaphore_fuchsia.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_CHROMIUM_sync_query](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_sync_query.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_texture_compression_dxt3](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_texture_compression_dxt3.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_ANGLE_texture_compression_dxt5](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_texture_compression_dxt5.txt) | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
|
||||
| [GL_ANGLE_texture_external_update](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_texture_external_update.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_CHROMIUM_texture_filtering_hint](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/CHROMIUM_texture_filtering_hint.txt) | ❌ | ❌ | ❌ | ❌ | ✔ | ❌ |
|
||||
| [GL_ANGLE_texture_multisample](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_texture_multisample.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_texture_rectangle](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_texture_rectangle.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_webgl_compatibility](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_webgl_compatibility.txt) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [GL_ANGLE_yuv_internal_format](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/ANGLE_yuv_internal_format.txt) | ✔ | ❌ | ✔ | ✔ | ✔ | ✔ |
|
||||
|
||||
## GLES 1.0 and 1.1 extension support
|
||||
|
||||
| Extension Name | SwiftShader Win10 |
|
||||
| -------------- | :---------------: |
|
||||
| [GL_OES_draw_texture](https://khronos.org/registry/OpenGL/extensions/OES/OES_draw_texture.txt) | ✔ |
|
||||
| [GL_OES_framebuffer_object](https://khronos.org/registry/OpenGL/extensions/OES/OES_framebuffer_object.txt) | ✔ |
|
||||
| [GL_OES_matrix_palette](https://khronos.org/registry/OpenGL/extensions/OES/OES_matrix_palette.txt) | ❌ |
|
||||
| [GL_OES_point_size_array](https://khronos.org/registry/OpenGL/extensions/OES/OES_point_size_array.txt) | ✔ |
|
||||
| [GL_OES_point_sprite](https://khronos.org/registry/OpenGL/extensions/OES/OES_point_sprite.txt) | ✔ |
|
||||
| [GL_OES_query_matrix](https://khronos.org/registry/OpenGL/extensions/OES/OES_query_matrix.txt) | ❌ |
|
||||
| [GL_OES_texture_cube_map](https://khronos.org/registry/OpenGL/extensions/OES/OES_texture_cube_map.txt) | ✔ |
|
||||
|
||||
NVIDIA P400 Win10:
|
||||
|
||||
* `GL_RENDERER` is `ANGLE (NVIDIA, Vulkan 1.2.133 (NVIDIA Quadro P400 (0x00001CB3)), NVIDIA-451.48.0.0)`
|
||||
* `GL_VENDOR` is `Google Inc. (NVIDIA)`
|
||||
* `GL_VERSION` is `OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)`
|
||||
* Data updated September 22, 2021
|
||||
|
||||
Intel 630 Win10:
|
||||
|
||||
* `GL_RENDERER` is `ANGLE (Intel, Vulkan 1.2.135 (Intel(R) HD Graphics 630 (0x00005912)), Intel Corporation-100.100.)`
|
||||
* `GL_VENDOR` is `Google Inc. (Intel)`
|
||||
* `GL_VERSION` is `OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)`
|
||||
* Data updated September 22, 2021
|
||||
|
||||
NVIDIA P400 Linux:
|
||||
|
||||
* `GL_RENDERER` is `ANGLE (NVIDIA, Vulkan 1.1.95 (NVIDIA Quadro P400 (0x00001CB3)), NVIDIA-418.56.0.0)`
|
||||
* `GL_VENDOR` is `Google Inc. (NVIDIA)`
|
||||
* `GL_VERSION` is `OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)`
|
||||
* Data updated September 22, 2021
|
||||
|
||||
Intel 630 Linux:
|
||||
|
||||
* `GL_RENDERER` is `ANGLE (Intel, Vulkan 1.1.96 (Intel(R) HD Graphics 630 (Kaby Lake GT2) (0x00005912)), Intel open-source Mesa driver-19.0.2)`
|
||||
* `GL_VENDOR` is `Google Inc. (Intel)`
|
||||
* `GL_VERSION` is `OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)`
|
||||
* Data updated September 22, 2021
|
||||
|
||||
SwiftShader Win10:
|
||||
|
||||
* `GL_RENDERER` is `ANGLE (Google, Vulkan 1.2.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver-5.0.0)`
|
||||
* `GL_VENDOR` is `Google Inc. (Google)`
|
||||
* `GL_VERSION` is `OpenGL ES 3.1.0 (ANGLE 2.1.16782 git hash: 368c0ce94472)`
|
||||
* Data updated September 23, 2021
|
||||
|
||||
Pixel 4 Android 11:
|
||||
|
||||
* `GL_RENDERER` is `ANGLE (Qualcomm, Vulkan 1.1.128 (Adreno (TM) 640 (0x06040001)), Qualcomm Technologies Inc. Adreno Vulkan Driver-512.490.0)`
|
||||
* `GL_VENDOR` is `Google Inc. (Qualcomm)`
|
||||
* `GL_VERSION` is `OpenGL ES 3.2.0 (ANGLE 2.1.16782 git hash: 368c0ce94472)`
|
||||
* Data updated September 23, 2021
|
||||
|
||||
## How to update supported extension data
|
||||
|
||||
Supported extension data is stored in the ANGLE repo as JSON files in
|
||||
[`scripts/extension_data`](../scripts/extension_data). The JSON data is
|
||||
sourced from public ANGLE test runs. Look for `angle_end2end_tests` in a bot
|
||||
run: [example link]
|
||||
(https://ci.chromium.org/ui/p/angle/builders/ci/win-clang-x64-rel/8183/overview).
|
||||
Search for "`angle_end2end_tests`", then click on the "cas output" and find
|
||||
`GLinfo_ES3_2_Vulkan.json`. Copy and paste the file contents into a file in
|
||||
the folder above.
|
||||
|
||||
To update or add a new configuration, first retrieve the JSON data, modify
|
||||
[`gen_extensions.py`](../src/libANGLE/gen_extensions.py) if necessary, then
|
||||
run [`scripts/run_code_generation.py`](../scripts/run_code_generation.py) to
|
||||
refresh generated files.
|
||||
|
||||
@@ -529,7 +529,8 @@
|
||||
"angle_end2end_tests",
|
||||
"--gtest_filter=-*Vulkan_SwiftShader*",
|
||||
"--shard-timeout=180",
|
||||
"-v"
|
||||
"-v",
|
||||
"--render-test-output-dir=${ISOLATED_OUTDIR}"
|
||||
],
|
||||
"merge": {
|
||||
"args": [],
|
||||
|
||||
@@ -742,6 +742,8 @@
|
||||
'android_args': [
|
||||
'--shard-timeout=180',
|
||||
'-v',
|
||||
# We use this argument to save test artifacts.
|
||||
'--render-test-output-dir=${ISOLATED_OUTDIR}',
|
||||
],
|
||||
'android_swarming': {
|
||||
'shards': 4,
|
||||
|
||||
@@ -1,12 +1,26 @@
|
||||
{
|
||||
"doc/SupportedExtensions.md":
|
||||
"4e06f9a617d379fe869ac6fa515b1bb2",
|
||||
"3a831d3b72baf1089e0e78a19b3e3374",
|
||||
"scripts/cl.xml":
|
||||
"f923201d4ea3e1130763b19fa7faa7a2",
|
||||
"scripts/egl.xml":
|
||||
"013c552e6c523abdcf268268ea47e9fe",
|
||||
"scripts/egl_angle_ext.xml":
|
||||
"5bcc01462b355d933cf3ada15198fb68",
|
||||
"scripts/extension_data/intel_630_linux.json":
|
||||
"ce0daa93e617ce36bffbcace2a56160e",
|
||||
"scripts/extension_data/intel_630_win10.json":
|
||||
"34cf383e82e7ee8f5df22e57a6a3d9e8",
|
||||
"scripts/extension_data/nvidia_p400_linux.json":
|
||||
"664ee9c342f0ff9c2e1f883e79946307",
|
||||
"scripts/extension_data/nvidia_p400_win10.json":
|
||||
"0623157acbc7ba7e8614ef60e399d3be",
|
||||
"scripts/extension_data/pixel_4_android_11.json":
|
||||
"3e57bd9a2368657007719c3cfe18ea7e",
|
||||
"scripts/extension_data/swiftshader_win10.json":
|
||||
"396fde2ceb0c833fe2ce405c9f1bd901",
|
||||
"scripts/extension_data/swiftshader_win10_gles1.json":
|
||||
"368aa3eef8fcfc01ba322ea34ca505e9",
|
||||
"scripts/gl.xml":
|
||||
"a442a7aeff3a2f0a1fba52ee08089500",
|
||||
"scripts/gl_angle_ext.xml":
|
||||
@@ -16,7 +30,7 @@
|
||||
"scripts/wgl.xml":
|
||||
"c36001431919e1c435f1215a85f7e1db",
|
||||
"src/libANGLE/gen_extensions.py":
|
||||
"09abdc7e386601ea3b259cd30ec08ea0",
|
||||
"50b566e2d23bb28448a33c485d388327",
|
||||
"src/libANGLE/gles_extensions_autogen.cpp":
|
||||
"039e36b4e6f02839e380b07fc9cb2855",
|
||||
"src/libANGLE/gles_extensions_autogen.h":
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"infra/specs/angle.json":
|
||||
"6e6154bf4e17d1de6a6b4a5216a56152",
|
||||
"aa74dac3999debc1d7d509ab223e171d",
|
||||
"infra/specs/generate_test_spec_json.py":
|
||||
"348921bf70270ec6ee51fbb7e97d6925",
|
||||
"infra/specs/mixins.pyl":
|
||||
@@ -8,7 +8,7 @@
|
||||
"infra/specs/test_suite_exceptions.pyl":
|
||||
"723460da84a90884a9668c07a0893390",
|
||||
"infra/specs/test_suites.pyl":
|
||||
"f82c7a1b34ee773912d51018de703467",
|
||||
"2b1cf89b1ecd6fcb1ee4b01f6105c077",
|
||||
"infra/specs/variants.pyl":
|
||||
"8cfcaa99fa07ad2a2d5d14f220fd5037",
|
||||
"infra/specs/waterfalls.pyl":
|
||||
|
||||
150
scripts/extension_data/intel_630_linux.json
Normal file
150
scripts/extension_data/intel_630_linux.json
Normal file
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (Intel)",
|
||||
"Version": "OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Renderer": "ANGLE (Intel, Vulkan 1.1.96 (Intel(R) HD Graphics 630 (Kaby Lake GT2) (0x00005912)), Intel open-source Mesa driver-19.0.2)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 3.20 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_compressed_texture_etc",
|
||||
"GL_ANGLE_copy_texture_3d",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_texture_compression_dxt3",
|
||||
"GL_ANGLE_texture_compression_dxt5",
|
||||
"GL_ANGLE_yuv_internal_format",
|
||||
"GL_APPLE_clip_distance",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_EXT_EGL_image_array",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_func_extended",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_clip_cull_distance",
|
||||
"GL_EXT_color_buffer_float",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers_indexed",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_gpu_shader5",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_memory_object_fd",
|
||||
"GL_EXT_multisampled_render_to_texture",
|
||||
"GL_EXT_multisampled_render_to_texture2",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_robustness",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_sRGB_write_control",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_semaphore_fd",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_framebuffer_fetch_non_coherent",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_texture_buffer",
|
||||
"GL_EXT_texture_compression_bptc",
|
||||
"GL_EXT_texture_compression_dxt1",
|
||||
"GL_EXT_texture_compression_rgtc",
|
||||
"GL_EXT_texture_compression_s3tc_srgb",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_norm16",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_R8",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_parallel_shader_compile",
|
||||
"GL_KHR_texture_compression_astc_ldr",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_image_external_essl3",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_buffers_indexed",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_3D",
|
||||
"GL_OES_texture_buffer",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_float_linear",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_texture_storage_multisample_2d_array",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float",
|
||||
"GL_OES_vertex_type_10_10_10_2"
|
||||
],
|
||||
"DateRecorded": "September 22, 2021"
|
||||
}
|
||||
148
scripts/extension_data/intel_630_win10.json
Normal file
148
scripts/extension_data/intel_630_win10.json
Normal file
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (Intel)",
|
||||
"Version": "OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Renderer": "ANGLE (Intel, Vulkan 1.2.135 (Intel(R) HD Graphics 630 (0x00005912)), Intel Corporation-100.100.)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 3.20 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_compressed_texture_etc",
|
||||
"GL_ANGLE_copy_texture_3d",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_texture_compression_dxt3",
|
||||
"GL_ANGLE_texture_compression_dxt5",
|
||||
"GL_APPLE_clip_distance",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_EXT_EGL_image_array",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_func_extended",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_clip_cull_distance",
|
||||
"GL_EXT_color_buffer_float",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers_indexed",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_geometry_shader",
|
||||
"GL_EXT_gpu_shader5",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_robustness",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_sRGB_write_control",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_framebuffer_fetch_non_coherent",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_tessellation_shader",
|
||||
"GL_EXT_texture_compression_bptc",
|
||||
"GL_EXT_texture_compression_dxt1",
|
||||
"GL_EXT_texture_compression_rgtc",
|
||||
"GL_EXT_texture_compression_s3tc_srgb",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_format_sRGB_override",
|
||||
"GL_EXT_texture_norm16",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_parallel_shader_compile",
|
||||
"GL_KHR_texture_compression_astc_ldr",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_image_external_essl3",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_buffers_indexed",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_geometry_shader",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_3D",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_float_linear",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_texture_storage_multisample_2d_array",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float",
|
||||
"GL_OES_vertex_type_10_10_10_2",
|
||||
"GL_OVR_multiview",
|
||||
"GL_OVR_multiview2"
|
||||
],
|
||||
"DateRecorded": "September 22, 2021"
|
||||
}
|
||||
147
scripts/extension_data/nvidia_p400_linux.json
Normal file
147
scripts/extension_data/nvidia_p400_linux.json
Normal file
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (NVIDIA)",
|
||||
"Version": "OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Renderer": "ANGLE (NVIDIA, Vulkan 1.1.95 (NVIDIA Quadro P400 (0x00001CB3)), NVIDIA-418.56.0.0)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 3.20 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_copy_texture_3d",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_texture_compression_dxt3",
|
||||
"GL_ANGLE_texture_compression_dxt5",
|
||||
"GL_ANGLE_yuv_internal_format",
|
||||
"GL_APPLE_clip_distance",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_EXT_EGL_image_array",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_func_extended",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_clip_cull_distance",
|
||||
"GL_EXT_color_buffer_float",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers_indexed",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_gpu_shader5",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_memory_object_fd",
|
||||
"GL_EXT_multisampled_render_to_texture",
|
||||
"GL_EXT_multisampled_render_to_texture2",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_robustness",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_sRGB_write_control",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_semaphore_fd",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_framebuffer_fetch_non_coherent",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_texture_buffer",
|
||||
"GL_EXT_texture_compression_bptc",
|
||||
"GL_EXT_texture_compression_dxt1",
|
||||
"GL_EXT_texture_compression_rgtc",
|
||||
"GL_EXT_texture_compression_s3tc_srgb",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_R8",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_parallel_shader_compile",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_image_external_essl3",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_buffers_indexed",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_3D",
|
||||
"GL_OES_texture_buffer",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_float_linear",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_texture_storage_multisample_2d_array",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float",
|
||||
"GL_OES_vertex_type_10_10_10_2"
|
||||
],
|
||||
"DateRecorded": "September 22, 2021"
|
||||
}
|
||||
152
scripts/extension_data/nvidia_p400_win10.json
Normal file
152
scripts/extension_data/nvidia_p400_win10.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (NVIDIA)",
|
||||
"Version": "OpenGL ES 3.2.0 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Renderer": "ANGLE (NVIDIA, Vulkan 1.2.133 (NVIDIA Quadro P400 (0x00001CB3)), NVIDIA-451.48.0.0)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 3.20 (ANGLE 2.1.16778 git hash: c3e0eafaf38d)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_copy_texture_3d",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_texture_compression_dxt3",
|
||||
"GL_ANGLE_texture_compression_dxt5",
|
||||
"GL_ANGLE_yuv_internal_format",
|
||||
"GL_APPLE_clip_distance",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_EXT_EGL_image_array",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_func_extended",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_clip_cull_distance",
|
||||
"GL_EXT_color_buffer_float",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers_indexed",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_geometry_shader",
|
||||
"GL_EXT_gpu_shader5",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_multisampled_render_to_texture",
|
||||
"GL_EXT_multisampled_render_to_texture2",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_robustness",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_sRGB_write_control",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_framebuffer_fetch_non_coherent",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_tessellation_shader",
|
||||
"GL_EXT_texture_border_clamp",
|
||||
"GL_EXT_texture_buffer",
|
||||
"GL_EXT_texture_compression_bptc",
|
||||
"GL_EXT_texture_compression_dxt1",
|
||||
"GL_EXT_texture_compression_rgtc",
|
||||
"GL_EXT_texture_compression_s3tc_srgb",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_R8",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_parallel_shader_compile",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_image_external_essl3",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_buffers_indexed",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_geometry_shader",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_3D",
|
||||
"GL_OES_texture_border_clamp",
|
||||
"GL_OES_texture_buffer",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_float_linear",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_texture_storage_multisample_2d_array",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float",
|
||||
"GL_OES_vertex_type_10_10_10_2",
|
||||
"GL_OVR_multiview",
|
||||
"GL_OVR_multiview2"
|
||||
],
|
||||
"DateRecorded": "September 22, 2021"
|
||||
}
|
||||
146
scripts/extension_data/pixel_4_android_11.json
Normal file
146
scripts/extension_data/pixel_4_android_11.json
Normal file
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (Qualcomm)",
|
||||
"Version": "OpenGL ES 3.2.0 (ANGLE 2.1.16782 git hash: 368c0ce94472)",
|
||||
"Renderer": "ANGLE (Qualcomm, Vulkan 1.1.128 (Adreno (TM) 640 (0x06040001)), Qualcomm Technologies Inc. Adreno Vulkan Driver-512.490.0)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 3.20 (ANGLE 2.1.16782 git hash: 368c0ce94472)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_compressed_texture_etc",
|
||||
"GL_ANGLE_copy_texture_3d",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_yuv_internal_format",
|
||||
"GL_APPLE_clip_distance",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_EXT_EGL_image_array",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_func_extended",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_clip_cull_distance",
|
||||
"GL_EXT_color_buffer_float",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers_indexed",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_external_buffer",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_gpu_shader5",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_memory_object_fd",
|
||||
"GL_EXT_multisampled_render_to_texture",
|
||||
"GL_EXT_multisampled_render_to_texture2",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_protected_textures",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_robustness",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_sRGB_write_control",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_semaphore_fd",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_texture_buffer",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_R8",
|
||||
"GL_EXT_texture_sRGB_RG8",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_parallel_shader_compile",
|
||||
"GL_KHR_texture_compression_astc_ldr",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_image_external_essl3",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_buffers_indexed",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_3D",
|
||||
"GL_OES_texture_buffer",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_texture_storage_multisample_2d_array",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float",
|
||||
"GL_OES_vertex_type_10_10_10_2",
|
||||
"GL_OVR_multiview",
|
||||
"GL_OVR_multiview2"
|
||||
],
|
||||
"DateRecorded": "September 23, 2021"
|
||||
}
|
||||
147
scripts/extension_data/swiftshader_win10.json
Normal file
147
scripts/extension_data/swiftshader_win10.json
Normal file
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (Google)",
|
||||
"Version": "OpenGL ES 3.1.0 (ANGLE 2.1.16782 git hash: 368c0ce94472)",
|
||||
"Renderer": "ANGLE (Google, Vulkan 1.2.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver-5.0.0)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 3.10 (ANGLE 2.1.16782 git hash: 368c0ce94472)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_compressed_texture_etc",
|
||||
"GL_ANGLE_copy_texture_3d",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_texture_compression_dxt3",
|
||||
"GL_ANGLE_texture_compression_dxt5",
|
||||
"GL_ANGLE_yuv_internal_format",
|
||||
"GL_APPLE_clip_distance",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_CHROMIUM_texture_filtering_hint",
|
||||
"GL_EXT_EGL_image_array",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_clip_cull_distance",
|
||||
"GL_EXT_color_buffer_float",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_buffers_indexed",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_multisampled_render_to_texture",
|
||||
"GL_EXT_multisampled_render_to_texture2",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_framebuffer_fetch_non_coherent",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_texture_buffer",
|
||||
"GL_EXT_texture_compression_bptc",
|
||||
"GL_EXT_texture_compression_dxt1",
|
||||
"GL_EXT_texture_compression_rgtc",
|
||||
"GL_EXT_texture_compression_s3tc_srgb",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_R8",
|
||||
"GL_EXT_texture_sRGB_RG8",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_parallel_shader_compile",
|
||||
"GL_KHR_texture_compression_astc_ldr",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_image_external_essl3",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_buffers_indexed",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_3D",
|
||||
"GL_OES_texture_buffer",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_float_linear",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_texture_storage_multisample_2d_array",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float",
|
||||
"GL_OES_vertex_type_10_10_10_2",
|
||||
"GL_OVR_multiview",
|
||||
"GL_OVR_multiview2"
|
||||
],
|
||||
"DateRecorded": "September 23, 2021"
|
||||
}
|
||||
140
scripts/extension_data/swiftshader_win10_gles1.json
Normal file
140
scripts/extension_data/swiftshader_win10_gles1.json
Normal file
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"Vendor": "Google Inc. (Google)",
|
||||
"Version": "OpenGL ES 1.0.0 (ANGLE 2.1.16782 git hash: 368c0ce94472)",
|
||||
"Renderer": "ANGLE (Google, Vulkan 1.2.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver-5.0.0)",
|
||||
"ShaderLanguageVersion": "OpenGL ES GLSL ES 1.00 (ANGLE 2.1.16782 git hash: 368c0ce94472)",
|
||||
"Extensions": [
|
||||
"GL_ANGLE_base_vertex_base_instance",
|
||||
"GL_ANGLE_client_arrays",
|
||||
"GL_ANGLE_compressed_texture_etc",
|
||||
"GL_ANGLE_depth_texture",
|
||||
"GL_ANGLE_framebuffer_blit",
|
||||
"GL_ANGLE_framebuffer_multisample",
|
||||
"GL_ANGLE_get_image",
|
||||
"GL_ANGLE_get_serialized_context_string",
|
||||
"GL_ANGLE_get_tex_level_parameter",
|
||||
"GL_ANGLE_instanced_arrays",
|
||||
"GL_ANGLE_memory_object_flags",
|
||||
"GL_ANGLE_memory_size",
|
||||
"GL_ANGLE_multi_draw",
|
||||
"GL_ANGLE_program_cache_control",
|
||||
"GL_ANGLE_relaxed_vertex_attribute_type",
|
||||
"GL_ANGLE_request_extension",
|
||||
"GL_ANGLE_robust_client_memory",
|
||||
"GL_ANGLE_texture_compression_dxt3",
|
||||
"GL_ANGLE_texture_compression_dxt5",
|
||||
"GL_ANGLE_yuv_internal_format",
|
||||
"GL_CHROMIUM_bind_generates_resource",
|
||||
"GL_CHROMIUM_bind_uniform_location",
|
||||
"GL_CHROMIUM_color_buffer_float_rgb",
|
||||
"GL_CHROMIUM_color_buffer_float_rgba",
|
||||
"GL_CHROMIUM_copy_compressed_texture",
|
||||
"GL_CHROMIUM_copy_texture",
|
||||
"GL_CHROMIUM_lose_context",
|
||||
"GL_CHROMIUM_texture_filtering_hint",
|
||||
"GL_EXT_EGL_image_external_wrap_modes",
|
||||
"GL_EXT_blend_minmax",
|
||||
"GL_EXT_buffer_storage",
|
||||
"GL_EXT_clip_control",
|
||||
"GL_EXT_color_buffer_half_float",
|
||||
"GL_EXT_compressed_ETC1_RGB8_sub_texture",
|
||||
"GL_EXT_copy_image",
|
||||
"GL_EXT_debug_label",
|
||||
"GL_EXT_debug_marker",
|
||||
"GL_EXT_discard_framebuffer",
|
||||
"GL_EXT_disjoint_timer_query",
|
||||
"GL_EXT_draw_buffers",
|
||||
"GL_EXT_draw_elements_base_vertex",
|
||||
"GL_EXT_float_blend",
|
||||
"GL_EXT_frag_depth",
|
||||
"GL_EXT_instanced_arrays",
|
||||
"GL_EXT_map_buffer_range",
|
||||
"GL_EXT_memory_object",
|
||||
"GL_EXT_multisampled_render_to_texture",
|
||||
"GL_EXT_multisampled_render_to_texture2",
|
||||
"GL_EXT_occlusion_query_boolean",
|
||||
"GL_EXT_primitive_bounding_box",
|
||||
"GL_EXT_read_format_bgra",
|
||||
"GL_EXT_sRGB",
|
||||
"GL_EXT_semaphore",
|
||||
"GL_EXT_separate_shader_objects",
|
||||
"GL_EXT_shader_framebuffer_fetch_non_coherent",
|
||||
"GL_EXT_shader_io_blocks",
|
||||
"GL_EXT_shader_non_constant_global_initializers",
|
||||
"GL_EXT_shader_texture_lod",
|
||||
"GL_EXT_shadow_samplers",
|
||||
"GL_EXT_texture_buffer",
|
||||
"GL_EXT_texture_compression_bptc",
|
||||
"GL_EXT_texture_compression_dxt1",
|
||||
"GL_EXT_texture_compression_rgtc",
|
||||
"GL_EXT_texture_compression_s3tc_srgb",
|
||||
"GL_EXT_texture_cube_map_array",
|
||||
"GL_EXT_texture_filter_anisotropic",
|
||||
"GL_EXT_texture_format_BGRA8888",
|
||||
"GL_EXT_texture_rg",
|
||||
"GL_EXT_texture_sRGB_R8",
|
||||
"GL_EXT_texture_sRGB_RG8",
|
||||
"GL_EXT_texture_sRGB_decode",
|
||||
"GL_EXT_texture_storage",
|
||||
"GL_EXT_texture_type_2_10_10_10_REV",
|
||||
"GL_EXT_unpack_subimage",
|
||||
"GL_KHR_debug",
|
||||
"GL_KHR_texture_compression_astc_ldr",
|
||||
"GL_NV_depth_buffer_float2",
|
||||
"GL_NV_fence",
|
||||
"GL_NV_framebuffer_blit",
|
||||
"GL_NV_pack_subimage",
|
||||
"GL_NV_pixel_buffer_object",
|
||||
"GL_NV_read_depth",
|
||||
"GL_NV_read_stencil",
|
||||
"GL_NV_shader_noperspective_interpolation",
|
||||
"GL_OES_EGL_image",
|
||||
"GL_OES_EGL_image_external",
|
||||
"GL_OES_EGL_sync",
|
||||
"GL_OES_compressed_EAC_R11_signed_texture",
|
||||
"GL_OES_compressed_EAC_R11_unsigned_texture",
|
||||
"GL_OES_compressed_EAC_RG11_signed_texture",
|
||||
"GL_OES_compressed_EAC_RG11_unsigned_texture",
|
||||
"GL_OES_compressed_ETC1_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGB8_texture",
|
||||
"GL_OES_compressed_ETC2_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture",
|
||||
"GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_alpha8_texture",
|
||||
"GL_OES_compressed_ETC2_sRGB8_texture",
|
||||
"GL_OES_depth24",
|
||||
"GL_OES_depth32",
|
||||
"GL_OES_depth_texture",
|
||||
"GL_OES_depth_texture_cube_map",
|
||||
"GL_OES_draw_elements_base_vertex",
|
||||
"GL_OES_draw_texture",
|
||||
"GL_OES_element_index_uint",
|
||||
"GL_OES_fbo_render_mipmap",
|
||||
"GL_OES_framebuffer_object",
|
||||
"GL_OES_get_program_binary",
|
||||
"GL_OES_mapbuffer",
|
||||
"GL_OES_packed_depth_stencil",
|
||||
"GL_OES_point_size_array",
|
||||
"GL_OES_point_sprite",
|
||||
"GL_OES_rgb8_rgba8",
|
||||
"GL_OES_sample_shading",
|
||||
"GL_OES_sample_variables",
|
||||
"GL_OES_shader_image_atomic",
|
||||
"GL_OES_shader_io_blocks",
|
||||
"GL_OES_shader_multisample_interpolation",
|
||||
"GL_OES_standard_derivatives",
|
||||
"GL_OES_surfaceless_context",
|
||||
"GL_OES_texture_buffer",
|
||||
"GL_OES_texture_cube_map",
|
||||
"GL_OES_texture_cube_map_array",
|
||||
"GL_OES_texture_float",
|
||||
"GL_OES_texture_float_linear",
|
||||
"GL_OES_texture_half_float",
|
||||
"GL_OES_texture_half_float_linear",
|
||||
"GL_OES_texture_npot",
|
||||
"GL_OES_texture_stencil8",
|
||||
"GL_OES_vertex_array_object",
|
||||
"GL_OES_vertex_half_float"
|
||||
],
|
||||
"DateRecorded": "September 23, 2021"
|
||||
}
|
||||
@@ -17,6 +17,34 @@ namespace angle
|
||||
// dirtyPointer is a special value that will make the comparison with any valid pointer fail and
|
||||
// force the renderer to re-apply the state.
|
||||
const uintptr_t DirtyPointer = std::numeric_limits<uintptr_t>::max();
|
||||
|
||||
SaveFileHelper::SaveFileHelper(const std::string &filePathIn)
|
||||
: mOfs(filePathIn, std::ios::binary | std::ios::out), mFilePath(filePathIn)
|
||||
{
|
||||
if (!mOfs.is_open())
|
||||
{
|
||||
FATAL() << "Could not open " << filePathIn;
|
||||
}
|
||||
}
|
||||
|
||||
SaveFileHelper::~SaveFileHelper()
|
||||
{
|
||||
printf("Saved '%s'.\n", mFilePath.c_str());
|
||||
}
|
||||
|
||||
void SaveFileHelper::checkError()
|
||||
{
|
||||
if (mOfs.bad())
|
||||
{
|
||||
FATAL() << "Error writing to " << mFilePath;
|
||||
}
|
||||
}
|
||||
|
||||
void SaveFileHelper::write(const uint8_t *data, size_t size)
|
||||
{
|
||||
mOfs.write(reinterpret_cast<const char *>(data), size);
|
||||
}
|
||||
|
||||
} // namespace angle
|
||||
|
||||
std::string ArrayString(unsigned int i)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <climits>
|
||||
#include <cstdarg>
|
||||
#include <cstddef>
|
||||
#include <fstream>
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
@@ -63,6 +64,30 @@ class NonCopyable
|
||||
|
||||
extern const uintptr_t DirtyPointer;
|
||||
|
||||
struct SaveFileHelper
|
||||
{
|
||||
public:
|
||||
// We always use ios::binary to avoid inconsistent line endings when captured on Linux vs Win.
|
||||
SaveFileHelper(const std::string &filePathIn);
|
||||
~SaveFileHelper();
|
||||
|
||||
template <typename T>
|
||||
SaveFileHelper &operator<<(const T &value)
|
||||
{
|
||||
mOfs << value;
|
||||
checkError();
|
||||
return *this;
|
||||
}
|
||||
|
||||
void write(const uint8_t *data, size_t size);
|
||||
|
||||
private:
|
||||
void checkError();
|
||||
|
||||
std::ofstream mOfs;
|
||||
std::string mFilePath;
|
||||
};
|
||||
|
||||
} // namespace angle
|
||||
|
||||
template <typename T, size_t N>
|
||||
|
||||
@@ -843,42 +843,6 @@ CallCapture CaptureMakeCurrent(EGLDisplay display,
|
||||
return CallCapture(angle::EntryPoint::EGLMakeCurrent, std::move(paramBuffer));
|
||||
}
|
||||
|
||||
struct SaveFileHelper
|
||||
{
|
||||
public:
|
||||
// We always use ios::binary to avoid inconsistent line endings when captured on Linux vs Win.
|
||||
SaveFileHelper(const std::string &filePathIn)
|
||||
: mOfs(filePathIn, std::ios::binary | std::ios::out), mFilePath(filePathIn)
|
||||
{
|
||||
if (!mOfs.is_open())
|
||||
{
|
||||
FATAL() << "Could not open " << filePathIn;
|
||||
}
|
||||
}
|
||||
|
||||
~SaveFileHelper() { printf("Saved '%s'.\n", mFilePath.c_str()); }
|
||||
|
||||
template <typename T>
|
||||
SaveFileHelper &operator<<(const T &value)
|
||||
{
|
||||
mOfs << value;
|
||||
if (mOfs.bad())
|
||||
{
|
||||
FATAL() << "Error writing to " << mFilePath;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
void write(const uint8_t *data, size_t size)
|
||||
{
|
||||
mOfs.write(reinterpret_cast<const char *>(data), size);
|
||||
}
|
||||
|
||||
private:
|
||||
std::ofstream mOfs;
|
||||
std::string mFilePath;
|
||||
};
|
||||
|
||||
std::string GetBinaryDataFilePath(bool compression, const std::string &captureLabel)
|
||||
{
|
||||
std::stringstream fnameStream;
|
||||
|
||||
@@ -8,9 +8,10 @@
|
||||
# Generates files from supported extensions data.
|
||||
# NOTE: don't run this script directly. Run scripts/run_code_generation.py.
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import os
|
||||
|
||||
d = os.path.dirname
|
||||
THIS_DIR = d(os.path.abspath(__file__))
|
||||
@@ -178,17 +179,86 @@ TOGGLEABLE = 'enableableDisablable'
|
||||
_MARKDOWN_TEMPLATE = """\
|
||||
# ANGLE Supported Extensions
|
||||
|
||||
This is a list of all extensions currently supported by ANGLE's front-end. Back-end support is not
|
||||
yet documented. To produce a list of all supported extensions in the Vulkan back-end, run
|
||||
This is a list of all extensions currently supported by ANGLE's front-end, and
|
||||
support listed for some of the tested targets for ANGLE's Vulkan back-end. To
|
||||
produce a list of all supported extensions in the Vulkan back-end, run
|
||||
`angle_end2end_tests` with `--gtest_filter EGLPrintEGLinfoTest.PrintGLInfo/ES*_Vulkan`.
|
||||
|
||||
This list is automatically generated by {script_name} using data from {data_source_name}.
|
||||
This list is automatically generated by [`{script_name}`](../src/libANGLE/gen_extensions.py)
|
||||
using data from {data_source_name}.
|
||||
|
||||
| Extension Name |
|
||||
| -------------- |
|
||||
{md_exts}
|
||||
## GLES 2.0, 3.0, 3.1 and 3.2 extension support
|
||||
|
||||
*Note: some data is sampled from older drivers, so might not represent the latest driver support.*
|
||||
|
||||
{gles_md_table_header}
|
||||
{gles_md_exts}
|
||||
|
||||
## ANGLE unofficial extension support
|
||||
|
||||
*Note: some ANGLE extensions are currently missing specifications.*
|
||||
|
||||
{angle_md_table_header}
|
||||
{angle_md_exts}
|
||||
|
||||
## GLES 1.0 and 1.1 extension support
|
||||
|
||||
{gles1_md_table_header}
|
||||
{gles1_md_exts}
|
||||
|
||||
{md_gpu_info}
|
||||
## How to update supported extension data
|
||||
|
||||
Supported extension data is stored in the ANGLE repo as JSON files in
|
||||
[`scripts/extension_data`](../scripts/extension_data). The JSON data is
|
||||
sourced from public ANGLE test runs. Look for `angle_end2end_tests` in a bot
|
||||
run: [example link]
|
||||
(https://ci.chromium.org/ui/p/angle/builders/ci/win-clang-x64-rel/8183/overview).
|
||||
Search for "`angle_end2end_tests`", then click on the "cas output" and find
|
||||
`GLinfo_ES3_2_Vulkan.json`. Copy and paste the file contents into a file in
|
||||
the folder above.
|
||||
|
||||
To update or add a new configuration, first retrieve the JSON data, modify
|
||||
[`gen_extensions.py`](../src/libANGLE/gen_extensions.py) if necessary, then
|
||||
run [`scripts/run_code_generation.py`](../scripts/run_code_generation.py) to
|
||||
refresh generated files.
|
||||
"""
|
||||
|
||||
_MD_GLES_GPU_CONFIGS = [
|
||||
'NVIDIA P400 Win10',
|
||||
'Intel 630 Win10',
|
||||
'NVIDIA P400 Linux',
|
||||
'Intel 630 Linux',
|
||||
'SwiftShader Win10',
|
||||
'Pixel 4 Android 11',
|
||||
]
|
||||
|
||||
_MD_GLES1_GPU_CONFIGS = [
|
||||
'SwiftShader Win10',
|
||||
]
|
||||
|
||||
_MD_TABLE_HEADER_TEMPLATE = """\
|
||||
| Extension Name | {configs} |
|
||||
| -------------- | {dashes} |"""
|
||||
|
||||
_MD_CONFIG_INFO_TEMPLATE = """\
|
||||
{config}:
|
||||
|
||||
* `GL_RENDERER` is `{Renderer}`
|
||||
* `GL_VENDOR` is `{Vendor}`
|
||||
* `GL_VERSION` is `{Version}`
|
||||
* Data updated {DateRecorded}
|
||||
"""
|
||||
|
||||
_MD_GLES_EXT_LINK_TEMPLATE = """[{full_name}](https://khronos.org/registry/OpenGL/extensions/{vendor}/{vendor}_{link}.txt)"""
|
||||
_MD_ANGLE_EXT_LINK_TEMPLATE = """[{full_name}](https://chromium.googlesource.com/angle/angle/+/refs/heads/main/extensions/{vendor}_{link}.txt)"""
|
||||
|
||||
# Some extensions are defined in documents that have different names.
|
||||
_LINK_OVERRIDES = {
|
||||
'GL_EXT_memory_object_fd': 'external_objects_fd',
|
||||
'GL_EXT_semaphore_fd': 'external_objects_fd',
|
||||
}
|
||||
|
||||
|
||||
def get_camel_case(name_with_underscores):
|
||||
""" To follow ANGLE naming for member variables, we convert the canonical extension:
|
||||
@@ -211,6 +281,7 @@ def break_down_ext(ext, expr, mode):
|
||||
'name_with_underscores': m.group(3),
|
||||
'name_camel_case': get_camel_case(m.group(3)),
|
||||
'mode': mode,
|
||||
'link': _LINK_OVERRIDES.get(ext, m.group(3)),
|
||||
}
|
||||
|
||||
|
||||
@@ -244,14 +315,57 @@ def sort_by_ext_name(ext_infos):
|
||||
return sorted(ext_infos, key=lambda e: e['name_camel_case'].lower())
|
||||
|
||||
|
||||
def get_ext_support(ext_name, gpu_data):
|
||||
|
||||
def s(ext, support):
|
||||
CHECKMARK = '✔'
|
||||
CROSS = '❌'
|
||||
return CHECKMARK if ext in support['Extensions'] else CROSS
|
||||
|
||||
return ' | '.join([s(ext_name, support) for support in gpu_data])
|
||||
|
||||
|
||||
def get_md_table_header(md_gpu_configs):
|
||||
configs = ' | '.join(md_gpu_configs)
|
||||
dashes = ' | '.join([(':%s:' % ('-' * (len(config) - 2))) for config in md_gpu_configs])
|
||||
return _MD_TABLE_HEADER_TEMPLATE.format(configs=configs, dashes=dashes)
|
||||
|
||||
|
||||
def format_md_gpu_info(gpu_data):
|
||||
return _MD_CONFIG_INFO_TEMPLATE.format(**gpu_data)
|
||||
|
||||
|
||||
def format_md_link(ext_info, link_template):
|
||||
return link_template.format(**ext_info)
|
||||
|
||||
|
||||
def format_md_ext(ext_info, gpu_json_data, link_template):
|
||||
return '| %s | %s |' % (format_md_link(
|
||||
ext_info, link_template), get_ext_support(ext_info['full_name'], gpu_json_data))
|
||||
|
||||
|
||||
def format_md_exts(ext_infos, gpu_json_data, link_template):
|
||||
return '\n'.join(
|
||||
[format_md_ext(ext_info, gpu_json_data, link_template) for ext_info in ext_infos])
|
||||
|
||||
|
||||
def main():
|
||||
# auto_script parameters.
|
||||
data_source_name = 'registry_xml.py and gl.xml'
|
||||
gles_h_output_name = 'gles_extensions_autogen.h'
|
||||
gles_cpp_output_name = 'gles_extensions_autogen.cpp'
|
||||
md_output_name = '../../doc/SupportedExtensions.md'
|
||||
ext_jsons = [
|
||||
'../../scripts/extension_data/%s.json' % s.lower().replace(' ', '_')
|
||||
for s in _MD_GLES_GPU_CONFIGS
|
||||
]
|
||||
gles1_ext_jsons = [
|
||||
'../../scripts/extension_data/%s_gles1.json' % s.lower().replace(' ', '_')
|
||||
for s in _MD_GLES1_GPU_CONFIGS
|
||||
]
|
||||
if len(sys.argv) > 1:
|
||||
inputs = ['../../scripts/%s' % xml_input for xml_input in registry_xml.xml_inputs]
|
||||
inputs = ['../../scripts/%s' % xml_input for xml_input in registry_xml.xml_inputs
|
||||
] + ext_jsons + gles1_ext_jsons
|
||||
outputs = [gles_h_output_name, gles_cpp_output_name, md_output_name]
|
||||
if sys.argv[1] == 'inputs':
|
||||
print(','.join(inputs))
|
||||
@@ -298,8 +412,24 @@ def main():
|
||||
|
||||
helper_functions = '\n'.join(helper_function_data)
|
||||
|
||||
sorted_names = sorted([ext_info['full_name'] for ext_info in ext_infos])
|
||||
md_exts = '\n'.join(['| `%s` |' % full_name for full_name in sorted_names])
|
||||
gles_gpu_data = []
|
||||
for (gpu_config, ext_json) in zip(_MD_GLES_GPU_CONFIGS, ext_jsons):
|
||||
with open(ext_json) as f:
|
||||
config_support = json.loads(f.read())
|
||||
config_support['config'] = gpu_config
|
||||
gles_gpu_data.append(config_support)
|
||||
|
||||
gles1_gpu_data = []
|
||||
for (gpu_config, ext_json) in zip(_MD_GLES1_GPU_CONFIGS, gles1_ext_jsons):
|
||||
with open(ext_json) as f:
|
||||
config_support = json.loads(f.read())
|
||||
config_support['config'] = gpu_config
|
||||
gles1_gpu_data.append(config_support)
|
||||
|
||||
gles_md_exts = format_md_exts(gles_ext_infos, gles_gpu_data, _MD_GLES_EXT_LINK_TEMPLATE)
|
||||
angle_md_exts = format_md_exts(angle_ext_infos, gles_gpu_data, _MD_ANGLE_EXT_LINK_TEMPLATE)
|
||||
gles1_md_exts = format_md_exts(gles1_ext_infos, gles1_gpu_data, _MD_GLES_EXT_LINK_TEMPLATE)
|
||||
md_gpu_info = [format_md_gpu_info(gpu_data) for gpu_data in gles_gpu_data]
|
||||
|
||||
format_args = {
|
||||
'script_name': os.path.basename(__file__),
|
||||
@@ -312,7 +442,13 @@ def main():
|
||||
'angle_strings': format_ext_strings(angle_ext_infos),
|
||||
'gles_strings': format_ext_strings(gles_ext_infos),
|
||||
'gles1_strings': format_ext_strings(gles1_ext_infos),
|
||||
'md_exts': md_exts,
|
||||
'gles_md_table_header': get_md_table_header(_MD_GLES_GPU_CONFIGS),
|
||||
'gles_md_exts': gles_md_exts,
|
||||
'angle_md_table_header': get_md_table_header(_MD_GLES_GPU_CONFIGS),
|
||||
'angle_md_exts': angle_md_exts,
|
||||
'gles1_md_table_header': get_md_table_header(_MD_GLES1_GPU_CONFIGS),
|
||||
'gles1_md_exts': gles1_md_exts,
|
||||
'md_gpu_info': '\n'.join(md_gpu_info),
|
||||
}
|
||||
|
||||
write_file(gles_h_output_name, _GLES_EXTENSIONS_TEMPLATE, format_args)
|
||||
|
||||
@@ -251,6 +251,10 @@ if (is_win || is_linux || is_chromeos || is_android || is_fuchsia || is_apple) {
|
||||
"$angle_root:angle_image_util",
|
||||
]
|
||||
|
||||
if (angle_has_rapidjson) {
|
||||
deps += [ "$angle_root:angle_json_serializer" ]
|
||||
}
|
||||
|
||||
if (is_android) {
|
||||
include_dirs += [ "${android_ndk_root}/sysroot/usr/includes" ]
|
||||
}
|
||||
|
||||
@@ -547,7 +547,8 @@ void dEQPTest<TestModuleIndex>::SetUpTestCase()
|
||||
logNameStream << ".qpa";
|
||||
|
||||
std::stringstream logArgStream;
|
||||
logArgStream << "--deqp-log-filename=" << testSuite->addTestArtifact(logNameStream.str());
|
||||
logArgStream << "--deqp-log-filename="
|
||||
<< testSuite->reserveTestArtifactPath(logNameStream.str());
|
||||
|
||||
std::string logNameString = logArgStream.str();
|
||||
argv.push_back(logNameString.c_str());
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
|
||||
#include "common/string_utils.h"
|
||||
#include "test_utils/ANGLETest.h"
|
||||
#include "test_utils/runner/TestSuite.h"
|
||||
|
||||
#if defined(ANGLE_HAS_RAPIDJSON)
|
||||
# include "common/serializer/JsonSerializer.h"
|
||||
#endif // defined(ANGLE_HAS_RAPIDJSON)
|
||||
|
||||
using namespace angle;
|
||||
|
||||
@@ -100,12 +105,47 @@ TEST_P(EGLPrintEGLinfoTest, PrintGLInfo)
|
||||
std::cout << "\tShader: " << GetGLString(GL_SHADING_LANGUAGE_VERSION) << std::endl;
|
||||
|
||||
std::cout << "\tExtensions:" << std::endl;
|
||||
for (auto extension : ParseExtensions(GetGLString(GL_EXTENSIONS)))
|
||||
|
||||
const std::vector<std::string> extensions = ParseExtensions(GetGLString(GL_EXTENSIONS));
|
||||
|
||||
for (const std::string &extension : extensions)
|
||||
{
|
||||
std::cout << "\t\t" << extension << std::endl;
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
|
||||
#if defined(ANGLE_HAS_RAPIDJSON)
|
||||
angle::TestSuite *testSuite = angle::TestSuite::GetInstance();
|
||||
if (!testSuite->hasTestArtifactsDirectory())
|
||||
{
|
||||
return;
|
||||
}
|
||||
JsonSerializer json;
|
||||
json.addCString("Vendor", GetGLString(GL_VENDOR));
|
||||
json.addCString("Version", GetGLString(GL_VERSION));
|
||||
json.addCString("Renderer", GetGLString(GL_RENDERER));
|
||||
json.addCString("ShaderLanguageVersion", GetGLString(GL_SHADING_LANGUAGE_VERSION));
|
||||
json.addVectorOfStrings("Extensions", extensions);
|
||||
|
||||
constexpr size_t kBufferSize = 1000;
|
||||
std::array<char, kBufferSize> buffer;
|
||||
std::time_t timeNow = std::time(nullptr);
|
||||
std::strftime(buffer.data(), buffer.size(), "%B %e, %Y", std::localtime(&timeNow));
|
||||
json.addCString("DateRecorded", buffer.data());
|
||||
|
||||
std::stringstream fnameStream;
|
||||
fnameStream << "GLinfo_" << GetParam() << ".json";
|
||||
std::string fname = fnameStream.str();
|
||||
|
||||
const std::string artifactPath = testSuite->reserveTestArtifactPath(fname);
|
||||
|
||||
{
|
||||
std::vector<uint8_t> jsonData = json.getData();
|
||||
SaveFileHelper saveFile(artifactPath);
|
||||
saveFile.write(jsonData.data(), jsonData.size());
|
||||
}
|
||||
#endif // defined(ANGLE_HAS_RAPIDJSON)
|
||||
}
|
||||
|
||||
#define QUERY_HELPER(enumValue, enumString, stream) \
|
||||
@@ -316,6 +356,11 @@ TEST_P(EGLPrintEGLinfoTest, PrintGLESCapabilities)
|
||||
|
||||
switch (getClientMajorVersion())
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
LogGles2Capabilities(stream);
|
||||
break;
|
||||
case 3:
|
||||
switch (getClientMinorVersion())
|
||||
{
|
||||
@@ -332,9 +377,6 @@ TEST_P(EGLPrintEGLinfoTest, PrintGLESCapabilities)
|
||||
FAIL() << "unknown client minor version.";
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
LogGles2Capabilities(stream);
|
||||
break;
|
||||
default:
|
||||
FAIL() << "unknown client major version.";
|
||||
}
|
||||
@@ -485,7 +527,13 @@ TEST_P(EGLPrintEGLinfoTest, PrintConfigInfo)
|
||||
}
|
||||
}
|
||||
|
||||
ANGLE_INSTANTIATE_TEST(EGLPrintEGLinfoTest, ES2_VULKAN(), ES3_VULKAN(), ES32_VULKAN());
|
||||
ANGLE_INSTANTIATE_TEST(EGLPrintEGLinfoTest,
|
||||
ES1_VULKAN(),
|
||||
ES1_VULKAN_SWIFTSHADER(),
|
||||
ES2_VULKAN(),
|
||||
ES3_VULKAN(),
|
||||
ES32_VULKAN(),
|
||||
ES31_VULKAN_SWIFTSHADER());
|
||||
|
||||
// This test suite is not instantiated on some OSes.
|
||||
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(EGLPrintEGLinfoTest);
|
||||
|
||||
@@ -48,6 +48,7 @@ constexpr char kTestTimeoutArg[] = "--test-timeout=";
|
||||
constexpr char kDisableCrashHandler[] = "--disable-crash-handler";
|
||||
constexpr char kIsolatedOutDir[] = "--isolated-outdir=";
|
||||
constexpr char kMaxFailures[] = "--max-failures=";
|
||||
constexpr char kRenderTestOutputDir[] = "--render-test-output-dir=";
|
||||
|
||||
constexpr char kStartedTestString[] = "[ RUN ] ";
|
||||
constexpr char kPassedTestString[] = "[ OK ] ";
|
||||
@@ -1309,6 +1310,7 @@ bool TestSuite::parseSingleArg(const char *argument)
|
||||
// We need these overloads to work around technical debt in the Android test runner.
|
||||
ParseStringArg("--isolated-script-test-perf-output=", argument, &mHistogramJsonFile) ||
|
||||
ParseStringArg("--isolated_script_test_perf_output=", argument, &mHistogramJsonFile) ||
|
||||
ParseStringArg(kRenderTestOutputDir, argument, &mTestArtifactDirectory) ||
|
||||
ParseStringArg(kIsolatedOutDir, argument, &mTestArtifactDirectory) ||
|
||||
ParseFlag("--bot-mode", argument, &mBotMode) ||
|
||||
ParseFlag("--debug-test-groups", argument, &mDebugTestGroups) ||
|
||||
@@ -1859,7 +1861,12 @@ void TestSuite::addHistogramSample(const std::string &measurement,
|
||||
mHistogramWriter.addSample(measurement, story, value, units);
|
||||
}
|
||||
|
||||
std::string TestSuite::addTestArtifact(const std::string &artifactName)
|
||||
bool TestSuite::hasTestArtifactsDirectory() const
|
||||
{
|
||||
return !mTestArtifactDirectory.empty();
|
||||
}
|
||||
|
||||
std::string TestSuite::reserveTestArtifactPath(const std::string &artifactName)
|
||||
{
|
||||
mTestResults.testArtifactPaths.push_back(artifactName);
|
||||
|
||||
|
||||
@@ -139,7 +139,8 @@ class TestSuite
|
||||
static TestSuite *GetInstance() { return mInstance; }
|
||||
|
||||
// Returns the path to the artifact in the output directory.
|
||||
std::string addTestArtifact(const std::string &artifactName);
|
||||
bool hasTestArtifactsDirectory() const;
|
||||
std::string reserveTestArtifactPath(const std::string &artifactName);
|
||||
|
||||
int getShardIndex() const { return mShardIndex; }
|
||||
int getBatchId() const { return mBatchId; }
|
||||
|
||||
Reference in New Issue
Block a user