This path needs to a Chrome change before it can change.
BUG=angleproject:892
Change-Id: I549737383b9720a2e7d83ee5e3145d71716f04cb
Reviewed-on: https://chromium-review.googlesource.com/270457
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Broke win build
ninja: error: '../../gpu/egl_tests/EGLQueryContextTest.cpp', needed by 'obj/gpu/egl_tests/angle_end2end_tests.EGLQueryContextTest.obj', missing and no known rule to make it
This reverts commit 887dd2f196.
Change-Id: I2ceb430010628c2aa7cb242eb2bf49406d8d87db
Reviewed-on: https://chromium-review.googlesource.com/270471
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Zhenyao Mo <zmo@chromium.org>
This makes it run correctly on Linux where the only platform available
is OpenGL.
BUG=angleproject:892
Change-Id: I3d72163b49b35daba702ebb5b48d010761c7fb6d
Reviewed-on: https://chromium-review.googlesource.com/270262
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Build errors in Chromium:
ninja: Entering directory `C:\b\build\slave\GPU_Win_Builder\build\src\out\Release'
ninja: error: '../../gpu/egl_tests/EGLQueryContextTest.cpp', needed by 'obj/gpu/egl_tests/angle_end2end_tests.EGLQueryContextTest.obj', missing and no known rule to make it
This reverts commit be39156b10.
Change-Id: I931295f16cad096e94baac9811ea2396a4182848
Reviewed-on: https://chromium-review.googlesource.com/270347
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Also introduce a test_utils directory that contains helpers used for all
types of tests.
BUG=angleproject:892
Change-Id: I9e1bff895020ffd3a109162283971a290a1098bd
Reviewed-on: https://chromium-review.googlesource.com/270198
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
This change adds necessary mechanism to support constant folding of
built-ins that take more than one parameter and also adds constant
folding support for min, max and clamp built-ins.
BUG=angleproject:913
TESTS=dEQP tests
(126 tests started passing with this change)
dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.min_*
dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.max_*
dEQP-GLES3.functional.shaders.constant_expressions.builtin_functions.common.clamp_*
Change-Id: I5d3e96ef2062116cbf164a7a42cba096bd4d5389
Reviewed-on: https://chromium-review.googlesource.com/269317
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
With this most of the end2end tests pass on Linux
BUG=angleproject:997
BUG=angleproject:982
Change-Id: I6aab7d407f260ee24c5c59bf4d6055e875d3a6d6
Reviewed-on: https://chromium-review.googlesource.com/270184
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Also sort enums in getQualifierString in the same order as in the enum
definition.
BUG=angleproject:999
TEST=WebGL conformance tests with --gl-shader-interm-output
Change-Id: I31aa2e4b2405a090f560bf4140d9ee66271e526c
Reviewed-on: https://chromium-review.googlesource.com/269941
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Two-thirds of them run and work well.
BUG=angleproject:892
Change-Id: I401a7ef4fd055eda7276bd34dcf0fc6ae0deff13
Reviewed-on: https://chromium-review.googlesource.com/270124
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Texture serials were not used in any place that pointers could not be used
and Texture::INCOMPLETE_TEXTURE_ID was only referenced by RendererD3D.
This was the last place that serials are used in the gl layer.
BUG=angleproject:681
Change-Id: Iad24321fba57db8ade3c9eb8f04cc20e98ded1b0
Reviewed-on: https://chromium-review.googlesource.com/263659
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
This also moves us to the Chromium googletest mirror. It may cause
conflicts with developer setups if they have the folder open when
they try to gclient sync.
BUG=angleproject:997
Change-Id: I94a629c50cb6ea6fc0020e3ec9ee93b7088d964b
Reviewed-on: https://chromium-review.googlesource.com/270108
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Update ProgramGL to track which the current values of sampler uniforms so
that only the currently applied texture units have to be bound for the
draw call.
BUG=angleproject:882
Change-Id: I280aa106172b13a5fbb31cdefba27b6691c0a0e4
Reviewed-on: https://chromium-review.googlesource.com/264803
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
This should fix our non-standard template use, which causes compile
errors for the tests on GCC/Clang.
BUG=angleproject:997
Change-Id: Id1bb15231eda445f37e53a5b33d4684ec6618d8e
Reviewed-on: https://chromium-review.googlesource.com/269858
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
* Don't re-create the native GL program every link, some program state should
persist between re-linking such as bound attribute locations.
* Forward glBindAttribLocation calls to the ProgramImpl, fixes some chromium
rendering issues because chromium always binds attribute locations,
sometimes with gaps.
* Query the real attrib location before inserting it into the list of attribs.
It was unsafe to rely on the attrib having the same location as its index
into the active attributes.
BUG=angleproject:882
Change-Id: If14b4c4c2f5ebcdaa4f7c5a890b9519d6d4e6e43
Reviewed-on: https://chromium-review.googlesource.com/269991
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
It was using lstat to get the size of /proc/self/exe but
it always returns 0, so we just use a big buffer on the
stack instead.
BUG=angleproject:892
Change-Id: I6d88efeb4ec5de7a78cb3668e3d78520203ad1d5
Reviewed-on: https://chromium-review.googlesource.com/269990
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Also add a helper class to keep the previous behaviour of
automatically appending a newline after every new message.
BUG=angleproject:992
Change-Id: I0ff5d2846175cf19de7a6af295af24a92451456f
Reviewed-on: https://chromium-review.googlesource.com/268744
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This should help WebKit avoid needing to apply a local patch.
Also clean up the style in this file a bit.
BUG=angleproject:307,angleproject:992
Change-Id: I41ecf7cbfa20b469b3731215ef28cb36253ba186
Reviewed-on: https://chromium-review.googlesource.com/269849
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This covers 'pow-of-small-constant-in-user-defined-function' from
the WebGL CTS. Leave disabled until we have a proper fix.
BUG=angleproject:851
Change-Id: I41a4ad9354e32bb2d48894d75676a9dfe226e9d8
Reviewed-on: https://chromium-review.googlesource.com/269747
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Depends on patch which is causing a failure in EGLSurfaceTest.MakeCurrentTwice
BUG=None
This reverts commit 0e7ee49897.
Change-Id: I7d11900c784bdb2a8963a824e89019b39a184cbe
Reviewed-on: https://chromium-review.googlesource.com/269856
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Missing one character for the log length.
BUG=angleproject:307,angleproject:992
This reverts commit 8ae74e11d2.
Change-Id: Ifb3658c324cb0aa56ee31352a0fc0e6759979f7b
Reviewed-on: https://chromium-review.googlesource.com/269848
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
The parser recognizes ESSL3 invariant variable declaration syntax and
marks the variables as invariant.
In ESSL3, invariant out variables can be linked to non-invariant
in variables, so linking checks should now be different depending on
shading language version. A shading language version dependent varying
matching check is added to the translator API to facilitate this.
Tested by deqp/data/gles3/shaders/qualification_order.html after patching
Chrome to use the new linking check API.
A previous revision of this change that broke API compatibility was
reverted since it broke Chromium FYI bots. This revision keeps deprecated
API functionality around for now so that changes can be rolled
step-by-step to Chromium without breakage.
TEST=WebGL 2 conformance tests, angle_unittests
BUG=angleproject:987
Change-Id: Iecb64e3afd23e267ba999bc17f44390affcdfc13
Reviewed-on: https://chromium-review.googlesource.com/269940
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
The parser recognizes ESSL3 invariant variable declaration syntax and
marks the variables as invariant.
In ESSL3, invariant out variables can be linked to non-invariant
in variables, so linking checks should now be different depending on
shading language version. The varying matching check in the translator
API is changed to be shading language version dependent to facilitate
this.
Tested by deqp/data/gles3/shaders/qualification_order.html after patching
Chrome to use the new linking check API.
TEST=WebGL 2 conformance tests, angle_unittests
BUG=angleproject:987
Change-Id: I3982feff7380c4dfc647940ee03a020692dd0c59
Reviewed-on: https://chromium-review.googlesource.com/267663
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Instead of exposing the index range cache, add a more generic method that
allows the buffers to handle their own caching of index ranges.
BufferImpl::getData can be hard to implement for BufferGL because there
isn't a way to tell the buffer to unmap and glGetBufferSubData can be very
expensive, requiring an extra copy of the data.
BUG=angleproject:881
Change-Id: Idec645219056132e0d72a410fbe7b971fa02c9e9
Reviewed-on: https://chromium-review.googlesource.com/261892
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Geoff Lang <geofflang@chromium.org>