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

6353 Коммитов

Автор SHA1 Сообщение Дата
He Yunchao 29ab9ff8f6 translator: fix a typo in comment
Change-Id: Ibfd39bc478c4e9ddf40138ccf6bd37f247f83632
Reviewed-on: https://chromium-review.googlesource.com/413036
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-22 15:52:26 +00:00
Geoff Lang 3a7cdb8282 "Implement" more NULL backend objects.
BUG=angleproject:1468

Change-Id: I3c42872ba13dbf346722bc34b9415a4e79c9f82c
Reviewed-on: https://chromium-review.googlesource.com/413328
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-11-22 15:34:07 +00:00
Geoff Lang a96afb68bf Initialize the default aliased line width ranges.
BUG=angleproject:1468

Change-Id: I1908821fc560bed0cb5427a23739d11b17fea227
Reviewed-on: https://chromium-review.googlesource.com/413327
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-22 15:24:04 +00:00
Geoff Lang 55482a118a Don't require npot extensions in ES3 contexts.
BUG=angleproject:1468

Change-Id: I106f765e59b18de0659c85f31ce3fbac8016de95
Reviewed-on: https://chromium-review.googlesource.com/413329
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-22 15:18:27 +00:00
Jamie Madill 907e4a6199 Suppress Win/AMD/D3D11 dEQP-GLES3 failures.
BUG=angleproject:1633

Change-Id: If8273747ade1cd3530b96006f2445e1dce0ccf00
Reviewed-on: https://chromium-review.googlesource.com/413231
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-22 15:02:49 +00:00
Olli Etuaho 78b0c91daf Fix infinite recursion in macro expansion
BUG=angleproject:1600
TEST=angle_unittests

Change-Id: I72bf81ec060f36255a0f13b132a4fd69b89672ff
Reviewed-on: https://chromium-review.googlesource.com/412744
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-22 13:39:46 +00:00
Geoff Lang 4dc3af09dd Set the right size on the uniform bindings array.
BUG=angleproject:1468

Change-Id: I3d75a03fcf624fe7f9510e76edc4a8298d8c5a72
Reviewed-on: https://chromium-review.googlesource.com/412860
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-11-21 21:32:50 +00:00
Geoff Lang 437cca5a00 Add support for CHROMIUM_copy_texture with D3D9.
BUG=angleproject:1356

Change-Id: If63779e39609083deb6bb72dc8c29eaaa90c698c
Reviewed-on: https://chromium-review.googlesource.com/339813
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-21 21:31:16 +00:00
Geoff Lang 76cdbd5104 Add basic initialization code for ContextNULL so it can run some tests.
BUG=angleproject:1468

Change-Id: I8dfc9a3c71e5638de22bc9d9a5dadfb495ef23a7
Reviewed-on: https://chromium-review.googlesource.com/388846
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-11-21 16:28:54 +00:00
Corentin Wallez e85587ac5a BlitGL: add a ScopedGLState to separate our state from the app's
BUG=angleproject:1356

Change-Id: I19ec4efa37d142ac7370815b078f4ba79caa0bea
Reviewed-on: https://chromium-review.googlesource.com/412451
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-18 22:15:14 +00:00
Geoff Lang 2291c93571 "Implement" FramebufferNULL::getImplementationColorRead*
BUG=angleproject:1468

Change-Id: I2727602e66a4f4f2ca166948eebd9c975e315fe7
Reviewed-on: https://chromium-review.googlesource.com/412861
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-11-18 21:53:55 +00:00
Corentin Wallez 1b896c6293 translator: remove code related to for-loop unrolling
For loop unrolling is not used and causes the translator fuzzer to find
a hang when unrolling tons of nested loops (duh).
Also remove MMap.h which was unused.

This is essentially a revert of https://codereview.appspot.com/4331048

BUG=chromium:665255

Change-Id: Id6940f7e306d4ed53bc992f751e9ffe733190f17
Reviewed-on: https://chromium-review.googlesource.com/412023
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-18 21:53:38 +00:00
Geoff Lang 5437006c8c "Implement" TransformFeedbackNULL.
BUG=angleproject:1468

Change-Id: I1452b7d0f98d2e936ad16350a7ef5b01c45e76e9
Reviewed-on: https://chromium-review.googlesource.com/412862
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-18 21:53:35 +00:00
Geoff Lang cec2b7f89b Allow the null backend to be used by dEQP.
BUG=angleproject:1468

