Граф коммитов

150 Коммитов

Автор SHA1 Сообщение Дата
Martin Radev 14b2126ecf Relax multi-view end-point validation on detach
Passing invalid arguments to the multi-view end-points should not
generate an error if a texture is being detached from the framebuffer.

BUG=angleproject:2062
TEST=angle_end2end_tests

Change-Id: I22e1ed13b64db046724031d0189612d5e111dcac
Reviewed-on: https://chromium-review.googlesource.com/635166
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2017-08-29 14:16:41 +00:00
Martin Radev eef80e4012 Do not implicitly enable the scissor test for side-by-side FBOs
The patch modifies the ANGLE_multiview specification so that issuing a
Draw* command has undefined results for side-by-side FBOs if the scissor
test is disabled. Also, clearing a side-by-side framebuffer will result
in clearing the whole content of the specified buffers if the scissor
test is disabled.
StateManagerGL and FramebufferGL are modified to address this change in
the spec.

BUG=angleproject:2062
TEST=angle_end2end_tests

Change-Id: I39a87d297944f12769dee2ead17b508ac22053db
Reviewed-on: https://chromium-review.googlesource.com/612283
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2017-08-16 10:15:59 +00:00
Martin Radev 2803168e5b Disallow glReadPixels with multi-view read framebuffers
According to the ANGLE_multiview spec, glReadPixels must generate an
INVALID_FRAMEBUFFER_OPERATION error if the active read framebuffer has
a multi-view layout.

BUG=angleproject:2062
TEST=angle_end2end_tests

Change-Id: Ia5311ff7a62c5ff732491eb80befd32de57b9d44
Reviewed-on: https://chromium-review.googlesource.com/591368
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-07-31 09:09:29 +00:00
Jamie Madill 222c517f70 Control Debug layers in ANGLE_platform_angle.
Debug layers seem to be a universal thing among functional back-ends.
D3D, OpenGL and Vulkan all need some kind of controls for debugging,
so it seems to make sense to make this control part of the base
extension.

Default the extension to EGL_DONT_CARE, which allows the back-end to
have a lot of flexibility in terms of implementation.

Also enable the extension in the D3D11 and OpenGL back-ends, and set
the extension to enabled for angle_end2end_tests.

Remove EGLVulkanEXTTest since it no longer tests anything not tested
in the base ANGLETest class.

BUG=angleproject:2086

Change-Id: I52d8170effd1846b9afbe6e4052c699fe5cb0de8
Reviewed-on: https://chromium-review.googlesource.com/578369
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2017-07-19 22:18:10 +00:00
Jamie Madill 298a35f035 Rename EGL platform extension text files.
This makes the naming more consistent with the rest of the EGL
extensions.

BUG=angleproject:2086

Change-Id: If08e7a550d6b99fb5a3a2138b0c94afc82b2b417
Reviewed-on: https://chromium-review.googlesource.com/578368
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-07-19 19:58:40 +00:00
Martin Radev e71afb877d Add specification for ANGLE_multiview
The patch adds the specification for the ANGLE_multiview extension
which enables efficient multiview rendering. The views can be laid
out side-by-side onto a 2D texture or rendered on separated layers of
a 2D texture array.

BUG=angleproject:2062

Change-Id: I4edd3ab0cfbb3906d90c2a5667d8d1f99f291f1c
Reviewed-on: https://chromium-review.googlesource.com/559089
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
2017-07-14 13:30:03 +00:00
Jamie Madill 315ecd2074 Add entry points for EGL_ANGLE_program_cache_control.
This instruments the plumbing for the extension without adding any
functionality or exposing the extensions string.

The extension text is also updated to reflect the new entry point
design and naming. Also this corrects a few mistakes.

