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

4271 Коммитов

Автор SHA1 Сообщение Дата
Corentin Wallez 43b0c221cc X11Window: implement event handling and modifiers
BUG=angleproject:892

Change-Id: I65f251abdd28b273e2d3d574825f20bba8bb2532
Reviewed-on: https://chromium-review.googlesource.com/270452
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-12 17:43:05 +00:00
Corentin Wallez ac3ab8828f Temporarily move back ANGLETest in end2end_tests
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>
2015-05-12 17:39:11 +00:00
Zhenyao Mo c4738880d4 Revert "Make EGLQueryContextTest use ANGLE_INSTANTIATE_TEST"
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>
2015-05-12 17:07:56 +00:00
Corentin Wallez 887dd2f196 Make EGLQueryContextTest use ANGLE_INSTANTIATE_TEST
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>
2015-05-12 16:31:01 +00:00
Corentin Wallez 973402fd08 Compile end2end tests on Linux
BUG=angleproject:892

Change-Id: Id4a9ddc35ae9600080e743c77476d36743a3e646
Reviewed-on: https://chromium-review.googlesource.com/270199
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/270412
2015-05-12 16:30:21 +00:00
Jamie Madill e45b7458f4 Revert "Compile end2end tests on Linux"
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>
2015-05-12 15:46:50 +00:00
Corentin Wallez 938f1ca341 OSWindow: add optional debugging of events received
BUG=angleproject:830

Change-Id: Icd854ee152f15ec1de4293b5ed2ed49cb1a5fc2b
Reviewed-on: https://chromium-review.googlesource.com/270451
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-12 15:20:48 +00:00
Corentin Wallez 0d3afab874 Implement Pbuffers for the GLX EGL implementation
BUG=angleproject:892

Change-Id: I32b9bbb35d99621f16a055fb544ec0691dfcd5a0
Reviewed-on: https://chromium-review.googlesource.com/270261
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-12 15:16:07 +00:00
Corentin Wallez be39156b10 Compile end2end tests on Linux
BUG=angleproject:892

Change-Id: If3903f1801f4999bebaaaed2625346bfbec2243d
Reviewed-on: https://chromium-review.googlesource.com/270199
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-12 15:15:34 +00:00
Corentin Wallez 9cb9583e46 Move end2end and standalone tests to gl_tests and egl_tests
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>
2015-05-12 15:07:33 +00:00
Arun Patole 1137a2a6b4 Add constant folding support for min,max and clamp
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>
2015-05-12 09:04:59 +00:00
Corentin Wallez 4298123b79 DisplayGLX: handle EGL_DEFAULT_DISPLAY for ANGLE_platform_angle
BUG=angleproject:892

Change-Id: I681e2b92ac2e8b853c7d1271a5518c4b77a67929
Reviewed-on: https://chromium-review.googlesource.com/270260
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-11 19:46:54 +00:00
Geoff Lang c337e7ab93 Convert floats to integers using doubles and 64-bit integers.
Avoids some edge cases that overflow or round incorrectly.

Fixes:
dEQP-GLES2.functional.state_query.floats.depth_range_getinteger
dEQP-GLES2.functional.state_query.floats.color_clear_value_getinteger
dEQP-GLES2.functional.state_query.floats.depth_clear_value_getinteger

Change-Id: Ib2c7f422dac76094c7ff6c5f8aef3fd392f68e80
Reviewed-on: https://chromium-review.googlesource.com/268510
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-11 16:59:39 +00:00
Corentin Wallez eac646338c Add a basic GLX EGL implementation
BUG=angleproject:892

Change-Id: Ife9955a457d4a6fb3adce17757ccb0de7d0dd274
Reviewed-on: https://chromium-review.googlesource.com/269413
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-11 16:35:56 +00:00
Corentin Wallez f229cb9bf6 Add a FunctionsGLX class to dynamically load the GLX entry points
BUG=angleproject:892

