angle/extensions
Chris Dalton a7dc51f246 Add a framebuffer fetch implementation of PLS
The framebuffer fetch implementation works by attaching PLS backing
textures to the framebuffer, and then rewriting PLS uniforms as "inout"
fragment variables. The compiler's existing machinery takes it from
there and makes it work on GL and Vulkan, and soon Metal.

EXT_shader_framebuffer_fetch is now the preferred backend for pixel
local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent
if shader images can't be coherent. This is especially interesting for
Vulkan, since noncoherent framebuffer fetch is possible without any
extensions.

Bug: angleproject:7279
Bug: angleproject:7683
Bug: angleproject:7684
Bug: angleproject:7724
Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
2022-10-01 17:20:13 +00:00
..
ANGLE_base_vertex_base_instance.txt
ANGLE_base_vertex_base_instance_shader_builtin.txt
ANGLE_client_arrays.txt
ANGLE_compressed_texture_etc.txt
ANGLE_copy_texture_3d.txt
ANGLE_depth_texture.txt
ANGLE_explicit_context_gles1.txt
ANGLE_external_objects_flags.txt
ANGLE_external_objects_fuchsia.txt
ANGLE_framebuffer_blit.txt
ANGLE_framebuffer_multisample.txt
ANGLE_get_image.txt
ANGLE_get_serialized_context_string.txt
ANGLE_get_tex_level_parameter.txt
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
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_read_only_depth_stencil_feedback_loops.txt
ANGLE_relaxed_vertex_attribute_type.txt
ANGLE_request_extension.txt
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
ANGLE_robust_fragment_shader_output.txt
ANGLE_robust_resource_initialization.txt
ANGLE_shader_pixel_local_storage.txt Add a framebuffer fetch implementation of PLS 2022-10-01 17:20:13 +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_vulkan_image.txt
ANGLE_webgl_compatibility.txt
ANGLE_yuv_internal_format.txt
CHROMIUM_bind_generates_resource.txt
CHROMIUM_bind_uniform_location.txt
CHROMIUM_compressed_copy_texture.txt
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
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
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_create_surface_swap_interval.txt
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
EGL_ANGLE_device_creation.txt
EGL_ANGLE_device_creation_d3d11.txt
EGL_ANGLE_device_d3d.txt
EGL_ANGLE_device_eagl.txt
EGL_ANGLE_device_metal.txt
EGL_ANGLE_device_vulkan.txt
EGL_ANGLE_direct3d_display.txt
EGL_ANGLE_direct_composition.txt
EGL_ANGLE_display_power_preference.txt
EGL_ANGLE_display_semaphore_share_group.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_ggp_stream_descriptor.txt
EGL_ANGLE_iosurface_client_buffer.txt
EGL_ANGLE_keyed_mutex.txt
EGL_ANGLE_metal_create_context_ownership_identity.txt
EGL_ANGLE_metal_texture_client_buffer.txt
EGL_ANGLE_platform_angle.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_id.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_prepare_swap_buffers.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_sync_mtl_shared_event.txt EGL: Implement eglCopyMetalSharedEventANGLE 2022-09-23 22:01:09 +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
EGL_ANGLE_vulkan_image.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_device_query.txt