Change-Id: Ife6f0001b9a6ae06c98385df47fc3887036f3a36
Reviewed-on: https://chromium-review.googlesource.com/412863
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-11-18 21:02:43 +00:00
Jamie Madill 44f264828a Framebuffer: Fix getDepthStencilAttachment check.
The check should be using the newer operator== to check if attachments
are the same - the id() method will hit an UNREACHABLE if it's called
on a Surface attachment.

I noticed this when using this method in the Vulkan RenderPass
implementation.

BUG=angleproject:1583

Change-Id: I387b35805893d04003b22a1c7c9c12fc41c726ce
Reviewed-on: https://chromium-review.googlesource.com/412801
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-18 20:57:35 +00:00
Jamie Madill 861ebb3bb8 Use ShaderVars instead of ShaderLang in headers.
We only need the typed variable information in our header files.
The entry point and other enum info can be encapsulated better
in the cpp files that call through to the translator. The only
tricky one is the compile options, which we return from our
implementation - put the typedef for these in the ShaderVars
header to fix this.

This should partially work around the problem of shaderlang
for Vulkan and ANGLE's translator (also ShaderLang) using some
identifiers with the same names.

BUG=angleproject:1576

Change-Id: I43c530486498c210796b9e197a6780bf2f7b3afb
Reviewed-on: https://chromium-review.googlesource.com/412423
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-18 17:24:16 +00:00
Olli Etuaho 99bd5f40f3 Fix GLSL float parsing corner cases
This fixes parsing floats that are out-of-range, and floats that have
more digits than the standard library float parsing functions can
handle. In these cases, we now fall back to a custom implementation of
float parsing. The custom parsing path can correctly process floats
with up to hundreds of millions of digits in their mantissa part.

Rounding behavior of the custom float parser may not be entirely
consistent with the standard parser, but the error should be at most
a few ULP. This can be considered acceptable since floating point
operations are not expected to be exact in GLSL in general. Settling
for lower accuracy also enables the parser to run in constant memory,
instead of having to store all the significant digits of the decimal
mantissa being parsed.

BUG=angleproject:1613
TEST=angle_unittests

Change-Id: I04a5d9ae5aaca48ef14b79cca5b997078614eb1c
Reviewed-on: https://chromium-review.googlesource.com/412082
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-18 17:24:12 +00:00
Corentin Wallez 3377f51e9c TextureGL: track the currently applied state.
Use it to implement lazy state setting methods for texture filters and
swizzle that will be used in subsequent workarounds.

BUG=angleproject:1356

Change-Id: Ia58267c4f125262cf57fbd98438a6d8eb8a04b33
Reviewed-on: https://chromium-review.googlesource.com/412404
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-18 16:34:09 +00:00
Qiankun Miao 41f9f6732f Remove invariant qualifier for ESSL 3.0 on AMD driver
AMD driver in Linux requires invariant qualifier to match between
shaders even for GLSL >= 4.2. This conflicts with ESSL 3.0 which
disallows invariant qualifier in fragment shader. Remove invariant
qualifier in vertex shader to workaround AMD driver bug.

BUG=chromium:639760
TEST=webgl2_conformance

Change-Id: Id5adf7e7032105486df90a1f200471ea81ee5c36
Reviewed-on: https://chromium-review.googlesource.com/411917
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
2016-11-17 23:19:51 +00:00
Jamie Madill edc89d62aa Fix missing file license in HLSLCompiler.h.
BUG=angleproject:1576

Change-Id: I9fdd7a27944880383df53aa8468884ea2e99e670
Reviewed-on: https://chromium-review.googlesource.com/412422
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-17 23:09:34 +00:00
Jamie Madill eb979bfd37 Program: Small cleanup to linkAttributes.
The comment here was incorrect, and the signature passed some
redundant arguments.

Noticed this when I was looking at the code for Vulkan/glslang.

BUG=angleproject:1576

Change-Id: Ie9e7eb7cbe4b65503901b2550e95cd818b7c28c0
Reviewed-on: https://chromium-review.googlesource.com/412324
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-17 21:39:22 +00:00
Jamie Madill 1079bb2e7b Fix up perf test runner script.
The missing check was a bit buggy, and the paths were not updated
to the new 'gyp' folder instead of 'build'.

BUG=angleproject:1569

