haikuwebkit/Source/ThirdParty/ANGLE/extensions
Dean Jackson 04dd9264c5 [ANGLE] Support importing external MTLTextures
https://bugs.webkit.org/show_bug.cgi?id=226690

Reviewed by Tim Horton.

Support MTLTextures as GL textures.
Merge https://chromium-review.googlesource.com/c/angle/angle/+/2820178

* ANGLE.xcodeproj/project.pbxproj:
* extensions/EGL_ANGLE_metal_texture_client_buffer.txt: Added.
* include/EGL/eglext_angle.h:
* src/common/utilities.cpp:
(egl::IsExternalImageTarget):
* src/libANGLE/Caps.cpp:
(egl::DisplayExtensions::getStrings const):
* src/libANGLE/Caps.h:
* src/libANGLE/renderer/metal/BUILD.gn:
* src/libANGLE/renderer/metal/DisplayMtl.h:
* src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::createImage):
(rx::DisplayMtl::createExternalImageSibling):
(rx::DisplayMtl::generateExtensions const):
(rx::DisplayMtl::validateImageClientBuffer const):
(rx::DisplayMtl::initializeExtensions const):
* src/libANGLE/renderer/metal/ImageMtl.h: Added.
(rx::TextureImageSiblingMtl::getTexture const):
(rx::TextureImageSiblingMtl::getFormatMtl const):
(rx::ImageMtl::getTexture const):
(rx::ImageMtl::getImageTextureType const):
(rx::ImageMtl::getImageLevel const):
(rx::ImageMtl::getImageLayer const):
* src/libANGLE/renderer/metal/ImageMtl.mm: Added.
(rx::TextureImageSiblingMtl::TextureImageSiblingMtl):
(rx::TextureImageSiblingMtl::~TextureImageSiblingMtl):
(rx::TextureImageSiblingMtl::ValidateClientBuffer):
(rx::TextureImageSiblingMtl::initialize):
(rx::TextureImageSiblingMtl::initImpl):
(rx::TextureImageSiblingMtl::onDestroy):
(rx::TextureImageSiblingMtl::getFormat const):
(rx::TextureImageSiblingMtl::isRenderable const):
(rx::TextureImageSiblingMtl::isTexturable const):
(rx::TextureImageSiblingMtl::getSize const):
(rx::TextureImageSiblingMtl::getSamples const):
(rx::ImageMtl::ImageMtl):
(rx::ImageMtl::~ImageMtl):
(rx::ImageMtl::onDestroy):
(rx::ImageMtl::initialize):
(rx::ImageMtl::orphan):
* src/libANGLE/renderer/metal/RenderBufferMtl.mm:
(rx::RenderbufferMtl::setStorageEGLImageTarget):
* src/libANGLE/renderer/metal/TextureMtl.mm:
(rx::TextureMtl::setEGLImageTarget):
* src/libANGLE/renderer/metal/gen_mtl_format_table.py:
(gen_image_map_switch_mac_case.gen_format_assign_code):
(gen_image_mtl_to_angle_switch_string):
(main):
* src/libANGLE/renderer/metal/mtl_common.h:
* src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:
(rx::mtl::Format::MetalToAngleFormatID):
* src/libANGLE/renderer/metal/mtl_format_utils.h:
* src/libANGLE/validationEGL.cpp:
(egl::ValidateCreateImage):
* src/tests/BUILD.gn:
* src/tests/gl_tests/ImageTest.cpp:
(angle::TEST_P):
* src/tests/gl_tests/ImageTestMetal.mm: Added.
(angle::ScopeMetalTextureRef::ScopeMetalTextureRef):
(angle::ScopeMetalTextureRef::~ScopeMetalTextureRef):
(angle::ScopeMetalTextureRef::get const):
(angle::ScopeMetalTextureRef::operator id<MTLTexture> const):
(angle::ScopeMetalTextureRef::operator=):
(angle::ScopeMetalTextureRef::release):
(angle::CreateMetalTexture2D):
(angle::ImageTestMetal::ImageTestMetal):
(angle::ImageTestMetal::getMtlDevice):
(angle::ImageTestMetal::createMtlTexture2D):
(angle::ImageTestMetal::verifyResultsTexture):
(angle::ImageTestMetal::verifyResults2D):
(angle::ImageTestMetal::reinterpretHelper):
(angle::ImageTestMetal::hasImageNativeMetalTextureExt const):
(angle::ImageTestMetal::hasOESExt const):
(angle::ImageTestMetal::hasBaseExt const):
(angle::ImageTestMetal::sourceMetalTarget2D_helper):
(angle::TEST_P):

Canonical link: https://commits.webkit.org/239052@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-22 20:33:10 +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_flags.txt Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
ANGLE_external_objects_fuchsia.txt
ANGLE_framebuffer_blit.txt
ANGLE_framebuffer_multisample.txt
ANGLE_get_image.txt
ANGLE_get_tex_level_parameter.txt Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
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 Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
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_semaphore_share_group.txt Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
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 Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
EGL_ANGLE_keyed_mutex.txt
EGL_ANGLE_metal_texture_client_buffer.txt [ANGLE] Support importing external MTLTextures 2021-06-22 20:33:10 +00:00
EGL_ANGLE_platform_angle.txt Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
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_context_volatile_cgl.txt
EGL_ANGLE_platform_angle_device_context_volatile_eagl.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_vulkan_display.txt Re-landing r270129, r270194, and r270258. 2020-12-02 18:36:01 +00:00
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