Change-Id: I516b7d859100cb065871de8e328585a9ca817499
Reviewed-on: https://chromium-review.googlesource.com/270123
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-11 16:34:59 +00:00
Corentin Wallez 6fce6df7e6 Filter out unsupported platforms for value parameterized tests
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>
2015-05-11 15:50:26 +00:00
Corentin Wallez 12fe4dc8ce Fix pointer to int conversion warning in EGLWindow.cpp
BUG=angleproject:892

Change-Id: Ic40f29c811d18efea0e081c269ca43d0170488a4
Reviewed-on: https://chromium-review.googlesource.com/269122
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/270125
2015-05-11 14:59:38 +00:00
Olli Etuaho 4f3b8f6381 Add missing EvqPointCoord to getQualifierString
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>
2015-05-11 14:52:37 +00:00
Corentin Wallez 12a8e86685 Make all the samples compile under Linux
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>
2015-05-11 14:51:09 +00:00
Geoff Lang eaa759c46f Remove Texture serials and Texture::INCOMPLETE_TEXTURE_ID.
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>
2015-05-11 14:43:20 +00:00
Geoff Lang c2520564c3 Move unsupported depth stencil check to FramebufferD3D.
BUG=angleproject:885

Change-Id: I0abc674e365d2b5b65d23e2abf741a02a1146cdd
Reviewed-on: https://chromium-review.googlesource.com/268311
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-11 14:23:31 +00:00
Jamie Madill 440e5d4f9d Roll googletest.
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>
2015-05-11 14:05:15 +00:00
Geoff Lang f51bc7953c Optimize Texture binding by only applying referenced textures.
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>
2015-05-11 14:03:02 +00:00
Corentin Wallez 9477dc94c0 Add GLX EGL implementation stubs
BUG=angleproject:892

Change-Id: I1ef1bd0ce60f4585e473f9750c748a1b41c09da2
Reviewed-on: https://chromium-review.googlesource.com/269741
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>
2015-05-08 21:15:39 +00:00
Jamie Madill d50081579a Roll dEQP.
BUG=angleproject:998

Change-Id: I35067bd5ed2919f918a1f1b93bef0feb934c838d
Reviewed-on: https://chromium-review.googlesource.com/270120
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-05-08 19:49:18 +00:00
Jamie Madill fa05f6076e Use value-paramaterized tests instead of by type.
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>
2015-05-08 19:12:52 +00:00
Geoff Lang 0ca53786c6 Fix issues with ProgramGL.
* 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>
2015-05-08 17:54:03 +00:00
Corentin Wallez 98e7d0710a Use a D3D11 renderer by default, when available.
Also update SampleApplication to request the default
renderer instead of explicitely asking for d3d11

BUG=angleproject:892

Change-Id: I70c431b3c1ba78c3ce7844d7f276cc19ac17d7f5
Reviewed-on: https://chromium-review.googlesource.com/269999
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-08 17:51:24 +00:00
Corentin Wallez 2cf30bd09c Fix GetExecutablePath on Linux
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>
2015-05-08 17:14:02 +00:00
Geoff Lang 0e201cb7df Load the blit framebuffer extension entry points.
Change-Id: I654f944aea25661d3fb1e2381b93780771300f32
Reviewed-on: https://chromium-review.googlesource.com/269144
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-07 18:19:44 +00:00
Corentin Wallez 6db6e0ae81 eglGetPlatformDisplayEXT: validate device types are set only on d3d
BUG=angleproject:892

Change-Id: I0fa089f299abaab406384a05b096de19f04f3a5e
Reviewed-on: https://chromium-review.googlesource.com/269771
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/269829
2015-05-07 17:50:08 +00:00
Corentin Wallez 06394f667b EGLSurfaceTest: specify the device type only on d3d platform
BUG=angleproject:892

Change-Id: If09cf30122d97590f07447147e6d54c2e4157f9e
Reviewed-on: https://chromium-review.googlesource.com/269828
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 17:50:02 +00:00
Corentin Wallez bf9e40509a EGLWindow: specify the device type only on d3d platform
BUG=angleproject:892

Change-Id: I0406e26910f5a012ccb9e533af18e831522161b1
Reviewed-on: https://chromium-review.googlesource.com/269666
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/269827
2015-05-07 17:49:55 +00:00
Corentin Wallez ec0b13622a Make util/win32 follow ANGLE conventions better
BUG=angleproject:892