Change-Id: I10408252851e90b79e306c8aea175ebe6a931b61
Reviewed-on: https://chromium-review.googlesource.com/412320
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-17 18:05:34 +00:00
Corentin Wallez dd9e639693 BlitGL: handle copyTexImage3D for the luma workaround
BUG=angleproject:1492

Change-Id: Ica9a7c72f0e463850dd93f4a15d9b572fb10a1f6
Reviewed-on: https://chromium-review.googlesource.com/412054
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-17 15:16:49 +00:00
Jamie Madill 555009cefe Buffer11: Intel workaround for constant buffers.
This workaround avoids using inter-buffer copies involving constant
buffers. Instead of copying from a staging storage to a constant
buffer (or vice-versa), the Buffer memory managment will keep the
system memory storage around permanently. This uses a bit more memory
but should fix all the problematic cases where we have the canonical
version of the buffer data inside GPU memory.

BUG=chromium:593024

Change-Id: I2ce0cfd22784aa43e819ce2df2d0da540d0a0cfe
Reviewed-on: https://chromium-review.googlesource.com/412140
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-16 22:04:18 +00:00
Jamie Madill 96ed3527d0 Buffer11: Slight cleanup in copyFromStorage.
We can call setData internally to re-use the same code.

BUG=chromium:593024

Change-Id: I9f53bef1e86a11fc23799123937c354bf45de014
Reviewed-on: https://chromium-review.googlesource.com/411919
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-16 22:03:31 +00:00
Jamie Madill 3ae1461355 Buffer11: Refactor constant buffer range getter.
This getter will now return the offset to bind along with the
ID3D11Buffer pointer. This encapsulates the logic of the emulation
so that we only actually check the capabilities of the driver in
a single place. This solves the issue of needing to edit the code
in multiple places when trying to force the caps for debugging,
and also encapsulates the offset calculation in the Buffer11 class.

BUG=chromium:593024

Change-Id: Idb09d560868ae12b98bcaf4ea031c4e0b6c82b4a
Reviewed-on: https://chromium-review.googlesource.com/411918
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-16 20:56:02 +00:00
Jamie Madill 16e54098d6 Use 'gyp' dir in update_canary_angle.py.
The old 'build' dir was copying stale DLLs.

BUG=angleproject:1569

Change-Id: Ib11fb9f1e1e480fe32af3f291357e0fb92429318
Reviewed-on: https://chromium-review.googlesource.com/411389
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2016-11-15 22:15:55 +00:00
Corentin Wallez 8b7d8144b4 Clamp "count" in glUniform* before passing to the backend
The OpenGL spec allows "count" to overflow safely implemented but some
drivers like the Intel Windows OpenGL driver don't handle this
correctly and crash on overflow tests.

BUG=661413

Change-Id: I10de9292c75daa375f002850900bb5e1cbfce3b6
Reviewed-on: https://chromium-review.googlesource.com/411387
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-15 20:06:14 +00:00
Corentin Wallez 15ac534a96 Program: clamp the number of uniforms to be copied
Reland with a temporary test suppression.

BUG=661413

Change-Id: I552b64de754b326dcd499b84d9f337b9d015dc8e
Reviewed-on: https://chromium-review.googlesource.com/411473
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-15 19:59:37 +00:00
Corentin Wallez 64598b53ef Add the ANGLEPlatform entry points to eglGetProcAddress
Reland with a Windows build fix.

We want to move the Chromium initialization of the ANGLE platform from
being Windows-specific to being EGL-specific. Because the mechanisms by
which the ANGLE library is loaded are OS-specific, it is inconvenient to
use dlsym and friends to get the ANGLEPlatform entry points. Instead
we expose the through eglGetProcAddress which is readily available in the
EGL-specific part of Chromium.

BUG=angleproject:1621

Change-Id: I022a39493756a3b5d1ed626fd05e74af3f043211
Reviewed-on: https://chromium-review.googlesource.com/410066
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-15 18:04:00 +00:00
Geoff Lang c51642b40f Validate level exists for TexSubImage calls.
Before validating the texture format, verify that the texture level already
exists in glTexSubImage calls.

BUG=602737

Change-Id: I0d83c7d43c7b358abdb59583dc83265df70c13b5
Reviewed-on: https://chromium-review.googlesource.com/411361
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2016-11-15 17:39:11 +00:00
Geoff Lang 399d1a17b2 Revert "Program: clamp the number of uniforms to be copied"
This reverts commit 9863a3ef18.

