|
c3ee7ec0
|
2018-09-21T16:15:03
|
|
Implement EGL_ANDROID_image_native_buffer.
BUG=angleproject:2508
Change-Id: I8ef2ce8320edeb336727905055f47bb299dec2ea
Reviewed-on: https://chromium-review.googlesource.com/c/1238886
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5c72f28d
|
2018-09-18T17:03:59
|
|
Remove unused include global_state.h from validationEGL.cpp.
Bug: angleproject:2825
Change-Id: I34a7c520d31cf0a9321d5599046159ef9bf58be5
Reviewed-on: https://chromium-review.googlesource.com/1232973
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4230d484
|
2018-09-14T10:14:45
|
|
Finish fixing EGL enums.
This removes the temporary defines now that Chromium is up-to-date.
Bug: angleproject:2806
Change-Id: I8e3308d6b80e49c2b2a7a698ee5d8ad40f442475
Reviewed-on: https://chromium-review.googlesource.com/1227031
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f4d429c1
|
2018-09-13T11:20:52
|
|
Fix EGL enum allocation.
The following enums had a small typo causing them to be takend from an
unused block:
EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE
EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM
EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE
Fix this by temporarily defining a secondary enum. Once Chromium is
fixed upstream we can remove the temporary enum.
Reported by dan.glastonbury@gmail.com.
Bug: angleproject:2806
Change-Id: I2ce1dec0a30d5e83f2bec0ae243fd860cbcea4fc
Reviewed-on: https://chromium-review.googlesource.com/1220371
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9137adea
|
2018-08-27T14:22:37
|
|
Add support for EGL_ANDROID_blob_cache
The functionality of MemoryProgramCache is divided up in two. BlobCache
is now a generic binary cache, which interfaces with the callbacks from
EGL_ANDROID_blob_cache. MemoryProgramCache handles program
[de]serialization and interacts with BlobCache.
Bug: angleproject:2516
Change-Id: Ie4328a2e56a26338e033d84f4e53a1103411937d
Reviewed-on: https://chromium-review.googlesource.com/1194285
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d20e80b8
|
2018-08-17T10:02:24
|
|
More EGL validation refactor
Added separate Validate* functions for CopyBuffers(), BindTexImage(),
ReleaseTexImage(), SwapInterval(), and BindAPI().
For ValidateBindTexImage() the textureObject is set by validation when
appropriate and then used in the core function to prevent replicating
the textureObject look-up code.
Bug: angleproject:798
Change-Id: Ia32076a10aa0b044c2bdc8e2e24dd36d002c5022
Reviewed-on: https://chromium-review.googlesource.com/1180090
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
43a2762d
|
2018-08-16T14:23:00
|
|
Refactoring EGL validation
Migrating much of EGL validation to use existing macros.
Added new Validate* functions for eglDestroySurface(),
eglDestroyContext(), eglWaitNative() functions.
This continues the EGL validation refactor begun with SwapBuffers.
Following similar pattern used there, but putting this out as an
intermediate change to verify that code looks good and is going in the
desired direction.
Bug: angleproject:798
Change-Id: Id7309b9686543c20b20e273b35df1f8b9010fcd3
Reviewed-on: https://chromium-review.googlesource.com/1178750
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3394a73d
|
2018-07-26T09:56:07
|
|
Refactor of EGL SwapBuffers validation
Move the Validation checks for SwapBuffers into new ValidateSwapBuffers
function instead of in-line.
This is a first commit for refactor of EGL validation. I'll continue
the refactor in a similar fashion to this.
Bug: angleproject:798
Change-Id: Icb308d66c93528c9e440ae68abe85e44f98ede82
Reviewed-on: https://chromium-review.googlesource.com/1151538
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
03d132eb
|
2018-07-14T13:31:35
|
|
Support EGL_(WIDTH|HEIGHT) in eglSurfaceAttrib(), fixed resize
Setting EGL_WIDTH or EGL_HEIGHT results in mFixedWidth and mFixedHeight
changing their values.
Whenever the swap chain is tested for needing a resize, surfaces with
mFixedSize are treated as if they should be resized to mFixedWidth and
mFixedHeight from their current size. This way fixed-size surfaces
can be resized - it's enough to do a couple of eglSurfaceAttrib() calls
and then either let ANGLE check surface for needing a resize in due course,
or force that by calling eglWaitNative().
BUG=angleproject:2725
Change-Id: I2932d8ecd5a2f10500e4aa8583a169aa09bf01bb
Reviewed-on: https://chromium-review.googlesource.com/1139055
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
faf50849
|
2018-07-24T13:49:05
|
|
EGL: Validate that EGL_GL_TEXTURE_ZOFFSET is used only for 3D sources.
BUG=angleproject:2507
Change-Id: I0e5879acfbb7ba1b9d711f518205cebad2edb643
Reviewed-on: https://chromium-review.googlesource.com/1148657
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
24ddc7a8
|
2018-06-11T14:56:34
|
|
WGL: Support unvirtualized contexts and unsafe multithreading.
When using unvirtualized contexts, DisplayWGL still creates a Renderer for
managing any internal GL resources such as emulated back buffers for
DXGISwapChainWindowSurfaceWGL or D3DTextureSurfaceWGL but also creates a new
Renderer for each GL context. All created contexts share resources.
BUG=angleproject:2464
Change-Id: I945502514079368e062beef70bed49c61ed44403
Reviewed-on: https://chromium-review.googlesource.com/1097459
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
05a449a7
|
2018-06-20T18:08:04
|
|
Replace reinterpret_cast with safer or no cast
When casting types to one another in C++, the weaker the cast,
the better.
This change replaces instances of reinterpret_cast with static_cast
or no cast where it safe and correct to do so.
BUG=angleproject:2683
Change-Id: I99c9033614a65282ae1d78cf0f4b80fabd75877a
Reviewed-on: https://chromium-review.googlesource.com/1109396
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
75359664
|
2018-04-11T01:42:27
|
|
Implement EGL_KHR_debug.
BUG=angleproject:1618
Change-Id: I790944b49badc910b6c72266469fcb8e86ac4252
Reviewed-on: https://chromium-review.googlesource.com/1019387
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e1a057e8
|
2018-06-07T15:09:00
|
|
Fully format some files.
Change-Id: Id6ea245849696d4c6d7eabc6860c0ac424dd8013
Reviewed-on: https://chromium-review.googlesource.com/1091309
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1da46774
|
2018-05-14T14:30:30
|
|
Add support for EGL_ANDROID_presentation_time.
BUG=angleproject:2506
Change-Id: I46b3c6ac7f259eabfdd8ea5799da6ef563ff81ee
Reviewed-on: https://chromium-review.googlesource.com/1057997
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c2014bce
|
2018-05-28T16:09:04
|
|
Expose eglCreatePlatformWindowSurfaceEXT and eglCreatePlatformPixmapSurfaceEXT
These entry points are part of EGL_EXT_platform_base but were never returned by
eglGetProcAddress.
BUG=angleproject:2603
Change-Id: I4782df67fa8625a9af29a18df02af7b5fa73d75e
Reviewed-on: https://chromium-review.googlesource.com/1075469
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3f1eba94
|
2018-05-10T15:53:22
|
|
Support EGL_KHR_swap_buffers_with_damage in the EGL backend.
Update the EXT extension to KHR in ANGLE.
BUG=angleproject:2544
Change-Id: Ia647191c3e762d658b0f7e28a34a9ce2cc545f48
Reviewed-on: https://chromium-review.googlesource.com/1054415
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
390900a0
|
2018-05-18T09:44:59
|
|
Add support for EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE
To support ANGLE for Android need a way to tell ANGLE
what library to call when using GL backend.
Bug: angleproject:2418
Test: test-opengl-gl2_copyTexImage
Change-Id: Ie00251b0672a036db4720e1e5b269f66a30a03da
Reviewed-on: https://chromium-review.googlesource.com/1066822
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dcda0e50
|
2018-05-10T12:50:43
|
|
Don't make redundant calls to Display::makeCurrent.
Refactor ValidateMakeCurrent to pass egl object pointers instead of handles.
BUG=angleproject:2464
Change-Id: I98859f56d238a38bd6755f00dce7344635690491
Reviewed-on: https://chromium-review.googlesource.com/1053877
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
1633663b
|
2018-04-24T16:39:15
|
|
Don't test for device loss in SwapBuffers and MakeCurrent.
Simply check if the device has already been lost. Chrome already checks
glGetGraphicsResetStatus after SwapBuffers and MakeCurrent.
BUG=angleproject:1472
BUG=621240
Change-Id: I95fe6306fa0c09191a4b1b93840c2143e069ef53
Reviewed-on: https://chromium-review.googlesource.com/1026527
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0ab41fa5
|
2018-03-14T11:03:30
|
|
Add an EGL extension to disable GL extensions by default.
BUG=angleproject:2404
Change-Id: I2667ddc92d5c9ef6e0ef115f2fdf0c3d3643d945
Reviewed-on: https://chromium-review.googlesource.com/962702
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
99d492c2
|
2018-02-27T15:17:10
|
|
Use packed enums for the texture types and targets, part 2
This completes the refactor by using the packed enums in the gl:: layer
and in the backends.
The packed enum code generation is modified to support explicitly
assigning values to the packed enums so that the TextureTarget cube map
faces are in the correct order and easy to iterate over.
BUG=angleproject:2169
Change-Id: I5903235e684ccf382e92a8a1e10c5c85b4b16a04
Reviewed-on: https://chromium-review.googlesource.com/939994
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f0e89be6
|
2017-11-08T14:00:32
|
|
Use packed enums for the texture types and targets, part 1
In OpenGL there are two enum "sets" used by the API that are very
similar: texture types (or bind point) and texture targets. They only
differ in that texture types have GL_TEXTURE_CUBEMAP and target have
GL_TEXTURE_CUBEMAP_[POSITIVE|NEGATIVE]_[X|Y|Z].
This is a problem because in ANGLE we use GLenum to pass around both
types of data, making it difficult to know which of type and target a
variable is.
In addition these enums are placed somewhat randomly in the space of
OpenGL enums, making it slow to have a mapping from texture types to
some data. Such a mapping is in hot-code with gl::State::mTextures.
This commit stack makes the texture types and target enums be
translated to internal packed enums right at the OpenGL entry point
and used throughout ANGLE to have type safety and performance gains.
This is the first of two commit which does the refactor for all of the
validation and stops inside gl::Context. This was the best place to
split patches without having many conversions from packed enums to GL
enums.
BUG=angleproject:2169
Change-Id: Ib43da7e71c253bd9fe210fb0ec0de61bc286e6d3
Reviewed-on: https://chromium-review.googlesource.com/758835
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
81aa15f1
|
2018-02-22T18:22:52
|
|
Test `EGL_OPENGL_ES3_BIT_KHR` against `rendererType`, not `conformant`.
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1415754
BUG=angleproject:2369
Change-Id: I99cae322eb70ea3920eb296fd590abccded6dab4
Reviewed-on: https://chromium-review.googlesource.com/935149
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3f4b87b4
|
2018-02-16T17:12:19
|
|
Expand the EGLIOSurfaceClientBufferTests
This expands the test to check for validation errors and that multiple
formats of IOSurfaces can be read from / rendered to. It fixes a couple
issues in the implementation of the extension too.
Minor fixes in the EGL_ANGLE_iosurface_client_buffer extension text.
Fix a fragile test that was not setting the texture unit a shader is to
sample from.
BUG=angleproject:1649
Change-Id: Ied2a9bfff95cb3a9a7a59008260899eb2fc55575
Reviewed-on: https://chromium-review.googlesource.com/924477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
41b072b6
|
2018-02-09T10:01:32
|
|
Prepare for -Wimplicit-fallthrough in ANGLE.
Disable the warning for flex-generated output, which contains
lots of intentional fallthrough.
Fixes a bug where GL_SAMPLE_ALPHA_TO_ONE_EXT would fall through
to GL_COVERAGE_MODULATION_CHROMIUM and hence behave like that.
Fixes a bug in the D3D9 state management where invalidating
DIRTY_BIT_POLYGON_OFFSET would also invalidate the stencil bits.
One somewhat common incorrect pattern in ANGLE is nested switch
statements that look like so:
switch (a) {
case a1:
switch (b) {
case b1:
...
break;
}
case a2:
...
}
The assumption here seems to be that the breakk exits the outer
case (here a1), while it in fact only exits the inner switch,
so that we fall through to a2. In most places, I fixed this
by adding an explicit `break` after the inner switch.
This fixes a bug wher GL_PATH_JOIN_STYLE_CHROMIUM would fall through to
GL_PATH_MITER_LIMIT_CHROMIUM in validation (but since the join style
enum is always > 0, this happened to not have an effect in practice).
This also fixes 87 bugs in GetLoadFunctionsMap() where invalid
values would previously return an unrelated function map instead
of the empty load function map.
Bug: chromium:810767
Change-Id: Ib51388c73fbfc229160e2c10f8fb9364cc7c996c
Reviewed-on: https://chromium-review.googlesource.com/911529
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d66e1939
|
2018-01-17T11:36:24
|
|
Allow creating EGL pbuffers from typeless D3D textures
A new extension EGL_ANGLE_d3d_typeless_texture_client_buffer is added
that allows creating EGL pbuffers from typeless D3D textures.
The extension increases the flexibility of the API compared to plain
EGL_ANGLE_D3D_texture_client_buffer. The colorspace for the created
EGL pbuffer can be set by using the EGL_GL_COLORSPACE attribute.
Internally this sets the ANGLE format of the buffer. There are new
ANGLE formats that are used specifically for typeless textures,
separate ones for SRGB and linear views into the D3D textures.
The extension is only supported on the D3D11 backend of ANGLE.
BUG=angleproject:2300
TEST=angle_white_box_tests
Change-Id: I6a6cb873d2cc0dca0b7f18a0f2cd35e7bafcb7d8
Reviewed-on: https://chromium-review.googlesource.com/873917
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2aaa7b4e
|
2018-01-12T17:17:27
|
|
Add GLES1 targets and stub entry points.
* Create a new libGLESv1_CM target.
* Merge all autogenerated extension entry points into one file.
* Allow creation of ES1 contexts.
BUG=angleproject:2306
Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78
Reviewed-on: https://chromium-review.googlesource.com/865718
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
eeda03b6
|
2018-01-05T17:26:29
|
|
EGL: Remove internal enum for NULL driver.
This is now updated in Chrome, so we can remove the last uses.
Bug: angleproject:2159
Change-Id: Ia31e42b8a685756ee70450be19a52248e3efa92f
Reviewed-on: https://chromium-review.googlesource.com/853119
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f3e23295
|
2018-01-04T18:19:21
|
|
EGL: Expose NULL driver device selection.
This makes the device type selection part of the ANGLE platform
extension. We currently support NULL driver selection on all
available back-ends (although on the NULL back-end, it already
has no device type). Optionally we could expose certain features
of this as separate extensions.
This currently also supports the old hidden enum, until we can
update Chrome and consolidate to the new exposed official enum.
Bug: angleproject:2159
Change-Id: I85d0811098e644e8192c207673af9e18ed7c1da2
Reviewed-on: https://chromium-review.googlesource.com/846021
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9db70de8
|
2017-07-04T18:28:42
|
|
Reland: Implement EGL_ANGLE_iosurface_client_buffer
Includes a fix for creating pbuffers with <buftype> EGL_D3D_TEXTURE
with EGL_WIDTH and EGL_HEIGHT attributes.
BUG=angleproject:1649
TBR=geofflang@chromium.org
Change-Id: Id2974b8fab02c3218febfac708b9b034e65cbc53
Reviewed-on: https://chromium-review.googlesource.com/823248
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7f5c3eb7
|
2017-12-12T14:54:17
|
|
Revert "Implement EGL_ANGLE_iosurface_client_buffer"
This reverts commit c7abc08034a30a41748eefc5b628a76d4e2daa8a.
Reason for revert: Might have broken Chromium Win10 composition due to validation changes.
Original change's description:
> Implement EGL_ANGLE_iosurface_client_buffer
>
> BUG=angleproject:1649
>
> Change-Id: I1e72c31d7c9497ad14039a8d3fb97317ab193cb2
> Reviewed-on: https://chromium-review.googlesource.com/559107
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
TBR=geofflang@chromium.org,cwallez@chromium.org
Change-Id: I605b710b6d76056d6276b09822cd6ddca277bfd0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:1649
Reviewed-on: https://chromium-review.googlesource.com/822172
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c7abc080
|
2017-07-04T18:28:42
|
|
Implement EGL_ANGLE_iosurface_client_buffer
BUG=angleproject:1649
Change-Id: I1e72c31d7c9497ad14039a8d3fb97317ab193cb2
Reviewed-on: https://chromium-review.googlesource.com/559107
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
3dddccff
|
2017-11-14T16:44:36
|
|
Support RGB gl-tex-external stream consumers for StreamProducerNV12.
This makes it relatively simple to sample from a D3D11Texture of
arbitrary format.
From: https://bugzilla.mozilla.org/show_bug.cgi?id=1322746
BUG=angleproject:2233
TEST=angle_end2end_tests
Change-Id: I10cd3043b5cb0c5d36dd613467ba6c0ceadf41af
Reviewed-on: https://chromium-review.googlesource.com/758042
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c5de4d29
|
2017-10-31T15:07:53
|
|
KHR_create_context with GLES forbids _KHR reset notification enum.
EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT from
EXT_create_context_robustness must be used with GLES instead.
BUG=angleproject:2213
Change-Id: Icaf3c7550c4eb7cb61c6d4ed37adba7824ca4bc8
Reviewed-on: https://chromium-review.googlesource.com/759122
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b433e872
|
2017-10-05T14:01:47
|
|
Change robust resource init into a context creation attribute.
Enabled support on OpenGL even through the extension is not fully
implemented so that testing with Chromium/Passthrough commmand decoder
is still possible.
BUG=angleproject:1635
Change-Id: Ia417b1779aace1eae19514325701a79cd33f4ef3
Reviewed-on: https://chromium-review.googlesource.com/678479
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
af143fef
|
2017-10-05T13:59:43
|
|
Refactor the eglQueryContext entry point.
BUG=angleproject:1635
Change-Id: Ia6ab5a2a7339d78912d7f871ed62941af1957eb1
Reviewed-on: https://chromium-review.googlesource.com/702856
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
13c0dd46
|
2017-07-04T18:27:01
|
|
Add texture rectangle extension.
This is needed to support binding IOSurfaces to textures on OSX. This
commit adds support in the API and tests, but didn't need to implement
compiler changes as it already supported ARB_texture_rectangle.
Implementation of CHROMIUM_opy_texture for rectangle texture and the
spec are left for follow-up commits.
Change-Id: I45c66be763a9d3f6f619640f9f95f39b05c70867
Reviewed-on: https://chromium-review.googlesource.com/559106
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
31ecbd70
|
2017-07-26T13:01:27
|
|
Refactor eglQuerySurface and eglSurfaceAttrib.
BUG=angleproject:2075
Change-Id: I6911a2a1e665237e1d262c06f3ccf2d84cc09669
Reviewed-on: https://chromium-review.googlesource.com/586860
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
222c517f
|
2017-07-19T16:15:42
|
|
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>
|
|
c43be720
|
2017-07-13T16:22:14
|
|
Implement ANGLE_program_cache_control extensions.
This will give the browsers the ability to control the cache size,
query and populate the contents, and trim cache contents on memory
pressure.
BUG=angleproject:1897
Change-Id: I6edaa7d307b890223db98792d5b074e4a7fdfaa4
Reviewed-on: https://chromium-review.googlesource.com/563606
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
fe54834f
|
2017-06-19T11:13:24
|
|
Proliferate gl::Context.
This enables a few small things: it will enable making the platform
a property of the Display rather than a global. The same goes for the
global logging annotator. Also it ensures all back-end implementations
have access to the GL / EGL state when available.
Also introduces a smart pointer helper class to angleutils for objects
that prefer to be destroyed with a context (gl::Context/egl::Display)
parameter. We were using std::unique_ptr in a few places that would
not work well with these objects.
BUG=angleproject:1156
Change-Id: I59e288a3d6f766ff8a0f4b48ff3a1fbf7489daba
Reviewed-on: https://chromium-review.googlesource.com/529706
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c4d18aac
|
2017-03-09T18:45:02
|
|
Use ErrorStream everywhere
Eliminates one more usage of FormatString and its static initializer.
Add more ErrorStream types
and replace gl::Error and egl::Error with them.
BUG=angleproject:1644
Change-Id: Ib498d0ae4b81a332ec71aed7cf709993b154e6bb
Reviewed-on: https://chromium-review.googlesource.com/505429
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
948bbe51
|
2017-06-01T13:10:42
|
|
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>
|
|
6811a316
|
2017-05-24T16:50:06
|
|
Use GetPlatformDisplay instead of GetPlatformDisplayEXT.
This will allow us to use EGLAttrib and pass pointers as Display
init parameters if necessary.
BUG=angleproject:2042
Change-Id: Ib0f85d71bc9d3dff2db9453012f40303f3c3bd7c
Reviewed-on: https://chromium-review.googlesource.com/513518
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ee218f27
|
2017-03-22T15:39:13
|
|
Re-land eglGetSyncValuesCHROMIUM extension.
This reverts commit 20c97cac2a15144b61ceec7404a9e6249c40f50a
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>
|
|
e08a1d36
|
2017-03-07T17:24:06
|
|
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>
|
|
feb8c686
|
2017-02-13T16:07:35
|
|
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>
|
|
ce02f086
|
2017-02-06T16:46:21
|
|
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>
|
|
c295e516
|
2017-01-27T17:47:50
|
|
Implement EGL_KHR_surfaceless_context
BUG=angleproject:1651
Change-Id: I710df14c2bfa55db2fb9b9715001756d1c1a8f1b
Reviewed-on: https://chromium-review.googlesource.com/434763
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c5a2a172
|
2017-01-13T15:55:07
|
|
Add EGL_EXT_pixel_format_float support, enables float EGL surfaces.
Add floating point EGL configs for the D3D11 backend.
BUG=angleproject:1707
Change-Id: Ic84cd3a0d41e78cc39d0275d83e7695f55673ddf
Reviewed-on: https://chromium-review.googlesource.com/428294
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
65603eb8
|
2017-01-12T16:48:03
|
|
Refactor EGL config entry points to to separate validation.
BUG=angleproject:1707
BUG=angleproject:798
Change-Id: I34fefa9f9bbd42ef05f222c8caf856a22cf206a3
Reviewed-on: https://chromium-review.googlesource.com/428293
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e09bd5d3
|
2016-11-29T16:20:35
|
|
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>
|
|
20c97cac
|
2016-11-04T18:27:56
|
|
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 5d9f5df01ac5a384d9b7cbb49d9f98a76b62c7ad.
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 d258ca045f31eb43ec01b5501c84e9afd8e82cd6.
commit bde8defe53741855bb71fbf27bcb0a91cfafbd01
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 4 17:22:58 2016 -0700
Revert "Disabling EGLSyncControlTest.SyncValuesTest"
This reverts commit a74183613955bd891f56f6a979a5391c16c64138.
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 138ec92f52da7c0fc8e6df08ac4e4e572bbf6b39.
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 af7f301f6ba9e5f31d1511142a936a9ba84169d0.
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>
|
|
077f20ae
|
2016-11-01T10:08:02
|
|
Properly check for debug and robust access context creation flags.
These flags can come from both attributes and bitfield flags.
Also move the robust access check to an UNIMPLEMENTED in Context, dEQP ES 3.1
tests attempt to use this flag and it's convenient to be able test by disabling
UNIMPLEMENTED assertions.
BUG=angleproject:1442
Change-Id: I1641fdb3afee308235351ebd60be680765b16b3b
Reviewed-on: https://chromium-review.googlesource.com/405774
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2018c0ba
|
2015-12-08T11:48:51
|
|
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>
|
|
a284f2ff
|
2015-08-07T16:49:07
|
|
Add stubs for EGL_EXT_swap_buffers_with_damage.
BUG=512090
Change-Id: I9413d6f5c13b9ea59ab9c923dc6c5d157f344166
Reviewed-on: https://chromium-review.googlesource.com/291652
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5d9f5df0
|
2016-09-27T13:28:25
|
|
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>
|
|
f41a7151
|
2016-09-19T15:11:17
|
|
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>
|
|
c287ea6e
|
2016-09-16T14:46:51
|
|
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>
|
|
6230dd54
|
2016-08-23T15:20:03
|
|
Check for OpenGL ES support when creating context
Support for an OpenGL ES version can come either through OpenGL ES,
OpenGL core or available extensions. The context creation should fail
if the requested OpenGL ES version is not supported.
BUG=angleproject:1477
TEST=angle_end2end_tests
Change-Id: I810d004a1bd62f75f162d775d3cf92c4283252a3
Reviewed-on: https://chromium-review.googlesource.com/374338
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9c721c64
|
2016-08-02T14:56:23
|
|
Check for device loss on all applicable EGL entry-points
This will make applications aware of device loss on all EGL calls that
need to have an initialized display. For that purpose, we track the
device loss state at the egl::Display level instead of always querying
the implementation. This is correct because at device-loss at the
display level is non-recoverable. It also deduplicates the tracking
that would have to be done in all the EGL backends.
Changes made in this commit:
- Cached device loss in egl::Display
- Check isDeviceLost in ValidateDisplay
- Changed EGL entry-points testing isDeviceLost to explicitely request
a testDeviceLost
- Add calls to ValidateDisplay to entry-points missing it
- Removed unused virtual qualifiers for some robustness methods
BUG=angleproject:1463
Change-Id: I92bea81f2ecd5423c445cff31557a4d9783557d5
Reviewed-on: https://chromium-review.googlesource.com/365450
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
a3944d4f
|
2016-07-22T22:13:26
|
|
Add gl::Format to represent a texture/rb/surface format.
This has a few advantages: it preserves all the information of the
internal format, such as if it is sized or unsized. It also saves
looking up the format multiple times in the table, which should
improve speed in some cases.
The extra sized-ness information will allow us to perform the
correct validation in CopyTexSubImage calls.
BUG=angleproject:1228
Change-Id: I42954771b0a9a968f5d787b8cf6e0af721791855
Reviewed-on: https://chromium-review.googlesource.com/362626
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1be913cf
|
2016-07-11T17:59:16
|
|
Add support for ES31 context creation
The dEQP test for context creation passes.
SH_WEBGL3_SPEC has been added, but it should be considered whether we
should keep it, remove it or rename it. It was added so that there is
a webgl mapping to es 310 shaders. Check Compiler.cpp. The bison file
has been modified so that some tokens from es3 can be also used in
es31 as well.
A separate macro ES3_1_ONLY is added so that some tokens are limited
only for es 310 shaders.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: I2e5ca227c96046c30dc796ab934f3fda9c533eba
Reviewed-on: https://chromium-review.googlesource.com/360300
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dfde6abf
|
2016-06-09T07:07:18
|
|
Context: Remove mutable gl::State getter.
This will preserve layering - the API layer doesn't mutate the state
directly, it passes the API call through to the Context. Is also
removes the possiblity of any shenanigans of the Validation layer
changing the GL state.
Also, this CL refactors a few validation entry points to take
ValidationContext instead of Context. ValidationContext will be the
correct way to interact with the gl::Context in the Validation code.
Finally, additional refactorings make ContextState a proper class with
private data. This allows the ContextState itself to keep a mutable
pointer to the gl::State, so ValidationContext can modify it if
necessary (and it will be necessary for Framebuffer completeness
caching).
BUG=angleproject:1388
Change-Id: I86ab3561573caa9535c8d1b8aad4ab3d0e7cd470
Reviewed-on: https://chromium-review.googlesource.com/348954
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0f2b1560
|
2016-05-13T16:15:35
|
|
Fix GenerateMipmap when base level or max level are set
According to GLES 3.0.4 section 3.8.10, GenerateMipmap should generate
levels based on the base level, and generate them at most up to the
max level. Levels outside the base/max level range should be unchanged
by GenerateMipmap.
The Texture class is fixed so that the image descs are set only for
the changed mipmap range when GenerateMipmap is called.
The D3D backend is fixed so that mipmap generation is correctly
started from the base level instead of level 0, and making sure that
mipmaps are generated only up to the max level. Generating mipmaps for
array textures is also fixed for cases where the base level depth >=
max(width, height) * 2.
The GL backend is fixed to sync texture state before GenerateMipmap is
called, so that base level and max level are set correctly in the
driver.
The GenerateMipmap entry point is refactored so that it has a separate
validation function and a context function which does the work.
Validation for out-of-range base levels is added.
New tests are added to verify the functionality. One corner case in
the tests fails on NVIDIA GL drivers likely due to a driver bug -
similar rules for GenerateMipmap are found from newer GLES specs and
also OpenGL specs (checked versions 3.3 and 4.4).
BUG=angleproject:596
TEST=angle_end2end_tests
Change-Id: Ifc7b4126281967fc4f6dc4f9452e5b01e39f83d7
Reviewed-on: https://chromium-review.googlesource.com/344514
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
61a692b1
|
2016-05-19T13:29:42
|
|
Try hard to eliminate isError in ValidationEGL.
We were getting a compile warning due to variable shadowing from
redeclaring a local egl::Error. Fix this using the ANGLE_TRY macro.
BUG=angleproject:596
Change-Id: I38954bd1c9f171f264d7ecbf58d634ae721296ad
Reviewed-on: https://chromium-review.googlesource.com/346092
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e8528d89
|
2016-05-16T17:50:52
|
|
Fix determining texture mipmap completeness
The code didn't previously take base level properly into account
when determining how many levels to check when checking for texture
completeness.
The code is refactored so that the "q" value in spec, that is the
maximum mipmap level for determining completeness, can be queried from
TextureState. This value is used now for checking completeness.
This requires moving ImageDescs under TextureState. Functions that
operate on the ImageDesc array are also moved from Texture to
TextureState. TextureState members are also renamed to start with the
"m" prefix and made private.
Also handle levels outside the base/max level range consistently in
eglCreateImageKHR validation. We interpret the spec so that if the
level used for the EGL image is not a part of the texture levels that
affect texture completeness, an error is generated.
BUG=angleproject:596
TEST=angle_end2end_tests
Change-Id: I038ef24aa83e0a6905ca3c0bbada5989eecb00d9
Reviewed-on: https://chromium-review.googlesource.com/344880
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
bda75597
|
2016-04-18T17:25:54
|
|
Finish NV12 support via streams.
The main functionality for NV12 texture support through EGL streams has
been added. Updates to the compiler, texture code, and stream code were
added to support binding to external D3D11 NV12 textures. An end2end test
was also added to test sampling of YUV textures and converting to RGB.
There is also a new script to convert BMP files to an NV12 texture ready
to load into D3D11 for testing purposes.
BUG=angleproject:1332
Change-Id: I39b6ec393ea338e2c843fb911acc1b36cd1158a0
Reviewed-on: https://chromium-review.googlesource.com/339454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
Reviewed-on: https://chromium-review.googlesource.com/341254
Reviewed-by: Ian Ewell <ewell@google.com>
|
|
9670b03e
|
2016-04-29T09:47:47
|
|
Revert "Finish NV12 support via streams."
Broke Windows Clang compilation, see https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Clang%20Builder%20%28dbg%29/builds/3583/steps/compile/logs/stdio and search for TextureStorage11.h
This reverts commit 9b8b359fa3615be7c7492239a48f61103b2e4fcc.
Change-Id: I6e54305eba02b40927a35577594df39e951adb32
Reviewed-on: https://chromium-review.googlesource.com/341430
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
9b8b359f
|
2016-04-18T17:25:54
|
|
Finish NV12 support via streams.
The main functionality for NV12 texture support through EGL streams has
been added. Updates to the compiler, texture code, and stream code were
added to support binding to external D3D11 NV12 textures. An end2end test
was also added to test sampling of YUV textures and converting to RGB.
There is also a new script to convert BMP files to an NV12 texture ready
to load into D3D11 for testing purposes.
BUG=angleproject:1332
Change-Id: I098940e6f25e113dcc4fc8d22ffed4b5a16fd860
Reviewed-on: https://chromium-review.googlesource.com/339454
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
|
|
4a48d9a3
|
2016-03-31T16:46:25
|
|
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>
|
|
54f8746e
|
2016-03-10T13:47:21
|
|
Add initial support for various stream extensions.
Add entry points and validation for various egl stream extensions
including EGL_KHR_stream_consumer_gltexture and
EGL_NV_stream_consumer_gltexture_yuv and NV_EGL_stream_consumer_external.
The extensions functionality is not yet implemented and the extension
strings are thus not exposed yet.
BUG=angleproject:1332
Change-Id: I115d872557db38d8dd94cc367038668406719109
Reviewed-on: https://chromium-review.googlesource.com/332026
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
|
|
ec2c0c5e
|
2016-04-05T13:46:26
|
|
Update internal AttributeMap type to EGLAttrib.
Newer EGL functions use EGLAttrib to pass in attributes, which can be
either 32-bit or 64-bit depending on the system while the old attributes
are passed in as EGLints, which are usually 32-bits. To support these
newer functions, AttributeMap now uses EGLAttrib internally instead of
EGLint, and all the code using AttributeMap has been updated to cast
properly.
BUG=angleproject:1348
Change-Id: I7c4dd9ef23ea1b1741f3a565502fb5e26bf962d7
Reviewed-on: https://chromium-review.googlesource.com/337162
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Ewell <ewell@google.com>
|
|
701b74b0
|
2016-03-02T15:26:39
|
|
Add support for EGL_KHR_stream.
EGL_KHR_stream is now implemented. Since the extension does not come with
any producers or consumers, it does not have much functionality and the
implementation is therefore very simple (validation layers and a new
object to store some attributes). This however add the groundwork to add
the appropriate consumer and producer extensions to stream D3D NV12
textures directly into ANGLE which will significantly improve video
performance on Chromium on D3D-based platforms.
BUG=angleproject:1332
Change-Id: Ie240c73869f5098d1215cc5e27aa5decd06c3ed1
Reviewed-on: https://chromium-review.googlesource.com/330003
Commit-Queue: Ian Ewell <ewell@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
46e6c7a5
|
2016-01-18T14:42:30
|
|
Add stubs for no_error extension.
In some cases ANGLE flushes state for FBOs during validation. For
testing of the state synching code for FBOs, this makes end-to-end
testing impossible.
Solve this by partially implementing a hidden no_error extension,
hidden to the user by not exposing the extension string, but allowing
us to skip validation of some of the FBO methods that require checking
for complete FBOs.
BUG=angleproject:1280
BUG=angleproject:1260
Change-Id: I708f348ccec6697b974c48cd890ec75a703abe21
Reviewed-on: https://chromium-review.googlesource.com/322210
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
49ae88ba
|
2015-12-09T16:44:29
|
|
Implement EGL_ANGLE_direct_composition extension
On D3D11, if dcomp.dll can be loaded then EGL_ANGLE_direct_composition
is exposed. Setting EGL_DIRECT_COMPOSITION_ANGLE as an attrib on a
surface will force it to use DirectComposition to draw to the screen,
possibly saving power.
BUG=524838
Change-Id: I3ea175a97bbca1a3388ffe52fdd1587a2f0c2ce7
Reviewed-on: https://chromium-review.googlesource.com/319214
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: John Bauman <jbauman@chromium.org>
|
|
7f448b58
|
2015-12-16T13:31:57
|
|
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>
|
|
666cb828
|
2016-01-04T17:44:09
|
|
Revert "Add an EGL_ANGLE_surface_orientation extension."
Compilation warnings on clang.
This reverts commit 18cc14b5951842ede85c06dcbc0bba230bcedc45.
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>
|
|
18cc14b5
|
2015-12-16T13:31:57
|
|
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>
|
|
70d0f499
|
2015-12-10T17:45:46
|
|
Implement GL_KHR_debug.
BUG=angleproject:520
Change-Id: I9ced3e7ab1515feddf2ec103c26b2610a45b1784
Reviewed-on: https://chromium-review.googlesource.com/319830
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
66988745
|
2015-12-22T19:39:19
|
|
Revert "Implement GL_KHR_debug."
This reverts commit 6c521b7a70a53b1c9f7762e53e34b5a8146b0f7b.
Change-Id: I6ff981198e31f34d3e405edea6277ee75516d6ee
Reviewed-on: https://chromium-review.googlesource.com/319820
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6c521b7a
|
2015-12-10T17:45:46
|
|
Implement GL_KHR_debug.
BUG=angleproject:520
Change-Id: I78d14cc8c94f5cef58604220f0ca847473b25bf8
Reviewed-on: https://chromium-review.googlesource.com/317820
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
fe3e46ab
|
2015-11-24T19:13:55
|
|
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>
|
|
fc1a44a1
|
2015-12-02T12:37:10
|
|
Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]""
This reverts commit dd5c5b79333fdde7858a77d39e91cc3d30b74c9e.
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>
|
|
dd5c5b79
|
2015-12-02T08:41:28
|
|
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 4029ad42d5ffe94a0a744532ab3577b982f847b8.
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>
|
|
4029ad42
|
2015-10-29T10:14:47
|
|
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>
|
|
4d61f7ed
|
2015-08-12T10:56:50
|
|
Reland Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
Additional warnings found with more testing and added C4267 warning disable only for angle_libpng
BUG=angleproject:1120
Change-Id: Ic403dcff5a8018056fa51a8c408e64207f3362eb
Reviewed-on: https://chromium-review.googlesource.com/293028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
b195643c
|
2015-08-12T17:35:20
|
|
Revert "Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'"
Seems to have quite a few warnings in 64-bit on my machine.
BUG=angleproject:1120
This reverts commit c5cf9bc47d0ee028adbbf9e9f94ca567eec601dc.
Change-Id: I86768b900aeba52e7a2242d9ae8949f93f1a5ba9
Reviewed-on: https://chromium-review.googlesource.com/293280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
c5cf9bc4
|
2015-08-06T10:46:48
|
|
Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
BUG=angleproject:1120
Change-Id: I01ef10bea7f487c2b394d030c76628f38d2ea645
Reviewed-on: https://chromium-review.googlesource.com/292780
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a840617a
|
2015-07-21T16:53:39
|
|
Implement the egl and gl layers of EGL Image.
Add end2end tests and unittests.
BUG=angleproject:970
Change-Id: Ie8306971730a793f08dfd09ead1bfd6ff3e4623d
Reviewed-on: https://chromium-review.googlesource.com/291260
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
4274f7d2
|
2015-08-05T23:07:38
|
|
Revert "Implement the egl and gl layers of EGL Image."
This reverts commit 22a4f38c2ca9ca430b5f976fc7fc816d88918eba.
Change-Id: I07acbfe28d11675236de2ea7f6b050c25f80579a
Reviewed-on: https://chromium-review.googlesource.com/290960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
22a4f38c
|
2015-07-21T16:53:39
|
|
Implement the egl and gl layers of EGL Image.
Add end2end tests and unittests.
BUG=angleproject:970
Change-Id: I13fc501b24c3f11bfedc810c1ff80fcf1318877c
Reviewed-on: https://chromium-review.googlesource.com/287343
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
3cf11ff4
|
2015-07-21T16:38:12
|
|
Make sure the given display is a valid pointer.
EGL functions are supposed to return EGL_BAD_DISPLAY when the display is
an invalid pointer.
Since there is very rarely more than one simultaneous display, iterating
through the map is not costly.
BUG=angleproject:970
Change-Id: I3d9b842a49c5c99f9b8fad3d7ef53f9f5d3057ba
Reviewed-on: https://chromium-review.googlesource.com/287342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
dcab33be
|
2015-07-21T13:03:16
|
|
Add stubs for EGL image entry points and validation.
BUG=angleproject:970
Change-Id: Ic3b9f9f60146920571e0e5f00fac2273c35fff2f
Reviewed-on: https://chromium-review.googlesource.com/287162
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
e3b10e8d
|
2015-05-20T11:06:25
|
|
Make eglMakeCurrent validate for config compatibility
See section 2.2 of the EGL 1.5 specification.
BUG=angleproject:892
Change-Id: I2a43260e53cb045b2e06b0e50915e228cec96f33
Reviewed-on: https://chromium-review.googlesource.com/272370
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
9d3ae5fe
|
2015-03-18T17:20:33
|
|
Use the Surface type for validation and fix incorrect window validation.
The window passed to surface creation should not be used by any surface
owned by any display, not just the current one. Store a global window
surface list for validation.
BUG=angleproject:795
Change-Id: I2314979f2f27848b21fcb00676194d7671d1db68
Reviewed-on: https://chromium-review.googlesource.com/260942
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
d4475816
|
2015-03-18T10:53:05
|
|
Always use static_assert for compile-time assertions and remove META_ASSERT.
BUG=468139
Change-Id: I696ef307f2faa54bb72df66784bc79a055499987
Reviewed-on: https://chromium-review.googlesource.com/260776
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f81b6a15
|
2015-01-19T16:51:55
|
|
Move eglCreatePbuffer* validation into validationEGL.
BUG=angle:658
Change-Id: I25d1be1ef86f82892186b08c9a8ff0133d520ac6
Reviewed-on: https://chromium-review.googlesource.com/242037
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0eef0826
|
2015-01-19T16:22:40
|
|
Move eglCreateWindowSurface validation into validationEGL.
BUG=angle:658
Change-Id: Iaa7e6033fb323c1089907c9ed753746729887061
Reviewed-on: https://chromium-review.googlesource.com/242036
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|