Change-Id: I1ad366e16b135649fe1b0351081f9971db84df50
Reviewed-on: https://chromium-review.googlesource.com/269665
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 17:21:40 +00:00
Jamie Madill f611316bae Use stream operators for appending to InfoLog.
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>
2015-05-07 17:16:52 +00:00
Jamie Madill 71c3b2c7c6 Use a std::stringstream for Program's InfoLog.
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>
2015-05-07 17:16:43 +00:00
Jamie Madill 4052dfc8be Add test for HLSL "pow" constant folding bug.
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>
2015-05-07 17:16:26 +00:00
Jamie Madill 4ea209f129 Revert "EGLWindow: specify the device type only on d3d platform"
Causing failures in EGLSurfaceTest.MakeCurrentTwice on Windows

BUG=angleproject:892

This reverts commit 118e7195fd.

Change-Id: Ifbb17d1c9bc0390abadbfb8f78cf14dbf1bb8e83
Reviewed-on: https://chromium-review.googlesource.com/269950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-05-07 15:32:38 +00:00
Jamie Madill 4c825e687f Revert "eglGetPlatformDisplayEXT: validate device types are set only on d3d"
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>
2015-05-07 15:31:58 +00:00
Corentin Wallez 118e7195fd EGLWindow: specify the device type only on d3d platform
BUG=angleproject:892

Change-Id: I2dda3a8d15e58d15a401258a5a64c5783ea1a132
Reviewed-on: https://chromium-review.googlesource.com/269666
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 15:01:35 +00:00
Corentin Wallez fe2f3d634d Add a basic support for Linux for utils/
* Timer and path utils are done.
* Window only implements initialize and setVisible

BUG=angleproject:892

Change-Id: I3f49b68ef9ec5be324b25e211199bac2953ae11e
Reviewed-on: https://chromium-review.googlesource.com/269520
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 15:01:04 +00:00
Corentin Wallez 0e7ee49897 eglGetPlatformDisplayEXT: validate device types are set only on d3d
Change-Id: I15f0651fbe90b3572ea6b62f804492fbe100e591
Reviewed-on: https://chromium-review.googlesource.com/269771
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 14:55:02 +00:00
Jamie Madill 3c74e772eb Revert "Use a std::stringstream for Program's InfoLog."
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>
2015-05-07 14:54:12 +00:00
Geoff Lang 27464aa910 Sync the generic vertex attribute data.
BUG=angleproject:883

Change-Id: If5616bf24c1ac5477ae80cf1d25efa70b62edea1
Reviewed-on: https://chromium-review.googlesource.com/268750
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-07 14:47:59 +00:00
Geoff Lang 1eb708e1e6 Clear cached state when deleting GL objects.
Change-Id: I84eac9b3796858e5e19e26851ad83baa1f9b6af2
Reviewed-on: https://chromium-review.googlesource.com/269142
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-07 14:47:16 +00:00
Geoff Lang 716cc88e14 Always sync writemasks and front face.
BUG=angleproject:883

Change-Id: Ie1d544c8f30472238d859d8fd7f553a73b066802
Reviewed-on: https://chromium-review.googlesource.com/269145
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-07 14:45:54 +00:00
Olli Etuaho 37ad4744bb Add support for parsing ESSL3 invariant qualifiers
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>
2015-05-07 14:34:41 +00:00
Jamie Madill 9e64edce11 Revert "Add support for parsing ESSL3 invariant qualifiers"
Build breaks in GPU FYI bots.

BUG=angleproject:987

This reverts commit 4008879357.

Change-Id: Ia88ad302c403c65516c050eb7741316b5097bcfb
Reviewed-on: https://chromium-review.googlesource.com/269847
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-05-07 14:08:23 +00:00
Olli Etuaho 4008879357 Add support for parsing ESSL3 invariant qualifiers
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>
2015-05-07 13:37:22 +00:00
Geoff Lang 520c4ae229 Add a Buffer::getIndexRange function.
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>
2015-05-06 19:04:12 +00:00