angle/extensions
Kenneth Russell af72779224 Improve EGL_ANGLE_power_preference on dual-GPU MacBook Pros.
Add the ability to release and reacquire the high-power GPU, and to
respond to changes in the active GPU. In Chromium, the GPU process can
not access the WindowServer. An external process must inform ANGLE
that the active GPU has changed, and that ANGLE should switch its
internal context to the new GPU.

Incorporates a couple of functions from WebKit, used with permission,
to effect this GPU switch.

A follow-on change in Chromium which uses these new APIs will make the
existing dual-GPU tests pass with ANGLE and the passthrough command
decoder.

Carry forward Chromium's workaround of disabling GPU switching on
older MacBook Pros to ensure stability.

Document the process of adding new EGL extensions to ANGLE.

Bug: chromium:1091824
Change-Id: I499739156e851b493555d4d6e4aef87d8b97fa31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2240638
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-06-12 23:38:22 +00:00
..
ANGLE_base_vertex_base_instance.txt
ANGLE_client_arrays.txt
ANGLE_compressed_texture_etc.txt
ANGLE_copy_texture_3d.txt
ANGLE_depth_texture.txt
ANGLE_explicit_context.txt
ANGLE_explicit_context_gles1.txt
ANGLE_external_objects_fuchsia.txt
ANGLE_framebuffer_blit.txt
ANGLE_framebuffer_multisample.txt
ANGLE_get_image.txt
ANGLE_instanced_arrays.txt
ANGLE_lossy_etc_decode.txt
ANGLE_memory_size.txt
ANGLE_multi_draw.txt
ANGLE_multiview_multisample.txt
ANGLE_pack_reverse_row_order.txt
ANGLE_program_binary.txt
ANGLE_program_cache_control.txt
ANGLE_request_extension.txt
ANGLE_robust_client_memory.txt
ANGLE_robust_resource_initialization.txt
ANGLE_texture_compression_dxt.txt
ANGLE_texture_multisample.txt
ANGLE_texture_usage.txt
ANGLE_timer_query.txt
ANGLE_translated_shader_source.txt
ANGLE_webgl_compatibility.txt
CHROMIUM_bind_generates_resource.txt
CHROMIUM_bind_uniform_location.txt
CHROMIUM_compressed_copy_texture.txt
CHROMIUM_copy_texture.txt
CHROMIUM_sync_query.txt
EGL_ANGLE_create_context_backwards_compatible.txt
EGL_ANGLE_create_context_client_arrays.txt
EGL_ANGLE_create_context_extensions_enabled.txt
EGL_ANGLE_create_context_webgl_compatibility.txt
EGL_ANGLE_d3d_share_handle_client_buffer.txt
EGL_ANGLE_d3d_texture_client_buffer.txt
EGL_ANGLE_device_cgl.txt
EGL_ANGLE_device_creation.txt
EGL_ANGLE_device_creation_d3d11.txt
EGL_ANGLE_device_d3d.txt
EGL_ANGLE_device_eagl.txt
EGL_ANGLE_direct3d_display.txt
EGL_ANGLE_direct_composition.txt
EGL_ANGLE_display_texture_share_group.txt
EGL_ANGLE_experimental_present_path.txt
EGL_ANGLE_explicit_context.txt
EGL_ANGLE_feature_control.txt
EGL_ANGLE_flexible_surface_compatibility.txt
EGL_ANGLE_ggp_stream_descriptor.txt
EGL_ANGLE_iosurface_client_buffer.txt
EGL_ANGLE_keyed_mutex.txt
EGL_ANGLE_platform_angle.txt
EGL_ANGLE_platform_angle_context_virtualization.txt
EGL_ANGLE_platform_angle_d3d.txt
EGL_ANGLE_platform_angle_d3d11on12.txt
EGL_ANGLE_platform_angle_d3d_luid.txt
EGL_ANGLE_platform_angle_device_type_egl.txt
EGL_ANGLE_platform_angle_device_type_swiftshader.txt
EGL_ANGLE_platform_angle_metal.txt
EGL_ANGLE_platform_angle_null.txt
EGL_ANGLE_platform_angle_opengl.txt
EGL_ANGLE_platform_angle_vulkan.txt
EGL_ANGLE_power_preference.txt
EGL_ANGLE_program_cache_control.txt
EGL_ANGLE_query_surface_pointer.txt
EGL_ANGLE_robust_resource_initialization.txt
EGL_ANGLE_software_display.txt
EGL_ANGLE_stream_producer_d3d_texture.txt
EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
EGL_ANGLE_surface_orientation.txt
EGL_ANGLE_swap_with_frame_token.txt
EGL_ANGLE_sync_control_rate.txt
EGL_ANGLE_window_fixed_size.txt
EGL_ANGLE_x11_visual.txt
EGL_CHROMIUM_create_context_bind_generates_resource.txt
EGL_CHROMIUM_sync_control.txt
EGL_EXT_create_context_robustness.txt
EGL_EXT_device_query.txt
EXT_blend_func_extended.txt
EXT_blend_minmax.txt
EXT_color_buffer_float.txt
EXT_draw_buffers.txt
EXT_robustness.txt
EXT_texture_rg.txt
EXT_texture_storage.txt
KHR_parallel_shader_compile.txt