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 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_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 Updates ANGLE_depth_texture to reflect proposed changes in requirements for g and b channels. 2013-02-28 23:20:20 +00:00
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 Document GetIntegerv errors in ANGLE_framebuffer_blit. 2013-01-25 21:54:50 +00:00
ANGLE_framebuffer_multisample.txt Add ANGLE extension specifications 2011-04-06 18:45:47 +00:00
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 Updates to extensions from public registry 2013-02-28 23:04:02 +00:00
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 Updates to extensions from public registry 2013-02-28 23:04:02 +00:00
ANGLE_program_binary.txt Initial specification for ANGLE_program_binary. 2012-06-06 20:06:20 +00:00
ANGLE_program_cache_control.txt Add entry points for EGL_ANGLE_program_cache_control. 2017-07-11 13:51:04 -04:00
ANGLE_read_only_depth_stencil_feedback_loops.txt Add extension for read-only DS feedback loops. 2022-05-12 16:23:31 +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_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_pixel_local_storage.txt Add a framebuffer fetch implementation of PLS 2022-10-01 17:20:13 +00:00
ANGLE_texture_compression_dxt.txt Update ANGLE_texture_compression_dxt 2013-02-01 06:37:10 +00:00
ANGLE_texture_multisample.txt Add specification for ANGLE_texture_multisample. 2018-08-31 17:15:44 +00:00
ANGLE_texture_usage.txt Updates to extensions from public registry 2013-02-28 23:04:02 +00:00
ANGLE_timer_query.txt Normalize line endings of tracked files in the repository. 2013-09-24 14:21:28 -04:00
ANGLE_translated_shader_source.txt Updates to extensions from public registry 2013-02-28 23:04:02 +00:00
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 Fix the order of the error() parameters in Surface.cpp and advertise EGL_ANGLE_d3d_share_handle_client_buffer extension 2011-05-13 16:05:22 +00:00
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 Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"" 2015-12-03 18:20:07 +00:00
EGL_ANGLE_device_creation_d3d11.txt Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"" 2015-12-03 18:20:07 +00:00
EGL_ANGLE_device_d3d.txt Add drafts for device query extensions. 2015-04-01 19:18:37 +00:00
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 Add an extension describing the new D3D renderer chooser behavior in eglGetDisplay. 2013-05-30 00:10:12 +00:00
EGL_ANGLE_direct_composition.txt Add EGL spec for EGL_ANGLE_direct_composition 2015-12-18 22:40:28 +00:00
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_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 Add support for P010 IOSurfaces 2020-08-26 18:42:31 +00:00
EGL_ANGLE_keyed_mutex.txt Add support for RESOURCE_MISC_SHARED_KEYEDMUTEX 2015-07-31 20:00:38 +00:00
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_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 Add device id as a part of the key in EGLDisplay cache 2022-03-14 23:09:39 +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 Update extension numbers for published extensions. 2012-01-17 14:28:13 +00:00
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 Add token to ANGLE_software_display extension 2011-10-19 13:27:05 +00:00
EGL_ANGLE_stream_producer_d3d_texture.txt Support RGB gl-tex-external stream consumers for StreamProducerNV12. 2017-12-05 15:24:25 +00:00
EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt Update extension numbers for published extensions. 2012-01-17 14:28:13 +00:00
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_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 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_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 Implement EGL_ANGLE_x11_visual 2015-12-01 18:50:33 +00:00
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 Add drafts for device query extensions. 2015-04-01 19:18:37 +00:00