Change-Id: I840a735b49bc4f2319c8af5f620d7f52bb7eecf1
Reviewed-on: https://chromium-review.googlesource.com/411470
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-15 14:55:27 +00:00
Geoff Lang 94177fbaff Length returned from glGetUniform*RobustANGLE should be in values, not bytes.
BUG=angleproject:1354

Change-Id: I805499c3514a8b323e9864b7cf9100814f3d5cc5
Reviewed-on: https://chromium-review.googlesource.com/411420
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-14 23:00:23 +00:00
Jamie Madill b0a838bff5 Program: Make LinkResult use gl::ErrorOrResult.
This simplifies the error handling code, and allows the use of the
ANGLE_TRY macro (and friends).

BUG=angleproject:1576

Change-Id: I3142388b10d0dd67a7f49a5c8c3d11102996be93
Reviewed-on: https://chromium-review.googlesource.com/411201
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-14 22:52:40 +00:00
Corentin Wallez 9863a3ef18 Program: clamp the number of uniforms to be copied
BUG=661413

Change-Id: I1a146dae0d01edeb272a58610355261b0e23dec1
Reviewed-on: https://chromium-review.googlesource.com/406745
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-14 19:38:02 +00:00
Jamie Madill 8a9e4bcfe9 Refactor GLES2 Blend entry points.
BUG=angleproject:747

Change-Id: I775265a7494aedd19ca4f18019e3b3181bfb12e9
Reviewed-on: https://chromium-review.googlesource.com/410135
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-14 17:18:25 +00:00
Yuly Novikov dfd7fb2ade Cleanup after merging translator_lib into translator
Rename a few references to translator_lib

BUG=angleproject:1596

Change-Id: Ib715fdd8a949dc46a5ef628ea2d7f71b1b771845
Reviewed-on: https://chromium-review.googlesource.com/410287
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2016-11-11 22:32:37 +00:00
Corentin Wallez 6898b35826 FramebufferGL: Fix blit workaround corner case
The SRGB blit workaround had to wrong assumptions:
 - SRGB blits can have a multisample source.
 - The woarkound is needed even when the filter is GL_LINEAR in the
   case where we are doing a RGB -> SRGB or RGB -> SRGB blit.

BUG=angleproject:1492
BUG=chromium:658898

Change-Id: I1d89572565a4e23c1c97bdf985bb21a445e898b7
Reviewed-on: https://chromium-review.googlesource.com/409540
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-11 21:36:35 +00:00
Jamie Madill f58585cbc6 Revert "Add the ANGLEPlatform entry points to eglGetProcAddress"
Produces a build warning in standalone, might require build file updates:

> locally defined symbol ANGLEPlatformInitialize imported in function <snip>

At least in GYP, libEGL does not have LIBANGLE_IMPLEMENTATION defined, so it defines this API with __declspec(dllimport), which is incorrect, since the function is local to the module. We should fix the layering and/or export defs.

BUG=angleproject:1621

This reverts commit 0504fcc17a.

Change-Id: Ida67db69eb64e4a8f2c13dcf129d40b332f2da9d
Reviewed-on: https://chromium-review.googlesource.com/410065
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-11 21:20:41 +00:00
Corentin Wallez 0504fcc17a Add the ANGLEPlatform entry points to eglGetProcAddress
We want to move the Chromium initialization of the ANGLE platform from
being Windows-specific to being EGL-specific. Because the mechanisms by
which the ANGLE library is loaded are OS-specific, it is inconvenient to
use dlsym and friends to get the ANGLEPlatform entry points. Instead
we expose the through eglGetProcAddress which is readily available in the
EGL-specific part of Chromium.

BUG=angleproject:1621

Change-Id: I7adbea003103d0331ec9eece7b881e27bd6b1a5d
Reviewed-on: https://chromium-review.googlesource.com/410063
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-11 20:17:15 +00:00
Yuly Novikov ea5865497e Cleanup after translator component removal
- Unite translator with translator_lib
- Remove flags and defines for shared library exports

BUG=angleproject:1596

Change-Id: Icd145a4b79e2472766a2b56017bb0f36f244482e
Reviewed-on: https://chromium-review.googlesource.com/410261
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2016-11-11 19:45:51 +00:00
Bryan Bernhart 619c833be8 Add default compiler options to WebGL shaders.
Enforces default compiler options when compiling WebGL compatible shaders.

