angle/extensions
Olli Etuaho 2c8f084543 Add ANGLE_multiview_multisample
We add a novel multiview multisampling extension that includes the
requirement to explicitly resolve the multisampled framebuffer. The
explicit resolve is much more straightforward to implement on top of
OpenGL and D3D11 than implicit resolve found in the native extension
OVR_multiview_multisampled_render_to_texture. It also has predictable
performance characteristics.

The extension allows multiview drawing to 2D multisample texture
arrays and is now enabled on both the GL backend and the D3D11
backend. The implementation is fairly simple, as it involves just
small changes in validation to allow multisampled framebuffer
attachments. The multiview rendering logic is exactly the same
regardless of whether multisampling is enabled.

For the most part the same tests are used to test both multisampled
and non-multisampled rendering. The tests will use a different
framebuffer setup depending on the test param. They resolve the
multisampled framebuffer to a non-multisampled framebuffer prior to
any readbacks from the framebuffer.

Some of the tests are adjusted so that they have the correct sub-pixel
positioning of multisampled quads, so there won't be any pixels that
would be just partially covered.

The tests don't have any tolerance for partially covered pixels - if
we find any platforms where the tests run into a sub-pixel positioning
corner case, tolerance may need to be added later.

BUG=angleproject:2775
TEST=angle_end2end_tests

Change-Id: I590d7f300a92ea5439f2720d9db14a7976db2e1d
Reviewed-on: https://chromium-review.googlesource.com/1221214
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2018-09-19 13:19:40 +00:00
..
ANGLE_client_arrays.txt Change Validation For Indexed Draw Without ELEMENT_ARRAY_BUFFER 2018-06-19 17:18:46 +00:00
ANGLE_depth_texture.txt
ANGLE_explicit_context.txt Add initial specification for EGL_ANGLE_explicit_context Extension 2018-05-23 19:19:57 +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_framebuffer_blit.txt
ANGLE_framebuffer_multisample.txt
ANGLE_instanced_arrays.txt
ANGLE_lossy_etc_decode.txt D3D11: Transcode ETC1 to BC1. 2016-02-05 15:26:51 +00:00
ANGLE_multiview.txt Allow reads from a multiview framebuffer with one view 2018-07-31 15:39:00 +00:00
ANGLE_multiview_multisample.txt Add ANGLE_multiview_multisample 2018-09-19 13:19:40 +00:00
ANGLE_pack_reverse_row_order.txt
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_request_extension.txt Split WebGL compatibility into two extensions. 2016-12-01 17:24:53 +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_resource_initialization.txt Change robust resource init into a context creation attribute. 2017-10-06 14:23:12 +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_webgl_compatibility.txt Split WebGL compatibility into two extensions. 2016-12-01 17:24:53 +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 Implement the new formats/features of the ES3 CHROMIUM_copy_texture. 2017-05-24 20:25:44 +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_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_d3d_share_handle_client_buffer.txt
EGL_ANGLE_d3d_texture_client_buffer.txt Allow creating EGL pbuffers from typeless D3D textures 2018-01-23 16:15:50 +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
EGL_ANGLE_direct3d_display.txt
EGL_ANGLE_direct_composition.txt Add EGL spec for EGL_ANGLE_direct_composition 2015-12-18 22:40:28 +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_flexible_surface_compatibility.txt Add EGL_ANGLE_flexible_surface_compatibility 2015-12-16 23:45:31 +00:00
EGL_ANGLE_iosurface_client_buffer.txt Expand the EGLIOSurfaceClientBufferTests 2018-02-20 16:00:01 +00:00
EGL_ANGLE_keyed_mutex.txt
EGL_ANGLE_platform_angle.txt EGL: Expose NULL driver device selection. 2018-01-05 00:08:29 +00:00
EGL_ANGLE_platform_angle_context_virtualization.txt WGL: Support unvirtualized contexts and unsafe multithreading. 2018-06-21 20:21:27 +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_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_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 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
EGL_ANGLE_surface_orientation.txt Add an EGL_ANGLE_surface_orientation extension. 2016-01-04 17:48:46 +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_get_sync_values.txt Re-land eglGetSyncValuesCHROMIUM extension. 2017-03-24 20:13:46 +00:00
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 ParallelCompile: Add entry points. 2018-06-27 02:07:17 +00:00