angle/extensions
Le Hoang Quyen 7b1b8a0161 Metal: Allow using GL_RGB with either RGBA/BGRA IOSurface.
Previously we only allowed GL_RGB internal format to be used with BGRA
IOSurface and GL_RGBX8_ANGLE to be used with RGBA IOSurface
respectively.

However, there are currently many places in Chrome prefer GL_RGB to be
able to be used with both RGBA and BGRA IOSurface.

This CL allows such combinations. Instead of deducing angle::FormatID of
the IOSurface pbuffer based on the input GL internal format & type, we
will take into account the pixel format of the IOSurface as well.

For example, when we call eglCreatePbufferFromClientBuffer with GL_RGB
internal format attribute:
- if IOSurface's pixel format is 'RGBA' ->
  deduced angle::FormatID is R8G8B8A8_UNORM.
- if IOSurface's pixel format is 'BGRA' ->
  deduced angle::FormatID is B8G8R8A8_UNORM.

This CL also removes GL_RGBX8_ANGLE support from Metal backend. Because
there are many places in Chrome that use this format enum for both RGBA
& BGRA IOSurface when the extension is available. It's redundant to
support that since GL_RGB already covers most of the required cases.

Bug: angleproject:8350
Change-Id: I5a121a97e031a42d0779721d4348f373dfaee9a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4881742
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
2023-09-22 19:32:35 +00:00
..
ANGLE_base_vertex_base_instance.txt Fix typos in multi-draw extension specs 2022-06-28 18:40:26 +00:00
ANGLE_base_vertex_base_instance_shader_builtin.txt Fix typos in multi-draw extension specs 2022-06-28 18:40:26 +00:00
ANGLE_client_arrays.txt Change Validation For Indexed Draw Without ELEMENT_ARRAY_BUFFER 2018-06-19 17:18:46 +00:00
ANGLE_clip_cull_distance.txt Add ANGLE_clip_cull_distance extension 2022-12-23 01:57:59 +00:00
ANGLE_compressed_texture_etc.txt (ANGLE) Rename CHROMIUM_compressed_texture_etc to use ANGLE_ prefix. 2019-10-08 18:19:23 +00:00
ANGLE_copy_texture_3d.txt Implement ANGLE_copy_texture_3d Extension 2018-10-04 12:06:13 +00:00
ANGLE_depth_texture.txt
ANGLE_explicit_context_gles1.txt Add initial specification for EGL_ANGLE_explicit_context Extension 2018-05-23 19:19:57 +00:00
ANGLE_external_objects_flags.txt Vulkan: Add external's pNext to ANGLE_external_objects_flags 2021-11-12 17:55:52 +00:00
ANGLE_external_objects_fuchsia.txt Fix wrong date in ANGLE_external_objects_fuchsia revision history 2020-05-04 17:07:48 +00:00
ANGLE_framebuffer_blit.txt
ANGLE_framebuffer_multisample.txt
ANGLE_get_image.txt Add GetCompressedTexImageANGLE to ANGLE_get_image 2021-09-20 22:12:38 +00:00
ANGLE_get_serialized_context_string.txt Add GL_ANGLE_get_serialized_context_string. 2021-04-03 01:56:41 +00:00
ANGLE_get_tex_level_parameter.txt Expose glGetTexLevelParameter{if}v before ES 3.1. 2020-10-21 17:23:46 +00:00
ANGLE_instanced_arrays.txt
ANGLE_logic_op.txt Introduce GL_ANGLE_logic_op 2022-09-20 04:02:18 +00:00
ANGLE_lossy_etc_decode.txt D3D11: Transcode ETC1 to BC1. 2016-02-05 15:26:51 +00:00
ANGLE_memory_size.txt Add a spec and tests for GL_ANGLE_memory_size. 2018-11-02 20:37:23 +00:00
ANGLE_multi_draw.txt Fix typos in multi-draw extension specs 2022-06-28 18:40:26 +00:00
ANGLE_multiview_multisample.txt GL_ANGLE_multiview has been renamed to GL_OVR_multiview2. 2019-04-16 17:37:10 +00:00
ANGLE_pack_reverse_row_order.txt
ANGLE_polygon_mode.txt Add polygon mode extension stubs 2023-05-01 21:21:01 +00:00
ANGLE_program_binary.txt
ANGLE_program_cache_control.txt Add entry points for EGL_ANGLE_program_cache_control. 2017-07-11 13:51:04 -04:00
ANGLE_provoking_vertex.txt Fix ProvokingVertex typos 2022-11-22 22:20:58 +00:00
ANGLE_read_only_depth_stencil_feedback_loops.txt Vulkan: Use read/write depth/stencil layouts 2022-12-23 05:00:32 +00:00
ANGLE_relaxed_vertex_attribute_type.txt Vulkan: Allow certain usecases to have non-zero stride 2021-05-21 21:09:44 +00:00
ANGLE_renderability_validation.txt Add extension to skip texture renderability validation in ANGLE. 2023-04-25 22:28:47 +00:00
ANGLE_request_extension.txt Extend ANGLE_request_extension with DisableExtension 2019-10-12 00:42:21 +00:00
ANGLE_rgbx_internal_format.txt Map RGBX AHB to GL_RGBX8_ANGLE and fix the load function 2022-08-23 17:38:26 +00:00
ANGLE_robust_client_memory.txt Add robust entry point for CompressedTex(Sub)Image 2017-04-19 15:26:22 +00:00
ANGLE_robust_fragment_shader_output.txt Add GL_ANGLE_robust_fragment_shader_output. 2021-10-21 14:55:14 +00:00
ANGLE_robust_resource_initialization.txt Update ANGLE_robust_resource_initialization about depth 2021-10-01 23:05:57 +00:00
ANGLE_shader_binary.txt Reland "Add support for glShaderBinary" 2023-01-27 00:27:14 +00:00
ANGLE_shader_pixel_local_storage.txt Allow glDelete* while PLS is active 2023-05-19 05:26:28 +00:00
ANGLE_stencil_texturing.txt Adjust ANGLE_stencil_texturing specification 2023-08-03 21:34:11 +00:00
ANGLE_texture_compression_dxt.txt
ANGLE_texture_multisample.txt Add specification for ANGLE_texture_multisample. 2018-08-31 17:15:44 +00:00
ANGLE_texture_usage.txt
ANGLE_timer_query.txt
ANGLE_translated_shader_source.txt
ANGLE_vulkan_image.txt Add GL_ANGLE_vulkan_image extension 2021-11-29 21:09:46 +00:00
ANGLE_webgl_compatibility.txt Add shader targeting language to WebGL compat spec. 2021-10-05 15:37:31 +00:00
ANGLE_yuv_internal_format.txt Vulkan: Add GL_ANGLE_yuv_internal_format extension 2021-07-14 21:02:30 +00:00
CHROMIUM_bind_generates_resource.txt Add an extension to disable resource generation on bind. 2016-09-23 14:16:37 +00:00
CHROMIUM_bind_uniform_location.txt Clarify aliasing rules in CHROMIUM_bind_uniform_location 2018-03-26 17:11:27 +00:00
CHROMIUM_compressed_copy_texture.txt Implement CHROMIUM_copy_compressed_texture for D3D11. 2016-10-07 14:56:11 +00:00
CHROMIUM_copy_texture.txt Update CHROMIUM_copy_texture.txt to match the code 2022-08-16 17:27:18 +00:00
CHROMIUM_sync_query.txt Implement GL_CHROMIUM_sync_query for D3D9 and D3D11. 2016-05-12 19:14:40 +00:00
EGL_ANGLE_colorspace_attribute_passthrough.txt Vulkan: Support passthrough of colorspace attributes 2022-08-26 22:29:35 +00:00
EGL_ANGLE_context_virtualization.txt GL: Allow selecting virtualization groups at context creation 2021-10-25 17:20:56 +00:00
EGL_ANGLE_create_context_backwards_compatible.txt Implement EGL_ANGLE_create_context_backwards_compatible 2019-07-18 22:51:46 +00:00
EGL_ANGLE_create_context_client_arrays.txt Add extensions to disable client arrays. 2017-02-15 17:31:55 +00:00
EGL_ANGLE_create_context_extensions_enabled.txt Add an EGL extension to disable GL extensions by default. 2018-03-14 20:46:16 +00:00
EGL_ANGLE_create_context_webgl_compatibility.txt Fix EGL enum allocation. 2018-09-13 16:19:36 +00:00
EGL_ANGLE_create_surface_swap_interval.txt Add EGL extension to create window with a swap interval set. 2021-08-20 20:31:34 +00:00
EGL_ANGLE_d3d_share_handle_client_buffer.txt
EGL_ANGLE_d3d_texture_client_buffer.txt d3d11: Support rendering to GL_TEXTURE_2D target for YUV images 2022-08-29 19:45:57 +00:00
EGL_ANGLE_device_cgl.txt Add EGL_ANGLE_device_cgl extension. 2019-10-09 03:45:28 +00:00
EGL_ANGLE_device_creation.txt
EGL_ANGLE_device_creation_d3d11.txt
EGL_ANGLE_device_d3d.txt
EGL_ANGLE_device_eagl.txt Upstream WebKit's iOS port of ANGLE. 2020-01-10 02:00:18 +00:00
EGL_ANGLE_device_metal.txt Metal: implement ANGLE_device_metal extension. 2021-04-01 01:37:08 +00:00
EGL_ANGLE_device_vulkan.txt Add EGL_VULKAN_GET_INSTANCE_PROC_ADDR 2021-11-12 22:19:43 +00:00
EGL_ANGLE_direct3d_display.txt
EGL_ANGLE_direct_composition.txt
EGL_ANGLE_display_power_preference.txt Reland "Metal: Reintroduce GPU power preference selection code." 2021-11-10 15:11:01 +00:00
EGL_ANGLE_display_semaphore_share_group.txt Add extension EGL_ANGLE_display_semaphore_share_group 2020-07-29 22:33:31 +00:00
EGL_ANGLE_display_texture_share_group.txt Release the global texture manager with the last referencing context. 2017-02-14 17:57:52 +00:00
EGL_ANGLE_experimental_present_path.txt Re-land "Implement EGL_experimental_present_path_angle" 2016-02-08 21:05:16 +00:00
EGL_ANGLE_explicit_context.txt Add initial specification for EGL_ANGLE_explicit_context Extension 2018-05-23 19:19:57 +00:00
EGL_ANGLE_external_context_and_surface.txt Revert "GL: Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE" 2023-08-02 14:58:42 +00:00
EGL_ANGLE_feature_control.txt Add ability to disable all ANGLE features 2019-11-20 17:01:23 +00:00
EGL_ANGLE_ggp_stream_descriptor.txt Add EGL GGP extensions. 2019-11-05 01:50:17 +00:00
EGL_ANGLE_iosurface_client_buffer.txt Metal: Allow using GL_RGB with either RGBA/BGRA IOSurface. 2023-09-22 19:32:35 +00:00
EGL_ANGLE_keyed_mutex.txt
EGL_ANGLE_metal_create_context_ownership_identity.txt Metal: add ANGLE_metal_create_context_ownership_identity. 2021-12-14 03:36:09 +00:00
EGL_ANGLE_metal_shared_event_sync.txt ANGLE_metal_shared_event_sync: Control signaling external events 2023-03-09 01:42:53 +00:00
EGL_ANGLE_metal_texture_client_buffer.txt Reland: Metal: Support importing external metal textures 2021-04-16 03:31:26 +00:00
EGL_ANGLE_platform_angle.txt Reland "Metal: Reintroduce GPU power preference selection code." 2021-11-10 15:11:01 +00:00
EGL_ANGLE_platform_angle_d3d.txt EGL: Expose NULL driver device selection. 2018-01-05 00:08:29 +00:00
EGL_ANGLE_platform_angle_d3d11on12.txt Add D3D11on12 device option 2019-10-10 02:07:39 +00:00
EGL_ANGLE_platform_angle_d3d_luid.txt Specify LUID in D3D11 2020-05-06 22:21:27 +00:00
EGL_ANGLE_platform_angle_device_context_volatile_cgl.txt Reland "ANGLE_platform_angle_device_context_volatile_* extensions" 2020-11-04 23:32:15 +00:00
EGL_ANGLE_platform_angle_device_context_volatile_eagl.txt Reland "ANGLE_platform_angle_device_context_volatile_* extensions" 2020-11-04 23:32:15 +00:00
EGL_ANGLE_platform_angle_device_id.txt Change enum allocation for EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE 2023-02-23 16:37:19 +00:00
EGL_ANGLE_platform_angle_device_type_egl.txt Reland "Instantiate rx::DisplayEGL when device type EGL is selected" 2020-03-12 22:21:48 +00:00
EGL_ANGLE_platform_angle_device_type_swiftshader.txt Re-land "Vulkan: SwiftShader integration." 2019-09-21 14:00:27 +00:00
EGL_ANGLE_platform_angle_metal.txt Add ANGLE Platform Metal extension. 2019-10-09 15:41:52 +00:00
EGL_ANGLE_platform_angle_null.txt Rename EGL platform extension text files. 2017-07-19 19:58:40 +00:00
EGL_ANGLE_platform_angle_opengl.txt Add support for EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE 2018-05-24 15:56:49 +00:00
EGL_ANGLE_platform_angle_vulkan.txt Control Debug layers in ANGLE_platform_angle. 2017-07-19 22:18:10 +00:00
EGL_ANGLE_power_preference.txt Add ForceGPUSwitch to EGL_ANGLE_power_preference 2022-03-19 01:15:06 +00:00
EGL_ANGLE_prepare_swap_buffers.txt Reland: Frontend: separate lock in swap prep 2022-01-11 22:23:19 +00:00
EGL_ANGLE_program_cache_control.txt Add entry points for EGL_ANGLE_program_cache_control. 2017-07-11 13:51:04 -04:00
EGL_ANGLE_query_surface_pointer.txt
EGL_ANGLE_robust_resource_initialization.txt Change robust resource init into a context creation attribute. 2017-10-06 14:23:12 +00:00
EGL_ANGLE_software_display.txt
EGL_ANGLE_stream_producer_d3d_texture.txt GL: Remove parallel compile/link without driver support 2023-08-23 13:40:50 +00:00
EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
EGL_ANGLE_surface_orientation.txt Add an EGL_ANGLE_surface_orientation extension. 2016-01-04 17:48:46 +00:00
EGL_ANGLE_swap_with_frame_token.txt Add EGL GGP extensions. 2019-11-05 01:50:17 +00:00
EGL_ANGLE_sync_control_rate.txt Split EGL_CHROMIUM_sync_control into EGL_ANGLE_sync_control_rate 2020-03-31 20:55:48 +00:00
EGL_ANGLE_timestamp_surface_attribute.txt Vulkan: Add support for setting timestamp surface attribute 2022-08-24 00:03:00 +00:00
EGL_ANGLE_vulkan_display.txt Reland "Add support for Linux vulkan backend with VK_KHR_display" 2020-11-03 03:38:40 +00:00
EGL_ANGLE_vulkan_image.txt Support gl internal format for creating EGLImage from VkImage 2022-02-04 14:10:16 +00:00
EGL_ANGLE_wait_until_work_scheduled.txt Add EGL_ANGLE_wait_until_work_scheduled extension 2022-12-17 02:33:59 +00:00
EGL_ANGLE_window_fixed_size.txt Support EGL_(WIDTH|HEIGHT) in eglSurfaceAttrib(), fixed resize 2018-07-27 18:31:28 +00:00
EGL_ANGLE_x11_visual.txt
EGL_CHROMIUM_create_context_bind_generates_resource.txt Fix EGL enum allocation. 2018-09-13 16:19:36 +00:00
EGL_CHROMIUM_sync_control.txt Split EGL_CHROMIUM_sync_control into EGL_ANGLE_sync_control_rate 2020-03-31 20:55:48 +00:00
EGL_EXT_device_query.txt