BUG=angleproject:1616

Change-Id: I18490db68b29981fab4817bdd61727752cf50997
Reviewed-on: https://chromium-review.googlesource.com/409016
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2016-11-11 18:34:44 +00:00
Zhenyao Mo 7bb4598804 Return a lift of a angle_end2end_tests on AMD.
BUG=angleproject:1622
TEST=angle_end2end_tests
TBR=jmadill@chromium.org

Change-Id: Icd1f5fecc36621d70822c738da39d39d3bdb3ff6
Reviewed-on: https://chromium-review.googlesource.com/410037
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
2016-11-11 17:47:46 +00:00
Martin Radev 049edfa27b Add volatile, coherent and restrict memory qualifiers
The patch adds support for the three remaining memory qualifiers:
volatile, coherent and restrict.

BUG=angleproject:1442

TEST=angle_unittests
TEST=angle_end2end_tests

Change-Id: Ie662d304af2399468df1d976e04c38dada1e2cec
Reviewed-on: https://chromium-review.googlesource.com/385876
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-11 17:06:14 +00:00
Geoff Lang 7b8f3c9bb5 Encapsulate the thread local storage into an egl::Thread class.
Instead of having separate GetGlobal* functions, interact with the global
objects through a single Thread object.  This reduces the number of TLS
lookups in many EGL functions and allows the Thread object to be passed
down to other objects if needed.

BUG=angleproject:1618

Change-Id: I1f9a89e8899d637633f4e91fda0e38ac308dd020
Reviewed-on: https://chromium-review.googlesource.com/409637
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-11 15:29:18 +00:00
Zhenyao Mo d7490967e1 Fix linkage.html failures on Mac.
The failure is due to when we initialize variables to 0, we re-create
the struct TType, and it contains a different unique id from the
original struct TType, thus leading to a different hashed name.

BUG=chromium:641129
TEST=webgl_conformance,webgl2_conformance

Change-Id: I267b97fa496f55ea59dacee93af8f6a90f3e66cb
Reviewed-on: https://chromium-review.googlesource.com/409602
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-11 02:24:38 +00:00
Qin Jiajia 4b97d50462 Fixed incorrect multisample rendering when enable SAMPLE_COVERAGE on Win
In RendererD3D::createRenderTarget, we use getNearestSamples(samples)'s
result to assign D3D11_TEXTURE2D_DESC.SampleDesc.Count. However, in
renderer11::updateState, we used the original samples to calculate mask
by GetBlendSampleMask not the supported nearest samples. It would result
that multisample rendering result was incorrect when enable
AMPLE_COVERAGE and the samples is not in the suported list but less than
max samples. At least, on Intel Win platform, we can reproduce it.
The fixing is to use same samples in these two places.

BUG=angleproject:1610
TEST=MultisampleCompatibilityTest.DrawCoverageAndResolve

Change-Id: I255b12d1032317145adfcee94e65e88ae5307113
Reviewed-on: https://chromium-review.googlesource.com/408516
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2016-11-10 16:45:08 +00:00
Qiankun Miao 89dd8f3701 Remove invariant declaration in vertex shader for translation from ESSL 3.00 to GLSL <= 4.1
This is a follow-up patch of
https://chromium-review.googlesource.com/408569. This CL removes
invariant declaration in ESSL 3.00 vertex shader, such like:
"
out vec4 foo;
invariant foo;
"

This CL also adds the workarounds in libANGLE.

BUG=chromium:639760
TEST=webgl2_conformance

Change-Id: I568ab51a9a2f5da10d1aff0b63aae8805097e081
Reviewed-on: https://chromium-review.googlesource.com/409157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-10 16:41:25 +00:00
Corentin Wallez d9c6f50118 Docs: fix reference to ANGLE.sln
BUG=angleproject:1569

Change-Id: I6eb8f5f93da1879038516b14f608ff4eb4fb658b
Reviewed-on: https://chromium-review.googlesource.com/409177
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-11-10 15:07:23 +00:00
Zhenyao Mo b7bf742696 Don't ouput "invarant" and "centroid" in GLSL 4.1 or older.
BUG=chromium:639760,chromium:641129
TEST=webgl2_conformance

Change-Id: I5fe87246eaea78888529d7b45b79399e6065daa9
Reviewed-on: https://chromium-review.googlesource.com/408569
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
2016-11-09 02:18:35 +00:00