This will be followed up by the tests (which won't run) and then
the extension functionality in ANGLE.

BUG=angleproject:1897

Change-Id: I5b009e23bc27da06b067375525bd6fc574027702
2017-07-11 13:51:04 -04:00
Jamie Madill 83f0fb4d3b Add program binary cache EGL and GL extensions.
The EGL extension will allow for querying the cache and populating it
with shaders on startup. The GL extension adds some language to the
spec and allows for querying the program binary cache status of a
Context.

BUG=angleproject:1897

Change-Id: I7233844e41008f097efbb30cf9fe9c89227085fc
Reviewed-on: https://chromium-review.googlesource.com/556383
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-07-05 20:45:57 +00:00
Jamie Madill 948bbe51db Redesign robust resource init as a display extension.
Also correct the enum allocation to values that are available to ANGLE.

BUG=angleproject:1635

Change-Id: I443f5654aa6a5049b4a1ae4c253cd6473b4e446e
Reviewed-on: https://chromium-review.googlesource.com/520002
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2017-06-01 19:19:35 +00:00
Geoff Lang 4f0e003e57 Implement the new formats/features of the ES3 CHROMIUM_copy_texture.
Some non-renderable texture formats remain unimplemented.

BUG=angleproject:1932

Change-Id: Id206432d6e26a70fc0e84478a4e43e9eefadcf2f
Reviewed-on: https://chromium-review.googlesource.com/491948
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-05-24 20:25:44 +00:00
Bryan Bernhart (Intel Americas Inc) 151d5de65f Enable MSAA for texture client buffers
Enhancement to the EGL_ANGLE_d3d_texture_client_buffer extension to
allow use of a shared D3D texture that can be multi-sampled.

BUG=angleproject:1917

Change-Id: Iaf59bbd575a5dfb29345f55b549bc4017bf2d7d0
Reviewed-on: https://chromium-review.googlesource.com/446907
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2017-04-24 16:18:33 +00:00
Corentin Wallez b29316019b Add robust entry point for CompressedTex(Sub)Image
BUG=angleproject:1354

Change-Id: I925db827c4ccf4e6f037a058f8f6b960a56047e1
Reviewed-on: https://chromium-review.googlesource.com/474964
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-04-19 15:26:22 +00:00
Geoff Lang e93dabaaa2 Output the number of columns and rows written for robust ReadPixels.
BUG=angleproject:1354

Change-Id: Ib78f74d7b1a449468e2c477955f6795dc5dbc811
Reviewed-on: https://chromium-review.googlesource.com/463786
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2017-04-04 19:15:07 +00:00
Geoff Lang fc72a07301 Update CHROMIUM_copy_texture entry points to the ES3 versions.
BUG=angleproject:1932

Change-Id: Ia45f8522320af1d747fbfb57468e8b881b033543
Reviewed-on: https://chromium-review.googlesource.com/459101
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-03-28 13:55:18 +00:00
Stanislav Chiknavaryan ee218f273f Re-land eglGetSyncValuesCHROMIUM extension.
This reverts commit 20c97cac2a
and adds a few trivial changes to make it build with the current version
of ANGLE code.

Please see https://bugs.chromium.org/p/chromium/issues/detail?id=614147
for more details on how this extension will be used.

Original description:

This change adds implementation of eglGetSyncValuesCHROMIUM extension
on D3D11 with Direct Composition. This should work on Windows 8.1 and
above.

The implementation is based on IDXGISwapChain::GetFrameStatistics.

Extension documentation:
https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt

BUG=angleproject:1402

Change-Id: I4b77899f31a4c4cf1fa7f20ab12de5a02ccf74d8
Reviewed-on: https://chromium-review.googlesource.com/459217
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-03-24 20:13:46 +00:00
Olli Etuaho 6ca2b65c43 Implement location layout qualifier for uniforms
This is a complete implementation of the uniform location layout
qualifier. Uniform location set in the shader is plumbed to shader
linking, which does several link-time checks for conflicts and
recursively applies the location to struct members.

Validate that location is consistent as specified in the table in
section 9.2.1 of the ESSL 3.10.4 spec. The location set in the shader
overrides the one set via the CHROMIUM_bind_uniform_location API.

Location conflicts must be checked even if the uniforms are not
statically used. Because of this unused uniforms are now recorded
during uniform linking. After linking checks are done, unused uniforms
are pruned from the program state.

Location is validated against the maximum number of uniform locations
at compile time as specified in section 4.4.3 of the ESSL 3.10.4 spec.

All dEQP uniform location tests don't yet pass due to unrelated bugs.

BUG=angleproject:1442
TEST=angle_end2end_tests, dEQP-GLES31.functional.uniform_location.*

Change-Id: I1f968e971f521fbc804b01e1a7c2b4d14f24d20f
Reviewed-on: https://chromium-review.googlesource.com/447942
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
2017-03-09 16:52:08 +00:00
Jamie Madill e08a1d368e Plumb robust resource init extensions.
This also cleans up a few minor glitches in the extension texts,
and renames the EGL extension for consistency.

It incidentally fixes a bug in our EGL init where we were checking
the wrong client versions for KHR_create_context.

It also implements a new feature for tests which allow them to defer
Context creation until the test body. This allows tests to check for
EGL extension available before trying to create a context with certain
extensions.

BUG=angleproject:1635

Change-Id: I9311991332c357e36214082b16f2a4a57bfa8865
Reviewed-on: https://chromium-review.googlesource.com/450920
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-03-08 00:54:23 +00:00
Geoff Lang feb8c68685 Add extensions to disable client arrays.
Chrome doesn't allow any client data in its command buffer.  Add an ANGLE
extension to request a context that disallows client data.

BUG=602737

Change-Id: If9d5144daea3c629a73562396000df59a671aad3
Reviewed-on: https://chromium-review.googlesource.com/441986
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-02-15 17:31:55 +00:00
Geoff Lang 40dc8c107f Release the global texture manager with the last referencing context.
This ensures that when the global texture manager is released, there is a valid
context.

BUG=angleproject:1639

Change-Id: I1b75885e9dc02b607bb1a386de394f6087429f5d
Reviewed-on: https://chromium-review.googlesource.com/442074
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2017-02-14 17:57:52 +00:00
Geoff Lang ce02f08657 Add an extension to share textures at the display level.
BUG=angleproject:1639

Change-Id: If9140142ebce89f33921c13d9d212c17d1894162
Reviewed-on: https://chromium-review.googlesource.com/437618
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2017-02-09 14:56:15 +00:00
Jamie Madill 0448ec847d Vulkan: Enable validation layers on request.
Also adds the build files for the Vulkan layers.

The layers are enabled by default for the tests.

BUG=angleproject:1319

Change-Id: I0b442b36312a1299a932922e1c4e39f00801de49
Reviewed-on: https://chromium-review.googlesource.com/367751
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-12-23 20:43:56 +00:00
Jamie Madill e09bd5d32e Vulkan: Add display creation, test and extension.
With this CL we have the ability to create Vulkan test configs and run
basic tests, although the only thing that works is creating a Vulkan
Renderer using the extension.

BUG=angleproject:1319

Change-Id: I8ad17bba01241334be7da16e68fea38762ca6a20
Reviewed-on: https://chromium-review.googlesource.com/367750
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-12-20 23:42:25 +00:00
Geoff Lang c339c4e590 Split WebGL compatibility into two extensions.
The mechanism for requesting extensions is now a separate extension.
Added a way to query the extensions that support enabling.

BUG=angleproject:1523

Change-Id: I2efaa9f6d67b12ecae325f455404e34ba04d0e7c
Reviewed-on: https://chromium-review.googlesource.com/414529
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-12-01 17:24:53 +00:00
Geoff Lang 32028eb9ba Fix EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE enum typo in extension spec.
BUG=angleproject:1332

Change-Id: I2c5aa9e155f175fea51af05fed40a55569e6745a
Reviewed-on: https://chromium-review.googlesource.com/408813
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-08 14:52:05 +00:00
Stanislav Chiknavaryan 20c97cac2a Squashed commit of the following:
commit 0146dfeefa47b520e71f0e74230abd7dac163a79
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date:   Fri Nov 4 17:43:03 2016 -0700

    Revert "Implementation of eglGetSyncValuesCHROMIUM extension."

    This reverts commit 5d9f5df01a.

commit 0d920fe27bd8e73d831a9002548bde00fea78709
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date:   Fri Nov 4 17:23:11 2016 -0700

    Revert "Fix EGLSyncControlTest.SyncValuesTest timeout on Windowse Server 2012 R2"

    This reverts commit d258ca045f.

commit bde8defe53741855bb71fbf27bcb0a91cfafbd01
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date:   Fri Nov 4 17:22:58 2016 -0700

    Revert "Disabling EGLSyncControlTest.SyncValuesTest"

    This reverts commit a741836139.

commit f78e4b7e97b9d1259878f6902bb6ddeb0aeded87
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date:   Fri Nov 4 17:22:36 2016 -0700

    Revert "Fix and re-enable EGLSyncControlTest.SyncValuesTest"

    This reverts commit 138ec92f52.

commit f3933e6a04bd23473077d2fd74616023db3c9601
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date:   Fri Nov 4 17:20:26 2016 -0700

    Revert "Handle nullptr mSwapChain in SwapChain11::getSyncValues"

    This reverts commit af7f301f6b.

BUG=angleproject:1402

Change-Id: I99969e906e316574e9f739141de0e360d1edebd9
Reviewed-on: https://chromium-review.googlesource.com/408752
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
2016-11-07 23:47:19 +00:00
Geoff Lang 2018c0bac4 Add a EGL_ANGLE_d3d_texture_client_buffer extension.
Allows creation of pbuffers from D3D texture objects.

BUG=540829
BUG=angleproject:1144

Change-Id: If8ea717ef011608cd01357c217837133d726d3ea
Reviewed-on: https://chromium-review.googlesource.com/316804
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-10-27 16:45:18 +00:00
Geoff Lang 0a9661f2b4 Implement robust the GetInternalFormativ entry point.
BUG=angleproject:1354

Change-Id: Ib25fe4905fdd6c532c67de1d4ca1ba37932f8e0b
Reviewed-on: https://chromium-review.googlesource.com/401149
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-10-20 19:01:50 +00:00
Geoff Lang e61d304564 Don't write to the <length> parameter if an error is generated.
BUG=angleproject:1354

Change-Id: I9ed4a675b2be07b00c29d34e283280dc65238fea
Reviewed-on: https://chromium-review.googlesource.com/395109
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-10-07 18:32:11 +00:00
Geoff Lang 47110bf4b3 Implement CHROMIUM_copy_compressed_texture for D3D11.
BUG=angleproject:1356

Change-Id: Id563997d2921cf558c52a781ae66d8bde58d1f2f
Reviewed-on: https://chromium-review.googlesource.com/339847
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-10-07 14:56:11 +00:00
Stanislav Chiknavaryan 5d9f5df01a Implementation of eglGetSyncValuesCHROMIUM extension.
This change adds implementation of eglGetSyncValuesCHROMIUM extension
on D3D11 with Direct Composition. This should work on Windows 8.1 and
above.

The implementation is based on IDXGISwapChain::GetFrameStatistics.

Extension documentation:
https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt

BUG=angleproject:1402

Change-Id: I306434dd8d85d618b14edfa38fc2a22e50fddacc
Reviewed-on: https://chromium-review.googlesource.com/390351
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-10-06 20:44:37 +00:00
Geoff Lang 168445c20c Add an extension for requesting a NULL Display.
BUG=angleproject:1468

Change-Id: Ief4b0e7d7a0420e59e547cd24fde53deb3718ccb
Reviewed-on: https://chromium-review.googlesource.com/388845
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-10-05 20:07:22 +00:00
Geoff Lang ff5b2d5128 Add a GL_ANGLE_robust_client_memory extension.
This allows specifying data size to all GL functions that provide a pointer to
client memory and a length parameter for all functions in which the driver
writes to client memory.

BUG=angleproject:1354

Change-Id: Ia68be1576b957cb529c87b5e0d1bd638c7dbd371
Reviewed-on: https://chromium-review.googlesource.com/382012
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-09-29 18:09:19 +00:00
Geoff Lang f41a7151a5 Add an extension to disable resource generation on bind.
BUG=angleproject:1518

Change-Id: I662f7b07da5c97831496f2617b0adadf9858bdc9
Reviewed-on: https://chromium-review.googlesource.com/386799
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-09-23 14:16:37 +00:00
Geoff Lang c287ea6e0a Add WebGL validation extensions to ANGLE.
BUG=angleproject:1523

Change-Id: I6fecb5055ed8087665aeee34b3a066ea8f38d51b
Reviewed-on: https://chromium-review.googlesource.com/386281
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-09-20 15:27:28 +00:00
Geoff Lang 97073d12b7 Implement CHROMIUM_copy_texture for D3D11.
BUG=angleproject:1356

Change-Id: I70246762411dbeeb3e291e317854139a68d80070
Reviewed-on: https://chromium-review.googlesource.com/339434
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-08-03 17:56:06 +00:00
Geoff Lang 2b4ce80c65 Implement GL_CHROMIUM_sync_query for D3D9 and D3D11.
BUG=angleproject:1366

Change-Id: Iadde61968f45b969c76578a6dd9116a25d63fb4b
Reviewed-on: https://chromium-review.googlesource.com/341230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-05-12 19:14:40 +00:00
Geoff Lang d860552fc4 Implement support for CHROMIUM_bind_uniform_location.
BUG=angleproject:1353

Change-Id: Ia219ff973de0de2f8e112c276b3ab6319f7d3884
Reviewed-on: https://chromium-review.googlesource.com/334252
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-04-26 18:03:31 +00:00
Ian Ewell 4a48d9a3af Initial implementation of ANGLE_stream_producer_d3d_texture_nv12.
Add the validation and entrypoints for
ANGLE_stream_producer_d3d_texture_nv12, which is a new EGL extension
currently being written. The purpose of this extension is to allow
insertion of D3D11 NV12 textures to be inserted into a stream. This acts
as the producer of the EGL stream.

BUG=angleproject:1332

Change-Id: I50d4565cc82b63f7da7632adad4ac4c77d8800f2
Reviewed-on: https://chromium-review.googlesource.com/336695
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
2016-04-08 17:10:12 +00:00
Austin Kinross 2a63b3f860 Re-land "Implement EGL_experimental_present_path_angle"
- Re-land with clang fix.

This allows ANGLE to render directly onto a D3D swapchain in the correct
orientation when using the D3D11 renderer.

The trick is to add an extra uniform to each shader which takes either
the value +1.0 or -1.0. When rendering to a texture, ANGLE sets this
value to -1.0. When rendering to the default framebuffer, ANGLE sets
this value to +1.0. ANGLE multiplies vertex positions by this value in
the VS to invert rendering when appropriate. It also corrects other
state (e.g. viewport/scissor rect) and shader built-in values
(e.g. gl_FragCoord).

This saves a substantial amount of GPU time and lowers power
consumption. For example, the old method (where ANGLE renders all
content onto an offscreen texture, and then copies/inverts this onto the
swapchain at eglSwapBuffers() time) uses about 20% of the GPU each frame
on a Lumia 630.

Verification:
+ dEQP GL ES2 tests pass when "present path fast" is enabled
+ all ANGLE_end2end_tests pass when "present path fast" is enabled

BUG=angleproject:1219

Change-Id: I56b339897828753a616d7bae837a2f354dba9c63
Reviewed-on: https://chromium-review.googlesource.com/326730
Tryjob-Request: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-02-08 21:05:16 +00:00
Jamie Madill d1c46228ef Revert "Implement EGL_experimental_present_path_angle"
Compile failure on Clang/Win:

The reason for reverting is: FAILED: ninja -t msvc -e environment.x86 --
"..\..\third_party/llvm-build/Release+Asserts/bin/clang-cl" -m32 /nologo
/showIncludes /FC
@obj\third_party\angle\src\tests\egl_tests\angle_end2end_tests.EGLPresentPathD3D11Test.obj.rsp
/c ..\..\third_party\angle\src\tests\egl_tests\EGLPresentPathD3D11Test.cpp
/Foobj\third_party\angle\src\tests\egl_tests\angle_end2end_tests.EGLPresentPathD3D11Test.obj
/Fdobj\gpu\angle_end2end_tests.cc.pdb 
In file included from
..\..\third_party\angle\src\tests\egl_tests\EGLPresentPathD3D11Test.cpp:7:
In file included from
..\..\third_party\angle\src\tests\test_utils/ANGLETest.h:13:
..\..\testing\gtest\include\gtest/gtest.h(1392,16) :  error: comparison of
integers of different signs: 'const int' and 'const unsigned int'
[-Werror,-Wsign-compare]
  if (expected == actual) {
      ~~~~~~~~ ^  ~~~~~~
..\..\testing\gtest\include\gtest/gtest.h(1422,12) :  note: in instantiation of
function template specialization 'testing::internal::CmpHelperEQ<int, unsigned
int>' requested here
    return CmpHelperEQ(expected_expression, actual_expression, expected,
           ^
..\..\third_party\angle\src\tests\egl_tests\EGLPresentPathD3D11Test.cpp(281,9) :
 note: in instantiation of function template specialization
'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
        ASSERT_EQ(mWindowWidth * 4, mappedSubresource.RowPitch);
        ^
..\..\testing\gtest\include\gtest/gtest.h(1960,32) :  note: expanded from macro
'ASSERT_EQ'
# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                               ^
..\..\testing\gtest\include\gtest/gtest.h(1943,67) :  note: expanded from macro
'GTEST_ASSERT_EQ'
                      EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \
                                                                  ^

BUG=angleproject:1219

This reverts commit 6b3c1db517.

Change-Id: Ia67ab82dd13295dc03235d57fa417c73f20a49e6
Reviewed-on: https://chromium-review.googlesource.com/326680
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-02-08 14:51:45 +00:00
Austin Kinross 6b3c1db517 Implement EGL_experimental_present_path_angle
This allows ANGLE to render directly onto a D3D swapchain in the correct
orientation when using the D3D11 renderer.

The trick is to add an extra uniform to each shader which takes either
the value +1.0 or -1.0. When rendering to a texture, ANGLE sets this
value to -1.0. When rendering to the default framebuffer, ANGLE sets
this value to +1.0. ANGLE multiplies vertex positions by this value in
the VS to invert rendering when appropriate. It also corrects other
state (e.g. viewport/scissor rect) and shader built-in values
(e.g. gl_FragCoord).

This saves a substantial amount of GPU time and lowers power
consumption. For example, the old method (where ANGLE renders all
content onto an offscreen texture, and then copies/inverts this onto the
swapchain at eglSwapBuffers() time) uses about 20% of the GPU each frame
on a Lumia 630.

Verification:
+ dEQP GL ES2 tests pass when "present path fast" is enabled
+ all ANGLE_end2end_tests pass when "present path fast" is enabled

BUG=angleproject:1219

Change-Id: Ib6eeea46bafa6ebce4adada0ae9db3a433b8fc4c
Reviewed-on: https://chromium-review.googlesource.com/321360
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-02-05 20:14:18 +00:00
Minmin Gong e3939b985c D3D11: Transcode ETC1 to BC1.
Adds a new extension to allow transcode ETC formats to suitable BC formats.
This commit implements ETC1 to BC1. More formats will be supported soon.

BUG=angleproject:1285

Change-Id: Iacbfbc2248dfe1aebf24b92696249a9404e331cd
Reviewed-on: https://chromium-review.googlesource.com/316511
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-02-05 15:26:51 +00:00
Austin Kinross 69a75a2ebd Add an EGL spec for EGL_experimental_present_path_angle
BUG=angleproject:1219

Change-Id: I1e303ec30ffe877aebf00720620b818c335fac76
Reviewed-on: https://chromium-review.googlesource.com/310652
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
2016-02-02 16:39:26 +00:00
Geoff Lang 7f448b586a Add an EGL_ANGLE_surface_orientation extension.
BUG=angleproject:1262

Change-Id: Ifbb0f5302311a68a0c6f02baaea706cbb7055a52
Reviewed-on: https://chromium-review.googlesource.com/320011
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2016-01-04 17:48:46 +00:00
Geoff Lang 666cb828d6 Revert "Add an EGL_ANGLE_surface_orientation extension."
Compilation warnings on clang.

This reverts commit 18cc14b595.

Change-Id: If58047486116e34ef30c4b317d3fb47cd2349d15
Reviewed-on: https://chromium-review.googlesource.com/319822
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2016-01-04 17:44:23 +00:00
Geoff Lang 18cc14b595 Add an EGL_ANGLE_surface_orientation extension.
BUG=angleproject:1262

Change-Id: I863c46c8557604da045447550f7d69831c9f06b5
Reviewed-on: https://chromium-review.googlesource.com/318780
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2016-01-04 16:05:49 +00:00
John Bauman 160d9ab752 Add EGL spec for EGL_ANGLE_direct_composition
This allows applications to specify that they want to render to the screen
using DirectComposition. This can save power by allowing the use of
DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL and DirectFlip, but has other side effects -
windows must be owned by the current process, and contents drawn by GDI are
shown underneatch the window.

BUG=angleproject:1178
Change-Id: I2e45d92c9f92f27eedaf50f0a866c20c43f3aab5
Reviewed-on: https://chromium-review.googlesource.com/317651
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: John Bauman <jbauman@chromium.org>
2015-12-18 22:40:28 +00:00
John Bauman fe3e46abbc Add EGL_ANGLE_flexible_surface_compatibility
This extension allows users of ANGLE to make contexts current with surfaces
that were created with different bit depths.

BUG=angleproject:1223

Change-Id: I9072c256e0a36aee1ce41ab69cb9a04240bf0521
Reviewed-on: https://chromium-review.googlesource.com/314935
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: John Bauman <jbauman@chromium.org>
Tested-by: John Bauman <jbauman@chromium.org>
2015-12-16 23:45:31 +00:00
Austin Kinross fc1a44a1fe Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]""
This reverts commit dd5c5b7933.

BUG=angleproject:1190

Change-Id: I1bc1b232b6a916da6d18b546baf20e0854a2768f
Reviewed-on: https://chromium-review.googlesource.com/315169
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-12-03 18:20:07 +00:00
Jamie Madill dd5c5b7933 Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"
Causes failures on Windows/GN:

e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(108)
: error C3861: 'eglCreateDeviceANGLE': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(113)
: error C3861: 'eglQueryDeviceAttribEXT': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(119)
: error C3861: 'eglReleaseDeviceANGLE': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(143)
: error C3861: 'eglQueryDeviceAttribEXT': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(162)
: error C3861: 'eglCreateDeviceANGLE': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(178)
: error C3861: 'eglCreateDeviceANGLE': identifier not found

This reverts commit 4029ad42d5.

BUG=angleproject:1190

Change-Id: Ibcdfd8cea7ba275cd67c0220f8d7a1069ec1cf97
Reviewed-on: https://chromium-review.googlesource.com/315480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-12-02 13:51:31 +00:00
Corentin Wallez 3d677ea685 Implement EGL_ANGLE_x11_visual
Reland with a fixed tests on AMD.

This extension will be used by Chrome to advertise the visual it will
use for its windows. Having ANGLE use the same visual will bring
several benefits:
 - A blit will be avoided, and the content of the window might be
   rendered on the system framebuffer directly.
 - There will be less latency when resizing windows which will make it
   much less likely to see a black border when resizing.

BUG=522149

Change-Id: I66004b6ac45453330af7c4c810ddf2c26941be42
Reviewed-on: https://chromium-review.googlesource.com/314661
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-12-01 18:50:33 +00:00
Austin Kinross 4029ad42d5 Add and implement EGL_ANGLE_device_creation[_d3d11]
BUG=angleproject:1190

Change-Id: I248935ef81803062cf9ba5776512cda456331f51
Reviewed-on: https://chromium-review.googlesource.com/309634
Tryjob-Request: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-11-30 15:15:59 +00:00
Jamie Madill 5ac60fc2a3 Revert "Implement EGL_ANGLE_x11_visual"
Fails on Linux AMD:

http://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28ATI%29/builds/43819

EGLX11VisualHintTest.InvalidWindowVisualID:
../../third_party/angle/src/tests/egl_tests/EGLX11VisualTest.cpp:183: Failure
Value of: EGL_TRUE == eglInitialize(display, nullptr, nullptr)
Actual: false
Expected: true

BUG=522149

This reverts commit b28e010aa1.

Change-Id: I9a02f2aa3caadd787eb0099c0ddf9d781084fa1c
Reviewed-on: https://chromium-review.googlesource.com/314660
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-11-27 13:42:51 +00:00
Corentin Wallez b28e010aa1 Implement EGL_ANGLE_x11_visual
This extension will be used by Chrome to advertise the visual it will
use for its windows. Having ANGLE use the same visual will bring
several benefits:
 - A blit will be avoided, and the content of the window might be
   rendered on the system framebuffer directly.
 - There will be less latency when resizing windows which will make it
   much less likely to see a black border when resizing.

BUG=522149

Change-Id: Icd484c9a948ed5b5b9116247bb50560bffa30667
Reviewed-on: https://chromium-review.googlesource.com/312323
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-11-26 20:06:13 +00:00
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
Jeff Muizelaar d17c016bd4 Add support for RESOURCE_MISC_SHARED_KEYEDMUTEX
Change-Id: I225f38b4616ac47e690dccbcb67074fedc571d61
Reviewed-on: https://chromium-review.googlesource.com/225642
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-07-31 20:00:38 +00:00
Jamie Madill 33d12cb929 Add drafts for device query extensions.
These extensions give power apps the ability to query raw device
pointers from the EGL layer. EGL_EXT_device_query is based on
EGL_EXT_device_base, which is being split into device_query and
device_enumerate. We remove the device enumeration logic, and only
allow the app to query the current device from a display, which
matches how ANGLE works internally.

EGL_ANGLE_device_d3d gives the app the ability to query D3D
devices associated with a display.

BUG=angleproject:935

Change-Id: I8079661f00d11717ed0e792c9fe8dc5c26f67dcc
Reviewed-on: https://chromium-review.googlesource.com/252110
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-01 19:18:37 +00:00
Cooper Partin 0110e17264 Update ANGLE_platform_angle_d3d to be able to disable automatic trim.
BUG=angleproject:946

Change-Id: I5652495842b057998318b1583f8e1a586eba39aa
Reviewed-on: https://chromium-review.googlesource.com/258940
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-03-17 15:34:38 +00:00
Geoff Lang 7825f6199c Update ANGLE_platform_angle_d3d to use a device type enum instead of WARP bool.
BUG=angle:490

Change-Id: I1555e7f09b23138753e52ddf720d088587f7cadb
Reviewed-on: https://chromium-review.googlesource.com/232104
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-02-23 18:10:47 +00:00
Shannon Woods c7ea21fa1b Adds new robust initialization extensions.
Change-Id: I66d2ebbb0ce89bbfd1eda648e9ad0fb2edee0f31
Reviewed-on: https://chromium-review.googlesource.com/239286
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
2015-02-04 19:46:26 +00:00
Erik Dahlström ea7a21219b Add GLSL/ESSL validator/translator support for GL_EXT_shader_framebuffer_fetch.
BUG=angle:834

Change-Id: I2d4e25909a8e1266b9bb7f1d4421324143157c8a
Reviewed-on: https://chromium-review.googlesource.com/231032
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Erik Dahlström <ed@opera.com>
2014-12-03 16:32:39 +00:00
Geoff Lang 0d3683c425 Update ANGLE_platform_angle to allow requesting of Renderer versions.
Added enums to allow users to request major and minor versions of the
underlying API and if a WARP device is used.

BUG=angle:490

Change-Id: I0bfb2ac8d327da28a47cc8e6346300e47ab9538c
Reviewed-on: https://chromium-review.googlesource.com/225081
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-03 17:56:14 +00:00
Geoff Lang b9f240b1c3 Split the ANGLE_platform_angle_d3d extension by adding child extensions.
Renames the ANGLE_platform_angle_d3d extension to ANGLE_platform_angle
which acts as an umbrella extension for all the angle display types but
requires the sub-extensions (d3d, opengl, software) to be present for the
enums to be valid (similar to the OES_framebuffer_object extension).

BUG=angle:668

Change-Id: I2c00021558d8b781b20f948f5e0df03f734bd033
Reviewed-on: https://chromium-review.googlesource.com/202597
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-06-17 17:41:22 +00:00
John Bauman 3dc300a592 Allow creating fixed-size window surfaces.
BUG=320021

Change-Id: I97cdd65ac17ee142700dbf0f363891500e967571
Reviewed-on: https://chromium-review.googlesource.com/184205
Reviewed-by: John Bauman <jbauman@chromium.org>
Tested-by: John Bauman <jbauman@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/190563
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
2014-03-26 04:57:42 +00:00
Scott Graham 3e29695d0d Draft spec for ANGLE_platform_angle_d3d
This is the initial draft of a spec that extends
EGL_EXT_platform_base to allow choosing a particular ANGLE D3D
backend.

Change-Id: I1d80fa8b3c4a59fe998f6d15aa0f393bdb9d26c1
Reviewed-on: https://chromium-review.googlesource.com/184975
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Tested-by: Scott Graham <scottmg@chromium.org>
(cherry picked from commit dc18dc306d)
Reviewed-on: https://chromium-review.googlesource.com/190026
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
2014-03-17 22:03:39 +00:00
Geoff Lang 496123fd88 Implement EXT_blend_minmax.
BUG=angle:555

Change-Id: I1ae6a9783e718d16ee08bda5463f11cd52ad0967
Reviewed-on: https://chromium-review.googlesource.com/186123
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
2014-02-19 22:33:25 +00:00
Geoff Lang 1ec57f8024 Add support for GL_EXT_color_buffer_float.
TRAC #23794

Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
2013-10-30 09:50:57 -04:00
Geoff Lang 632192dd80 Added support for EXT_texture_rg in D3D9 and D3D11.
TRAC #22423

Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
2013-10-23 15:50:50 -04:00
Jamie Madill ba615196a8 Normalize line endings of tracked files in the repository.
TRAC #23896

Signed-off-by: Shannon Woods
2013-09-24 14:21:28 -04:00
shannonwoods@chromium.org 807faf2235 Add an extension describing the new D3D renderer chooser behavior in eglGetDisplay.
TRAC #23029

Author: Shannon Woods
Signed-off-by: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2329 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-05-30 00:10:12 +00:00
shannon.woods@transgaming.com a3ac01c869 Updates ANGLE_depth_texture to reflect proposed changes in requirements for g and b channels.
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1967 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-02-28 23:20:20 +00:00
shannon.woods@transgaming.com 3de0a4538a Updates to extensions from public registry
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1848 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-02-28 23:04:02 +00:00
daniel@transgaming.com 58ae0f6fe2 Update ANGLE_texture_compression_dxt
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1822 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-02-01 06:37:10 +00:00
daniel@transgaming.com 2d619cd347 Rename ANGLE_multiple_render_targets to EXT_draw_buffers
Trac #21120

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1813 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-02-01 03:20:20 +00:00
daniel@transgaming.com bbb0595354 Updates to MRT extension.
Trac #21120

    01/30/2013  dgkoch  add issue 6 and clear interactions
                        renamed to EXT_draw_buffers based on feedback
                        changed resolution of issue 3.

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1812 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-02-01 03:20:16 +00:00
shannon.woods@transgaming.com aa7c6c1f14 Document GetIntegerv errors in ANGLE_framebuffer_blit.
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1778 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-01-25 21:54:50 +00:00
shannon.woods@transgaming.com b71c65ca0d Updates for ANGLE_multiple_render_targets
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1777 736b8ea6-26fd-11df-bfd4-992fa37f6226
2013-01-25 21:54:44 +00:00
daniel@transgaming.com 844ad78d26 Revision 5 of ANGLE_MRT
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1457 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-11-28 19:41:28 +00:00
kbr@chromium.org 918c468416 Changed the name of the extension exposed to shaders to
GL_ANGLE_multiple_render_targets in order to match the GL extension
name. Using XYZ_draw_buffers as in GL_ARB_draw_buffers and
GL_NV_draw_buffers was causing inconsistencies.
Review URL: https://codereview.appspot.com/6715045

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1293 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-10-16 22:27:36 +00:00
kbr@chromium.org 6a026c49e9 Based on feedback from Al Patrick, Nicolas Capens and Daniel Koch,
removed the restriction about draw buffer 0 having to be non-NULL if
any higher draw buffers are non-NULL. Appears this can be supported
with a NULL FOURCC render target. Removed issue and adjusted
introductory text.
Review URL: https://codereview.appspot.com/6725048

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1292 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-10-16 21:54:27 +00:00
kbr@chromium.org c41bb9a21b Fixed issues pointed out by gman; removed references to GetDoublev and
ReadBuffer, which don't exist in either OpenGL ES 2.0 or 3.0.
Review URL: https://codereview.appspot.com/6681043

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1291 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-10-12 23:13:17 +00:00
kbr@chromium.org 60354ec62f Add draft ANGLE_multiple_render_targets extension.
Review URL: https://codereview.appspot.com/6642069

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1290 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-10-11 00:32:01 +00:00
apatrick@chromium.org 4cfe7b7f5f Initial specification for ANGLE_program_binary.
Review URL: https://codereview.appspot.com/6267048

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1140 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-06-06 20:06:20 +00:00
daniel@transgaming.com 6c6227a420 Updates to ANGLE_depth_texture
Trac #20959
 - fix a number of incorrect error values
 - disallow multi-level depth textures

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1132 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-06-05 19:49:53 +00:00
daniel@transgaming.com d2cccf7a9a Add ANGLE_depth_texture specification
Trac #20893

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1102 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-05-31 01:13:59 +00:00
daniel@transgaming.com 15ded51e85 Updates to ANGLE_pack_reverse_row_order
git-svn-id: https://angleproject.googlecode.com/svn/trunk@994 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-02-22 05:07:44 +00:00
daniel@transgaming.com f861b02cfc Update ANGLE_instanced_arrays spec.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@986 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-02-08 21:45:11 +00:00
daniel@transgaming.com 21a849dca8 Add ANGLE_instanced_arrays spec
Trac #18156

git-svn-id: https://angleproject.googlecode.com/svn/trunk@967 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-01-27 03:04:27 +00:00
daniel@transgaming.com c6489b152a Update extension numbers for published extensions.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@945 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-01-17 14:28:13 +00:00
bsalomon@google.com 56d46abe08 Add GL_ANGLE_pack_reverse_row_order. Performs vertical flip in readPixels and
may write direct to client ptr.

Bug=none
Test= Tested in a modified version of Chromium using canvas2D.
Review URL: http://codereview.appspot.com/5373104

git-svn-id: https://angleproject.googlecode.com/svn/trunk@889 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-11-23 14:53:10 +00:00
daniel@transgaming.com e1301a3c08 Add extension specifications
git-svn-id: https://angleproject.googlecode.com/svn/trunk@878 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-11-12 04:44:03 +00:00
daniel@transgaming.com b7bb11ab99 Add token to ANGLE_software_display extension
git-svn-id: https://angleproject.googlecode.com/svn/trunk@796 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-10-19 13:27:05 +00:00
daniel@transgaming.com 50297fc19a Assign proper enum to GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
Trac #18416
Signed-off-by: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@785 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-10-05 18:43:27 +00:00
zmo@google.com a574f78fcf Add an extension for querying translated HLSL shader source.
Review URL: http://codereview.appspot.com/5149046

git-svn-id: https://angleproject.googlecode.com/svn/trunk@780 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-10-03 21:45:23 +00:00
gman@chromium.org 50c526d210 Add support for DXT3 and DXT5
TEST=none
BUG=none
Review URL: http://codereview.appspot.com/4809068

git-svn-id: https://angleproject.googlecode.com/svn/trunk@721 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-08-10 05:19:44 +00:00
jbauman@chromium.org 84d7cbc3b1 Add extension to create software device.
Add an extension so that users can receive a device that renders in software. Currently this is done by loading a swiftshader dll.

BUG=
TEST=

Review URL: http://codereview.appspot.com/4631093

git-svn-id: https://angleproject.googlecode.com/svn/trunk@705 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-07-14 22:53:19 +00:00
daniel@transgaming.com 2b720c92f8 Fix the order of the error() parameters in Surface.cpp and advertise EGL_ANGLE_d3d_share_handle_client_buffer extension
Trac #16711

Also rename the extension file to match the extension name

Signed-off-by: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@651 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-05-13 16:05:22 +00:00
jbauman@chromium.org 4e29770792 Add support for eglCreatePbufferFromClientBuffer, taking as input a D3D share handle corresponding to the enum EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE. No spec as of yet, but it does the obvious thing.
BUG=129
TEST=

Review URL: http://codereview.appspot.com/4325048

git-svn-id: https://angleproject.googlecode.com/svn/trunk@650 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-05-12 23:04:07 +00:00
benvanik@google.com 62e4a51513 Adding ANGLE_timer_query draft extension spec.
Issue=142
Signed-off-by: Daniel Koch


git-svn-id: https://angleproject.googlecode.com/svn/trunk@627 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-04-29 18:07:50 +00:00
daniel@transgaming.com 6cfe678786 Add ANGLE extension specifications
git-svn-id: https://angleproject.googlecode.com/svn/trunk@608 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-04-06 18:45:47 +00:00