angle/extensions
Kimmo Kinnunen b18609b9f5 Implement ES 2,3 parts of EXT_blend_func_extended for shader translation
Exposes gl_SecondaryFragColor, glSecondaryFragData[] and
gl_MaxDualSourceDrawBuffers to GLES SL 1.0.

Relaxes rules for undefined output locations for GLES SL 3.0
and exposes gl_MaxDualSourceDrawBuffers.

If the output GL context is GL ES 2.0 or 3.0:
The emulation layer is expected to turn on EXT_blend_func_extended
if the output GL context supports it.

If the output GL context is GL:
The emulation layer is expected to turn on EXT_blend_func_extended
if the output GL context supports ARB_blend_func_extended or if GL
context is 3.2 or later.

If the source shader spec is GLES SL 2.0: The emulation layer is
expected to inspect the shader compilation output variables upon
linking. If output target is GL SL, the emulation layer should bind
color location 0, index 1 to "angle_SecondaryFragColor" if variable
"gl_SecondaryFragColorEXT" is used. Alternatively, emulation layer
should bind "angle_SecondaryFragData" to locations 0,1,2,3,..., all
color index 1, if "gl_SecondaryFragData" array is used.
(The caller can not bind the locations or specify output variables.)

If the source shader spec is GLES SL 3.0:
The emulation layer is expected to do location auto-resolve of the
the output variables that have undefined output locations that have
not been bound by the caller.
(The caller can not use gl_ built-ins, so nothing to do with those.)

BUG=angleproject:1085
TEST=angle_unittest

Change-Id: I5cafe205b0c29478b0dcd24aa89a7b0000f5d046
Reviewed-on: https://chromium-review.googlesource.com/287580
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Kimmo Kinnunen <kkinnunen@nvidia.com>
2015-08-07 16:47:11 +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_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_instanced_arrays.txt Updates to extensions from public registry 2013-02-28 23:04:02 +00:00
ANGLE_pack_reverse_row_order.txt Updates to extensions from public registry 2013-02-28 23:04:02 +00:00
ANGLE_platform_angle.txt Update ANGLE_platform_angle_d3d to use a device type enum instead of WARP bool. 2015-02-23 18:10:47 +00:00
ANGLE_platform_angle_d3d.txt Update ANGLE_platform_angle_d3d to be able to disable automatic trim. 2015-03-17 15:34:38 +00:00
ANGLE_platform_angle_opengl.txt Update ANGLE_platform_angle_d3d to use a device type enum instead of WARP bool. 2015-02-23 18:10:47 +00:00
ANGLE_program_binary.txt Initial specification for ANGLE_program_binary. 2012-06-06 20:06:20 +00:00
ANGLE_robust_resource_initialization.txt Adds new robust initialization extensions. 2015-02-04 19:46:26 +00:00
ANGLE_texture_compression_dxt.txt Update ANGLE_texture_compression_dxt 2013-02-01 06:37:10 +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
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_device_d3d.txt Add drafts for device query extensions. 2015-04-01 19:18:37 +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_keyed_mutex.txt Add support for RESOURCE_MISC_SHARED_KEYEDMUTEX 2015-07-31 20:00:38 +00: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 Update ANGLE_platform_angle_d3d to use a device type enum instead of WARP bool. 2015-02-23 18:10:47 +00:00
EGL_ANGLE_software_display.txt Add token to ANGLE_software_display extension 2011-10-19 13:27:05 +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_window_fixed_size.txt Allow creating fixed-size window surfaces. 2014-03-26 04:57:42 +00:00
EGL_EXT_create_context_robustness.txt Update extension numbers for published extensions. 2012-01-17 14:28:13 +00:00
EGL_EXT_device_query.txt Add drafts for device query extensions. 2015-04-01 19:18:37 +00:00
EXT_blend_func_extended.txt Implement ES 2,3 parts of EXT_blend_func_extended for shader translation 2015-08-07 16:47:11 +00:00
EXT_blend_minmax.txt Implement EXT_blend_minmax. 2014-02-19 22:33:25 +00:00
EXT_color_buffer_float.txt Add support for GL_EXT_color_buffer_float. 2013-10-30 09:50:57 -04:00
EXT_draw_buffers.txt Rename ANGLE_multiple_render_targets to EXT_draw_buffers 2013-02-01 03:20:20 +00:00
EXT_robustness.txt Update extension numbers for published extensions. 2012-01-17 14:28:13 +00:00
EXT_shader_framebuffer_fetch.txt Add GLSL/ESSL validator/translator support for GL_EXT_shader_framebuffer_fetch. 2014-12-03 16:32:39 +00:00
EXT_texture_rg.txt Added support for EXT_texture_rg in D3D9 and D3D11. 2013-10-23 15:50:50 -04:00
EXT_texture_storage.txt Update extension numbers for published extensions. 2012-01-17 14:28:13 +00:00