|
87d410c8
|
2016-09-05T13:33:26
|
|
Disallow multiple locations on output variables
GLSL ES specs from version 3.00 to 3.20 all mention that output layout
location qualifier may appear at most once within a declaration.
Enforce this rule when parsing shaders.
Also set max draw buffers to 8 when compiling GLSL ES >= 3.00 in the
qualification order tests and shader translator sample, so that
parsing locations > 0 will succeed.
BUG=angleproject:1505
TEST=angle_unittests
Change-Id: I50fe409041385f5e10e695f43dc3a572433e9772
Reviewed-on: https://chromium-review.googlesource.com/381211
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
a223430c
|
2016-08-31T12:05:39
|
|
Promote unary nodes automatically
Unary nodes now get their type set automatically based on the
operation and operand. The operand should only be changed to another
of the same type after the node is constructed. The operation can't
be changed on unary and binary nodes after they've been constructed.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Ib1ea3dcb1162261966c02d5f03d8091cf647fac1
Reviewed-on: https://chromium-review.googlesource.com/378935
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3272a6d3
|
2016-08-29T17:54:50
|
|
Promote and fold indexing nodes similarly to other binary ops
Indexing nodes now get their type set in TIntermBinary::promote, same
as math and logic ops. They are also constant folded through
TIntermBinary::fold() instead of having special functions for constant
folding them in ParseContext.
Index nodes for struct and interface block member access now always
have integer type, instead of sometimes having the type of the field
they were used to access.
Usage of TIntermBinary constructor is cleaned up so only the
constructor that takes in left and right operands is used. The type
of TIntermBinary nodes is always determined automatically.
Together these changes make the code considerably cleaner.
Note that the code for constant folding for array indexing is actually
never hit because constant folding array constructors is still
intentionally disabled in the code.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Ifcec45257476cdb0d495c7d72e3cf2f83388e8c5
Reviewed-on: https://chromium-review.googlesource.com/377961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
57b9424f
|
2016-09-09T12:48:00
|
|
D3D11: Release SRV cache in Buffer11 destructor.
This was leading to a resouce leak with fast unpack.
BUG=angleproject:1513
Change-Id: I4ff6c6e3c889392e314654d63f2db8f671b6913c
Reviewed-on: https://chromium-review.googlesource.com/383711
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2c07eb21
|
2016-09-02T13:06:43
|
|
Add workaround for B5G6R5 format in Intel driver
In Intel driver, the data with format DXGI_FORMAT_B5G6R5_UNORM will be
parsed incorrectly. According to
https://msdn.microsoft.com/en-us/library/windows/desktop/ff471324(v=vs.85).aspx
DXGI_FORMAT_B5G6R5_UNORM should be equivalent to D3DFMT_R5G6B5. However,
the data will be treated as B5G6R5 not R5G6B5.
This workaroud will disable B5G6R5 support when it's Intel driver.
By default, it will use R8G8B8A8 format.
BUG=chromium:644610
TEST=dEQP-GLES3.functional.fbo.blit.default_framebuffer.rgb565*
Change-Id: I9d64a9bcedf9247de6950d345ed2d3fb00170d30
Reviewed-on: https://chromium-review.googlesource.com/380421
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7ffdda9a
|
2016-09-08T13:26:51
|
|
D3D11: Don't allow fast unpack from GL_ALPHA8.
This format is one that doesn't support buffer SRV creation. It seems
like there is no equivalent dEQP test for this format.
BUG=angleproject:1503
Change-Id: I9ecdb9406ca0b62dd54b450d2b50341d76584b2b
Reviewed-on: https://chromium-review.googlesource.com/381435
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
65d17e56
|
2016-09-08T09:52:58
|
|
Generate OUT_OF_MEMORY when compiler initialization fails.
INVALID_OPERATION implies that the error is recoverable.
Change-Id: Iaa13293168f66f46864e5e4c0ab7d7c53c97e8fd
Reviewed-on: https://chromium-review.googlesource.com/383131
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c955058b
|
2016-08-29T17:56:22
|
|
Constant-qualify nodes in a consistent way
Rely on that constant qualification of binary and unary nodes comes
from promote().
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Ie8d1d4df3c82ae5a2de8cc536e47016d13a4fd3d
Reviewed-on: https://chromium-review.googlesource.com/377960
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
588e2085
|
2016-09-08T11:23:30
|
|
Update dEQP test expectations with passing tests
BUG=angleproject:1017
BUG=angleproject:1097
BUG=angleproject:1323
Change-Id: I67754700c27041c99428857c48697fa11c0d34ab
Reviewed-on: https://chromium-review.googlesource.com/382860
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
d13ca30d
|
2016-09-08T09:35:57
|
|
Fix incorrect compressed internal format enum.
This error was not exposed since compressed formats use different validation
paths. Fixed for completeness.
BUG=angleproject:1511
Change-Id: I9b44a795b1e43f52555440f776e00bb4b92354ef
Reviewed-on: https://chromium-review.googlesource.com/382653
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f119a263
|
2016-08-19T15:54:22
|
|
Clean up unary and aggregate math folding
Prefer asserts instead of adding internal errors to the compiler log
when types of arguments are not as expected or the folding function
runs into an operation it can't handle. Neither of these cases should
be possible, the checks for correct argument types are solid at this
point.
In the future, when new built-in functions are added, constant folding
support for them should be added as well.
foldUnaryWithDifferentReturnType and foldUnaryWithSameReturnType are
renamed to foldUnaryNonComponentWise and foldUnaryComponentWise
respectively. These names better reflect what these functions are
doing.
The info sink member is removed from TIntermediate, since TDiagnostics
is now passed into the functions that may generate warnings instead.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I6a08abbe29cf23f3a318032fdc46dd3dbaf4410e
Reviewed-on: https://chromium-review.googlesource.com/377959
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9df01f8a
|
2016-09-07T17:33:41
|
|
Fix overflow in ImageIndexIterator::done.
The maxLayer() method was reading out of range for 2D arrays.
BUG=644846,614178
BUG=angleproject:1493
Change-Id: I7cc4773d1ee9ff2d0a18cb0a8e916cf3687446db
Reviewed-on: https://chromium-review.googlesource.com/382332
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b6c3e77b
|
2016-09-07T11:10:13
|
|
StateManagerGL: handle GL_DITHER
DITHER is on by default and dEQP precision tests turn this off, to avoid
dithering messing with the precision. The OpenGL backend didn't handle
glDisable(GL_DITHER) causing precision to be wrong on RGB565 on Linux
Intel.
BUG=angleproject:1492
Change-Id: I5e750fbe9df397e8b9a826979b14c84a2d72a00d
Reviewed-on: https://chromium-review.googlesource.com/382111
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
e731d8aa
|
2016-09-07T10:56:25
|
|
TextureTest: suppress failure for newly added test.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: I5cab149c735158fe810f002e47cc3c5c75bc503b
Reviewed-on: https://chromium-review.googlesource.com/381951
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
5a7e20ed
|
2016-09-06T18:07:22
|
|
Fix compiler allocations accidentally done outside memory pool
Qualifier data structures were being accidentally allocated on the
regular heap and never being freed inside the compiler due to missing
POOL_ALLOCATOR_NEW_DELETE macros. Add in the macros where needed.
Also fix up include directives in QualifierTypes.h/.cpp to use the
full path of files from ANGLE.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: Ib54f3cd3ab0f768fed9f0215d795ff493be513e0
Reviewed-on: https://chromium-review.googlesource.com/380538
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
14718767
|
2016-09-06T15:56:54
|
|
Remove usage of std::log2 in tests.
For some reason, this was giving a link error on Android.
Change it to use the mathutil version to be sure.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: I454ba4609d7818f50c668bb7c1a3b684f9ca8444
Reviewed-on: https://chromium-review.googlesource.com/381671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
509e4560
|
2016-08-25T14:55:44
|
|
compiler: Work around a HLSL compiler aliasing opt bug.
BUG=angleproject:1448
Change-Id: I7d5bcbd100069152cea0cb03bc4fa6af1044460b
Reviewed-on: https://chromium-review.googlesource.com/376020
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9e3d7aa0
|
2016-09-02T15:19:43
|
|
D3D11: Work around small mipped stencil textures.
AMD has a bug with 2x2 and 1x1 mips of depth/stencil textures. Formats
D24S8 and D32FS8 both seem to render black for the very small mips.
We can work around this by selectively caching a copy of the texture
data that only has depth information, since stencil isn't filterable
in OpenGL ES.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: Iebef42c4680018d9854dbe789d677823167213dd
Reviewed-on: https://chromium-review.googlesource.com/380037
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6a25746c
|
2016-09-06T08:56:08
|
|
Generate uniqueId for all TStructure
If not present, ASSERT error may happen in debug build.
BUG=chromium:643075
Change-Id: Ia57e3771ab4d2861aefc04287fbbce85232f1f4d
Reviewed-on: https://chromium-review.googlesource.com/381315
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dea2777c
|
2016-09-02T15:09:09
|
|
D3D11: Rename TextureStorage swizzle invalidation.
Since we'll also be storing a cache of depth textures as well as
swizzle info, generalize the invalidation methods.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: I8fef049b01c81483fcf28196866a22d5cfed32a1
Reviewed-on: https://chromium-review.googlesource.com/380036
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
96f4f45e
|
2016-09-02T16:20:11
|
|
Fix ImageIndexIterator termination.
There was an off-by-one error preventing proper iteration.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: I8a3907620a1503d16b039606a67fe3471f88e165
Reviewed-on: https://chromium-review.googlesource.com/380325
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3af2b3b0
|
2016-09-06T09:47:56
|
|
UniformBufferTest: add back suppressions for failing tests
296398571213608b99d12266d0ba218f99c87abf fixes most but not all
UniformBuffer Wintel failures of the waterfall, add back suppressions
needed to make the waterfall green.
BUG=chromium:593024
Change-Id: I124666853e9943bcb71083e5563d02e65551f916
Reviewed-on: https://chromium-review.googlesource.com/381451
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
613b959d
|
2016-09-05T12:05:53
|
|
Clean up qualification order checks
Move determining whether qualification order checks are relaxed to
QualifierTypes.cpp. The ParseContext only needs to construct
TTypeQualifierBuilder with the shader version as a parameter, and it
will make the decision based on that. ParseContext still passes
diagnostics to the TTypeQualifierBuilder functions that return
variable qualification to make it more explicit when errors are
generated.
Also encapsulate looking for symbols in the AST inside
compiler_test.cpp.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: I4190e6a680ace0cc0568a517e86353a95cc63c08
Reviewed-on: https://chromium-review.googlesource.com/380556
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b6b1a4a6
|
2016-09-06T14:16:13
|
|
Fix build failure in chrome due to unused function
Chrome build fails on a warning:
"../../third_party/angle/src/compiler/translator/QualifierTypes.cpp:30:6:
error: unused function 'IsInvariantCorrect' [-Werror,-Wunused-function]"
BUG=angleproject:1442
Change-Id: If2fea0d90e9cd789c3a6449881794082f3e98afd
Reviewed-on: https://chromium-review.googlesource.com/381201
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5b55edd8
|
2016-09-05T14:55:15
|
|
Work around unpackHalf2x16 emulation for Intel Mac
Negative operator is buggy in an expression on Intel Mac. Use abs(v) to
replace -v for negative value.
BUG=chromium:644057
TEST=deqp/functional/gles3/shaderpackingfunction.html
Change-Id: I6182e7a00b162e36ed9278c0e5a2fdd8fb480959
Reviewed-on: https://chromium-review.googlesource.com/381152
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c28888b3
|
2016-07-22T15:27:42
|
|
Relax checks when parsing type qualifiers in GLSL ES 3.10
The grammar in GLSL ES 3.10 does not impose a strict order on the
qualifiers and also allows multiple layout qualifiers.
This patch relaxes the checks when parsing a type qualifier.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: Ib3653a1ed1bfced099a6b2cbf35a7cd480c9100a
Reviewed-on: https://chromium-review.googlesource.com/379016
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
29639857
|
2016-09-02T15:00:09
|
|
D3D11: Work around Intel uniform buffers bug.
When copying from a staging buffer to a uniform buffer, the first
upload would be incorrect. Work around this by trying to upload
directly to a uniform buffer on the first BufferSubData call.
BUG=chromium:593024
Change-Id: I0df3a1422b962bf3ece5d445f435df01e3544b67
Reviewed-on: https://chromium-review.googlesource.com/368774
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4a9cd800
|
2016-09-01T16:51:51
|
|
Refactor type_specifier_nonarray parsing to reduce code repetition
When type_specifier_nonarray gets parsed the scope gets saved into
TType and the code becomes repetitive. Setting of the scope is moved
to type_specifier_no_prec as it occurs less times.
BUG=angleproject:911
TEST=angle_unittests
TEST=angle_end2end_tests
Change-Id: I6da5fe7bc2d60ba2996221af71b719b818f5e9b1
Reviewed-on: https://chromium-review.googlesource.com/380535
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5b46a680
|
2016-09-01T15:22:06
|
|
Clear the swizzle cache in TextureStorage11::setData.
BUG=angleproject:1494
Change-Id: I67471e4b961b3d8374c2da84394ead743939c225
Reviewed-on: https://chromium-review.googlesource.com/380095
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d08163d7
|
2016-09-01T13:56:24
|
|
Fix standalone build.
BUG=angleproject:1471
Change-Id: I52aadeb58f75d5b944421bd0cd4a5dddead3f6d1
Reviewed-on: https://chromium-review.googlesource.com/379916
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
70866b89
|
2016-07-22T15:27:42
|
|
Change grammar to support features from es31
The grammar has been changed so that ES31 grammar is followed more
closely. The ES31 grammar is not fully supported, only functionality
related to qualifier enumeration is added.
The ParseContext is changed so that type qualifiers can be now joined
together (i.e. like layout qualifiers). This will allow enumeration of
multiple storage qualifiers (i.e. uniform readonly coherent) which is
essential for support of ES31 features.
Some of the error checks had to be moved closer to the root of the
parse tree since some of the information about the expression might be
missing.
Unfortunately, as there is no explicit ordering imposed by the
grammar, additional checks for proper order of qualifiers had to be
added. I also included unit tests which test against malformed
shaders.
BUG=angleproject:1442
TEST=angle_end2end_tests
TEST=angle_unittests
TEST=dEQP-GLES3.functional.shaders.*precision*
TEST=dEQP-GLES3.functional.shaders.*function*
TEST=dEQP-GLES2.functional.shaders.*
Change-Id: Ib3653a1ed1bfced099a6b2cbf35a7cd480c9100d
Reviewed-on: https://chromium-review.googlesource.com/362940
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b962aab6
|
2016-09-01T10:08:40
|
|
Remove stray reference to SH_EMULATE_BUILT_IN_FUNCTIONS.
BUG=chromium:642227
Change-Id: Ie1d74c0abd355a0bddc3c2b700390a3a2a9c4823
Reviewed-on: https://chromium-review.googlesource.com/379875
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5bb72ff
|
2016-09-01T01:41:27
|
|
Remove SH_EMULATE_BUILT_IN_FUNCTIONS which isn't used
The flag is not used in chrome. We decide to do per emulation per flag.
BUG=chromium:642227
Change-Id: I936d53e5015186e35e672d0cb51c853a941582d2
Reviewed-on: https://chromium-review.googlesource.com/379077
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
8314465d
|
2016-08-31T17:03:30
|
|
GL backend: add a workaround for bad default current vertex attributes
BUG=angleproject:1492
BUG=351528
Change-Id: Ie4b25b0106282c9f60d19053e5a320549887bc8b
Reviewed-on: https://chromium-review.googlesource.com/379196
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
a4e6f074
|
2016-08-29T14:49:21
|
|
Work around abs() issue in Intel Mac drivers
abs(i) where i is an integer returns unexpected result in Intel Mac.
This works around the issue by emulating abs(i) manually.
BUG=chromium:642227
TEST=deqp/functional/gles3/shadercommonfunction.html
Change-Id: I2a41e0f4bcb0766109d651e663283b1760468017
Reviewed-on: https://chromium-review.googlesource.com/377628
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
c2c5fc48
|
2016-08-31T15:24:22
|
|
Remove CSS Shader related code
CSS shader has been removed from spec and chrome code base. Remove the
code in ANGLE.
BUG=chromium:233383
Change-Id: I93a35437f540e51ce7af9d49f21ca60d7c0b156a
Reviewed-on: https://chromium-review.googlesource.com/378739
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7ef9aa7b
|
2016-08-31T15:39:38
|
|
Enable texelFetchOffset re-writing for GLSL translator
Intel Mac has the same bug as Win. So the CL enables it in GLSL translator as
well.
BUG=chromium:642605
TEST=deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html
Change-Id: I30323ea3a6d4c07ff32e50bd7c574916b5b865f4
Reviewed-on: https://chromium-review.googlesource.com/378601
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
ad10a4aa
|
2016-08-29T23:24:33
|
|
Update dEQP gles2 tests expectations for Android
Mark tests that fail or hang on Nexus 5X as such.
BUG=angleproject:1471
TEST=gles2 tests pass on Nexus 5X
Change-Id: I3de8ce3e472f9c75bd18140bf9aa4d79a73cb22d
Reviewed-on: https://chromium-review.googlesource.com/377703
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e3352f94
|
2016-08-12T20:40:14
|
|
Change angle_util to be a shared library
So that there will be one instance of static thread synchronization variables
in AndroidWindow.
Previously there was one instance in lib_angle_deqp_gles2_tests__library
and one in libangle_deqp_libgles2, resulting in AndroidWindow::initialize
waiting forever.
Also make the change in GYP build to fix standalone build,
and fix rpath issues on Mac.
BUG=angleproject:1471
TEST=end2end and deqp tests on standalone Win10 and end2end on GN Mac 10.11
Change-Id: I731578459400bb47d269df129aabed9b67b555e6
Reviewed-on: https://chromium-review.googlesource.com/376202
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d5da505d
|
2016-08-29T13:16:55
|
|
Fix constant folding non-square outerProduct
Use all the vector elements correctly when constant folding non-square
outerProduct. Previously the code used to discard some elements of the
smaller outerProduct operand. Also clear up confusion about matrix
rows/columns in matrix constant folding code in general.
BUG=angleproject:1482
TEST=angle_unittests
Change-Id: I7cba8f97a92b875de01e57255d54258cdfd92a47
Reviewed-on: https://chromium-review.googlesource.com/377298
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2ac58792
|
2016-08-29T15:31:44
|
|
Update dEQP GLES3 test expectations
BUG=angleproject:1097
Change-Id: Ib10ee930eb4d29bee3bc014c008a6b7420525e42
Reviewed-on: https://chromium-review.googlesource.com/377458
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4e58af61
|
2016-08-26T10:56:52
|
|
Add missing TexImage and CopyTexImage format combinations for ES3.
* Some unsized DEPTH_COMPONENT combinations were not added to the validation
tables for the ANGLE_depth_texture extension.
* The HALF_FLOAT_OES format was not validated in ES3 for RGB and RGBA formats
when the OES_texture_half_float extension is supported.
* BGRA->BGRA CopyTexImage validation was missing.
No more errors are generated within ANGLE when visiting
http://alteredqualia.com/tools/webgl-features/
BUG=605754
Change-Id: If654c34adcebb4cd3eaa994ad7e912f6ffa4df55
Reviewed-on: https://chromium-review.googlesource.com/376281
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b920e360
|
2016-08-03T18:19:41
|
|
Implement GL_ARB_create_context_robustness on GLX and WGL
BUG=angleproject:1463
Change-Id: I5bdcfd757d6f7d6411558c368fa7a26c8a38c9ba
Reviewed-on: https://chromium-review.googlesource.com/365971
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9ddfa060
|
2016-08-29T13:56:39
|
|
Disable compute shader tests on Intel
The compute shader tests in angle_end2end_tests fail on Intel Linux.
The patch disables the tests for Intel.
TEST=angle_end2end_tests
BUG=angleproject:1483
Change-Id: I303f0852ea3ccb65c1dd96a196a640c76cc519e4
Reviewed-on: https://chromium-review.googlesource.com/377318
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ab481645
|
2016-08-26T12:09:10
|
|
Fix splitting nested sequence operators
Make sure that only one sequence operator is split on one iteration
of SplitSequenceOperator. This prevents multiple successive PostVisit
calls to nested sequence operator nodes from adding duplicate nodes
to the AST. The sequence operators are split starting from the
outermost one to preserve execution order.
Note that the shader translator somewhat unexpectedly generates nested
sequence operators in the AST when there is a sequence operator with
more than two operands, so this bug ended up affecting shaders in the
wild. The code around parsing sequence operators could be clarified
separately.
BUG=638313
TEST=angle_end2end_tests
Change-Id: Ic6400a484ceff0c790c2290f7b4b80980f87cd88
Reviewed-on: https://chromium-review.googlesource.com/376678
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
11e43ece
|
2016-08-11T09:54:08
|
|
Add a workaround for Intel drivers on glsl function texelfetchoffset
GLSL function texelfetchoffset will be translated into texture.Load in
ANGLE. In D3D there is a note that When one or more of the coordinates
in Location exceeds the u, v, or w mipmap level dimensions of the
texture, Load returns zero in all components, but in glsl there is no
such restriction, which will cause the WebGL 2 dEQP test
deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html fail
on Windows with Intel GPU.
Adapted from ExpandIntegerPowExpressions.cpp, this patch adds a
translation from texelFetchOffset into texelFetch to work around this
issue.
BUG=angleproject:1469
Change-Id: Iecfb9570472036acf5960789bdb1a63f191316be
Reviewed-on: https://chromium-review.googlesource.com/367883
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
1fe74c7e
|
2016-08-25T13:23:01
|
|
Manually compute the mipmap size for the textureSize builtin.
There were two issues with the current implementation:
* The GetDimensions function already takes into account the base level of the
SRV.
* The GetDimensions function returns doesn't return valid sizes for levels
that don't exist in the SRV. Instead, manually do the lod offset.
BUG=angleproject:931
BUG=angleproject:1316
TEST=dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2d_fixed_vertex
Change-Id: I63259b563a42b93b73949e0ef7ac412099a42f13
Reviewed-on: https://chromium-review.googlesource.com/376099
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b0465313
|
2016-08-26T13:21:37
|
|
Don't allow packed integer types in glVertexAttribIPointer.
They are only allowed in the glVertexAttribPointer call.
BUG=angleproject:1101
Change-Id: I85aae9e35b45e8b1296244756091271d01dd1533
Reviewed-on: https://chromium-review.googlesource.com/376719
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
558b038c
|
2016-08-26T17:54:34
|
|
Don't accept sampler operands for unary operators
Unary plus and minus used to be accepted with sampler operands.
Increment/decrement operators also now generate a clearer error
message if a sampler operand is supplied.
TEST=angle_unittests
BUG=angleproject:1480
Change-Id: I2c5165c4eaac7b023d96e46a177e36f6536b0125
Reviewed-on: https://chromium-review.googlesource.com/376319
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
87fbe1c2
|
2016-08-03T14:41:42
|
|
ContextImpl: only expose getResetStatus for robustness
This will allow each backend to implement this method separately. The
current set of ContextImpl methods used for robustness are slightly
D3D-centric.
BUG=angleproject:1463
Change-Id: I101f8ada2c49de4cf110db48b1e8380c52b50fb2
Reviewed-on: https://chromium-review.googlesource.com/365829
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
4c4c8e72
|
2016-08-04T12:25:34
|
|
Add compute program compilation and linking support
Compute shaders can be now compiled and linked to create programs.
Some tests are added to verify successful and unsuccessful compute
shader linking.
The patch also replaces std::array<int, 3> with a custom struct
WorkGroupSize.
BUG=angleproject:1442
TEST=angle_end2end_tests
TEST=angle_unittests
Change-Id: I4ab0ac05755d0167a6d2a798f8d7f1516cf54d84
Reviewed-on: https://chromium-review.googlesource.com/366740
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
63e1ec5c
|
2016-08-18T22:05:12
|
|
Move the rest of the validation out of TIntermBinary::promote
TIntermBinary::promote now has a single purpose of determining the
type resulting from a binary math operation. The TIntermBinary
constructor taking the left and right nodes can now also call promote
automatically, and promote is made into a private member of
TIntermBinary. Validation of binary math operand types is done
inside ParseContext.
BUG=angleproject:952
TEST=angle_unittests
Change-Id: I52a409f680c8d4120b757193972d03aed34c6895
Reviewed-on: https://chromium-review.googlesource.com/372624
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
666f65a1
|
2016-08-26T01:34:37
|
|
Revert "Revert "Cover vector dynamic indexing case in SplitSequenceOperator""
This reverts commit d2f59bb6dda4f3548e158a09540829f9ff56bba4.
Change-Id: If2842bce17a0c085e2bc913ff120083fbe90497c
Reviewed-on: https://chromium-review.googlesource.com/376189
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b3925a3f
|
2016-08-23T13:17:34
|
|
Add test for EGL_create_context_robustness
The test is disabled on non-Windows as Linux drivers seem to not be
able to kill an in-flight warp and the whole computer locks down.
BUG=angleproject:1463
Change-Id: Iea3dcb1df323aa1341a4d26fe291b6abfae2aa3a
Reviewed-on: https://chromium-review.googlesource.com/374166
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1dded803
|
2016-08-18T18:13:13
|
|
Check multiplication validity in ParseContext
This improves separation of responsibilities in the code: ParseContext
should handle operand type validation, while TIntermBinary::promote
should ideally only determine the type of the node based on the
operation and operands.
BUG=angleproject:952
TEST=angle_unittests
Change-Id: I9a8d8ede21cdf35de631623a62194c0da5c604d2
Reviewed-on: https://chromium-review.googlesource.com/372622
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9949f04d
|
2016-08-03T12:47:27
|
|
Fence11: When busy looping on a fence, test for device loss
Previously the code only checked is the device had already seen as lost
but never updating the lost status. Since checking for device loss can be
expensive, only do it every 128 loop iterations.
BUG=angleproject:1463
Change-Id: Ib481aebbb73d0f279e7ef835ac3a96c0a4663d58
Reviewed-on: https://chromium-review.googlesource.com/365736
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
55033e58
|
2016-08-25T17:32:12
|
|
Revert "Change angle_util to be a shared library"
This reverts commit 2f9b5e6f79cd576bd3b7110272d58f143801bf0f.
Change-Id: I90a7ba0596e79795c9549bc268eabff69c96d572
Reviewed-on: https://chromium-review.googlesource.com/376079
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0ea0caeb
|
2016-08-10T12:39:29
|
|
Move load functions table to renderer layer.
We will be able to use it for the Vulkan formats table.
BUG=angleproject:1455
Change-Id: Iddc09fe560b06880af72a6fa8eb03fa2792e2f8c
Reviewed-on: https://chromium-review.googlesource.com/367454
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
17605b61
|
2016-08-10T11:48:29
|
|
Replace DXGI with ANGLE format in the load tables.
BUG=angleproject:1455
Change-Id: I851848d8a28bd70ff921d76b19902f40a5e8b17d
Reviewed-on: https://chromium-review.googlesource.com/367453
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
46ad513f
|
2016-08-13T14:22:47
|
|
dEQP: Use GL ES display factory on Android
BUG=angleproject:1471
Change-Id: I11964fa36fa75841512c49eda4cd5947d6197cda
Reviewed-on: https://chromium-review.googlesource.com/368985
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4628f386
|
2016-08-13T14:13:16
|
|
Add dEQP search paths on Android devices
Including: test expectations and list, dEQP data and test results.
Hardcode chromium_tests_root for now, to avoid adding a new API
to pass the path from test runner to ANGLE.
BUG=angleproject:1471
Change-Id: I654fa4727c436d743b3d6344ad17cb030934cde2
Reviewed-on: https://chromium-review.googlesource.com/368984
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b2e4863c
|
2016-08-09T18:08:03
|
|
Replace std::map with switch in load functions.
BUG=angleproject:1455
Change-Id: Ica74ea5503efc0315bc4d98aa322da523a30b24c
Reviewed-on: https://chromium-review.googlesource.com/367696
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2f9b5e6f
|
2016-08-12T20:40:14
|
|
Change angle_util to be a shared library
So that there will be one instance of static thread synchronization variables
in AndroidWindow.
Previously there was one instance in lib_angle_deqp_gles2_tests__library
and one in libangle_deqp_libgles2, resulting in AndroidWindow::initialize
waiting forever.
BUG=angleproject:1471
Change-Id: Ia529c91e34960eb352730c1bb89a91ce6336c8a0
Reviewed-on: https://chromium-review.googlesource.com/368983
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
ca05a081
|
2016-08-12T14:46:30
|
|
Compile deqp_gles2 on Android
Add some missing functions,
modify preprocessor conditions and build files
to include some other missing functions when building for Android.
BUG=angleproject:1471
Change-Id: Iadc0a0b9fed2444b8bc9a894ee65c8b66ea7f3c9
Reviewed-on: https://chromium-review.googlesource.com/368982
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
91e71ed9
|
2016-08-23T09:29:22
|
|
Misc minor WinRT fixes and cleanups
Change-Id: Ibf041e74d81ef266791e6b6a3bb43bf504b035b3
Reviewed-on: https://chromium-review.googlesource.com/374040
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e1846665
|
2016-08-23T11:03:21
|
|
Add Vulkan to in-progress section of the landing page.
Change-Id: Ib1f911d1a30921e4d74d405b77f930754a647d17
Reviewed-on: https://chromium-review.googlesource.com/374048
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
39b11018
|
2016-08-22T13:42:30
|
|
Remove Windows 8.1 (Store apps) and Windows Phone 8.1 support
ANGLE has moved onto the Windows 10 SDK, and is using new compiler
features that aren't supported by the old Windows 8.1 toolchain. Support
for the 8.1 projects has been broken in master for some time now.
Since more and more developers are moving towards Windows 10, we
are going to take a snapshot of ANGLE that includes 8.1 support and
freeze it in a branch on github.com/microsoft/angle. If developers
wish to compile for use ANGLE in 8.1 apps then they should use that
branch going forward.
Change-Id: Ifee2d8a8cc0332500e0bd338911d831e7624fa82
Reviewed-on: https://chromium-review.googlesource.com/374039
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c4718040
|
2016-08-09T17:21:03
|
|
Remove DXGI_FORMAT_UNKNOWN cases from load table.
These cases were unreachable.
BUG=angleproject:1455
Change-Id: I5f3b969de3aca3862944ac9ed510c9f5e9fd77e2
Reviewed-on: https://chromium-review.googlesource.com/367695
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
04d3d895
|
2016-08-09T15:02:19
|
|
Simplify load functions table.
The indexing of the table data was mismatched with the table,
causing confusion with no appreciable gain. Fix this, reducing
the lines in the script and table at the same time.
BUG=angleproject:1455
Change-Id: I59095ba11a416575fd2310765eaac8d368b90cab
Reviewed-on: https://chromium-review.googlesource.com/367694
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
55f29a8c
|
2016-08-09T13:11:02
|
|
Check if conversion needed from load function.
The 'LoadToNative' copy is the only one that should be considered a
non-conversion. For depth formats, we should be clamping on SetData
and CopyImage calls, so this changes the flags for two of the
depth formats, but won't affect behaviour since the conversion bit
is never check for depth/stencil formats.
This allows us to remove the 'requiresConversion' bit from the data.
BUG=angleproject:1455
Change-Id: I739ecc54406d65049caad7851ffd51d7cb777946
Reviewed-on: https://chromium-review.googlesource.com/367693
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c99518fc
|
2016-08-09T11:10:38
|
|
Move default ANGLE format map to shared location.
This default format mapping serves as a base for a Renderer format
mapping. Any formats that require emulation or other representation
in a Renderer can be overridden in the renderer layer.
BUG=angleproject:1455
Change-Id: I47f070c2ea132bada9cc0fc4353b89b74b8ee8f3
Reviewed-on: https://chromium-review.googlesource.com/367692
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c2c106d4
|
2016-08-11T12:42:14
|
|
D3D11: Clean up buffer calls a bit.
BUG=None
Change-Id: I3b697c3b721b5be4888d039a5cefd160ab5b23f8
Reviewed-on: https://chromium-review.googlesource.com/367877
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f69682be
|
2016-08-16T14:50:42
|
|
Add unittests to verify invariant doesn't leak
This is a followup CL of
https://chromium-review.googlesource.com/366720. Unittests is added to
check invariant status does not leak across shaders.
This CL also moves mInvariantVaryings and mGlobalInvariant from
TSymbolTable to TSymbolTableLevel. So at the end of a compilation, the
levels pop, and the settings will be cleared and will not affect the
next compilation.
Change-Id: I1199fade7a637276ab149ab9a599621b9977298b
Reviewed-on: https://chromium-review.googlesource.com/370844
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
3fdec919
|
2016-08-18T15:08:06
|
|
Refactor binary node creation
1. Simplify code by using asserts instead of adding internal errors to
log.
2. Add a TIntermBinary constructor that takes left and right operand
nodes as parameters.
3. Remove TIntermediate functions with trivial functionality.
BUG=angleproject:952
TEST=angle_unittests
Change-Id: I2e0e52160c9377d8efcf15f14fd59f01cb41bd83
Reviewed-on: https://chromium-review.googlesource.com/372720
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1cc598f8
|
2016-08-18T13:50:30
|
|
Add error and warning helpers to Diagnostics
This will make it easier to generate errors and warnings with a
consistent format outside of ParseContext, for example in
TIntermBinary::fold() which warns about division by zero.
BUG=angleproject:952
TEST=angle_unittests
Change-Id: I25999d7bdc77efafe77785a0d6f4d63417dfaab9
Reviewed-on: https://chromium-review.googlesource.com/372719
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
244be01a
|
2016-08-18T15:26:02
|
|
Fix struct compound assignment being allowed in GLSL parsing
The shader translator used to accept some invalid struct operations,
like struct += struct and struct == struct with a different type. Fix
this.
BUG=angleproject:1476
TEST=angle_unittests
Change-Id: Ia2303fc1f740da4d78242e094ee6004b07364973
Reviewed-on: https://chromium-review.googlesource.com/372718
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
bccc65d3
|
2016-07-19T16:48:43
|
|
Flatten "#pragma STDGL invariant(all)" into varying variables.
This is implemented as a compiler option which is enabled by default
when outputting to desktop GLSL version 130 and greater, which does
not support this #pragma in fragment shaders. As a workaround, and for
better compatibility on desktop OpenGL drivers, this pragma is also
flattened into the outputs of vertex shaders, and the inputs of ESSL
1.00 fragment shaders.
TEST=conformance/glsl/misc/shaders-with-invariance.html with --enable-unsafe-es3-apis
BUG=629622, angleproject:1293
Change-Id: Ib040230915e639971505ed496d26e804c9d64e68
Reviewed-on: https://chromium-review.googlesource.com/361792
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
d2f59bb6
|
2016-08-17T11:50:52
|
|
Revert "Cover vector dynamic indexing case in SplitSequenceOperator"
This CL was causing inverted rendering in a WebGL application.
This reverts commit 7da9850643f55335a13a4663d226c73d0ac4d3b1.
Vectors or matrices that are dynamically indexed as a part of an
l-value generate new statements in the RemoveDynamicIndexing AST
transformation step. SplitSequenceOperator needs to detect this case
and split the sequence operator before statements are generated from
its operands to ensure the correct order of execution.
BUG=angleproject:1341
TEST=angle_end2end_tests
Change-Id: I854f8cce2d46107afa62f48edf3d32c6d5c97eda
Reviewed-on: https://chromium-review.googlesource.com/371643
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6c9503ec
|
2016-08-16T14:06:32
|
|
D3D11: Improve integer pow workaround.
A slight bug in the problem case detection applied the workaround
overly-broadly. Also included a much more thorough test.
BUG=angleproject:851
Change-Id: I5c09d67eee3622c144401769af85958f23b60c57
Reviewed-on: https://chromium-review.googlesource.com/371380
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1200c41b
|
2016-08-16T14:09:14
|
|
Suppress two new AMD failures.
These failures were exposed with the new R7 240 card.
BUG=chromium:637037
Change-Id: I1fe5add2fc08d5c93e338250efb2af62712d0e53
Reviewed-on: https://chromium-review.googlesource.com/371318
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8a17626d
|
2016-08-16T14:23:01
|
|
Refactor: Return true when checks succeed in ParseContext
Instead of returning false when a check succeeds in ParseContext,
return true. This is more intuitive and in line with conventions used
elsewhere inside ANGLE.
Also includes some minor other cleanup in ParseContext, like improved
variable names and code structure especially when checking array
element properties. This will make introducing arrays of arrays easier
in the future.
BUG=angleproject:911
TEST=angle_unittests
Change-Id: I68233c01ccfbfef9529341af588f615efc2b503a
Reviewed-on: https://chromium-review.googlesource.com/371238
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
583c4d2a
|
2016-08-05T17:58:40
|
|
Invariant qualifier should not leak across shaders
Change-Id: I2a35899bffd28767b8bc638f415857636d4ad8ef
Reviewed-on: https://chromium-review.googlesource.com/366720
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
4e94fea8
|
2016-08-09T14:31:37
|
|
Emulate gl_FragColor broadcasting behavior when GL_EXT_draw_buffers is
enabled.
BUG=angleproject:1467,635433
TEST=WebGL conformance, angle_unittests
Change-Id: I9eb4ce715732087a3786da886f42243716f2b9b2
Reviewed-on: https://chromium-review.googlesource.com/367532
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
856c497e
|
2016-08-08T11:38:39
|
|
Clarify error checking function names in the GLSL parser
Most error checking functions in ParseContext used to follow a format
like <property>ErrorCheck. Sometimes this function would check that
the node/value would have <property>, sometimes it would check that
the node/value would not have it, which was confusing. Change most of
these functions to use a lot more descriptive names, which clearly
communicate what they are checking for.
Also includes a bit of refactoring in constructorErrorCheck(), so that
the function only checks for errors rather than also setting the type
of the constructor node.
Also make TType::arraySize unsigned, and return a sanitized size from
checkIsValidArraySize() instead of using an output parameter.
BUG=angleproject:911
TEST=angle_unittests
Change-Id: Id9767b8c79594ad3f782f801ea68eb96df721a31
Reviewed-on: https://chromium-review.googlesource.com/367070
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
9371f7ab
|
2016-08-09T11:10:37
|
|
D3D11: Remove unsized formats from the table.
These cases weren't actually ever hit within ANGLE.
BUG=angleproject:1455
Change-Id: I60da3fb9eae91598ddaed5572a4bab0a66345694
Reviewed-on: https://chromium-review.googlesource.com/367691
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
30712068
|
2016-08-09T11:10:36
|
|
Move fast copy functions into angle::Format.
These tables were duplicated in D3D11 and D3D9, and would have to be
further duplicated into Vulkan.
BUG=angleproject:1455
Change-Id: Ice1b81417d7b14f933b61861c4a9997c260ef72e
Reviewed-on: https://chromium-review.googlesource.com/367690
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
41ee2024
|
2016-07-18T16:22:03
|
|
D3D11: Improvements on ETC1 to BC1 transcode.
ETC1 data doesn't need to be fully decoded before encoding to BC1. Saves
~50% computation.
BUG=angleproject:1285
Change-Id: I0cb479a08159ccd0472e5fdf40dd84323151883c
Reviewed-on: https://chromium-review.googlesource.com/361553
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8cf70d55
|
2016-08-09T11:10:35
|
|
D3D11: Rename ANGLEFormatSet to Format.
BUG=angleproject:1455
Change-Id: I896b3ed2d5e4ff3ad72de9a3a4b554841129e4e9
Reviewed-on: https://chromium-review.googlesource.com/367093
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c98cd326
|
2016-08-09T11:10:33
|
|
D3D11: Merge d3d11::TextureFormat and ANGLEFormatSet.
BUG=angleproject:1455
Change-Id: I7fc2640ec9d73528feb526b4d8b89cabccda4d17
Reviewed-on: https://chromium-review.googlesource.com/367092
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5922891
|
2016-08-09T11:10:32
|
|
D3D11: Partially squash D3D11 format types.
d3d11::TextureFormat and d3d11::FormatSet don't really do different
things, so it would be best to merge them.
BUG=angleproject:1455
Change-Id: I8c09ae763e4cb284bb611fed9d74b9048fb9f13e
Reviewed-on: https://chromium-review.googlesource.com/367091
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
950ee3cc
|
2016-08-10T15:46:07
|
|
Update the homepage support table.
Mention our good ES 3.0 support. Also mention our multiplatform and
Vulkan support.
BUG=None
Change-Id: Ib2a3f94b56ecf3a3b20b960b3270ebbc8948a628
Reviewed-on: https://chromium-review.googlesource.com/367755
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
|
|
9a39224b
|
2016-08-09T11:10:31
|
|
D3D11: Move the swizzle format set into ANGLEFormatSet.
The only piece of data left in the d3d11::TextureFormat is the
initializer function, which could just as easily be in the
ANGLEFormatSet.
BUG=angleproject:1455
Change-Id: Iee8eb84f71807575c2a46bf4fcbf283aa1b7f565
Reviewed-on: https://chromium-review.googlesource.com/367090
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
86e0b7f7
|
2016-08-09T11:10:29
|
|
Clean up PackPixels.
BUG=angleproject:1455
Change-Id: I263719cc77ff80580a551683d062e862dee1bdab
Reviewed-on: https://chromium-review.googlesource.com/365826
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a5ac1e16
|
2016-08-09T11:10:28
|
|
D3D9: Use angle::Format when possible.
This will unify the way we call into PackPixels and also cleans u
the code. It required adding a few D3D9-specific formats to the table.
BUG=angleproject:1455
Change-Id: Ic8282f40f52cabdb2925e2bb305c26582284082d
Reviewed-on: https://chromium-review.googlesource.com/365825
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
a5b1561e
|
2016-08-09T11:10:27
|
|
Place format info in angle::Format.
Some bits of information, like the copy functions and mipmap gen
functions, can be shared across back-ends in the angle::Format
class.
Also name the info struct angle::Format, and use an enum class
angle::Format::ID to identify the particular format.
This patch introduces a new table generator for angle formats
and updates the D3D11 generator accordingly.
BUG=angleproject:1455
Change-Id: I13b8b98822b1186c6a9e436dc232c18fef50980c
Reviewed-on: https://chromium-review.googlesource.com/365824
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20f69ce5
|
2016-08-09T11:10:26
|
|
Introduce angle::Format enum.
This general enum can encapsulate different formats between
GL/Vulkan/D3D9/D3D11/etc so we can use them in common routines like
PackPixels. It also can help us get rid of the ANGLEX enums which
we use to represent internal formats not present in GL.
It is currently used for Textures/Renderbuffers/Surfaces, but can
also be extended in the future to cover things like vertex formats.
It mirrors something like a DXGI_FORMAT in D3D11 or VkFormat.
BUG=angleproject:1455
Change-Id: I467d7b36d8fc92bb45239d56b9243d06f4e29378
Reviewed-on: https://chromium-review.googlesource.com/365413
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
383b791a
|
2016-08-05T11:22:59
|
|
Remove recover() from ParseContext
This call is a no-op. The shader parser is intended to almost always
recover from errors, so including it doesn't clarify the code either.
It's simpler to remove it entirely.
BUG=angleproject:911
TEST=angle_unittests
Change-Id: I0feae097c2807c8e9559672e7a3d50a2fc4fbdea
Reviewed-on: https://chromium-review.googlesource.com/367040
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b088360f
|
2016-08-04T17:48:58
|
|
Add compute shader special variables
Support is added for the compute shader special variables given in
OpenGL GLSL ES 3.1 Revision 4, 7.1.3 Compute Shader Special Variables.
Unit tests are added for legal and illegal usage of the special
variables.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: Idb25811c15c4044c55c611c0e73ef26eb5b3e9d7
Reviewed-on: https://chromium-review.googlesource.com/366661
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
802abe01
|
2016-08-04T17:48:32
|
|
Add compute shader compilation support in the glsl compiler
Support is added for compute shader compilation. There is a small
extension to the parser so that 'local_size_x = ', 'local_size_y = '
and 'local_size_z = ' are supported as layout qualifiers.
A few shader compilation tests are added and one which checks the AST
whether the layout qualifiers are properly parsed.
BUG=angleproject:1442
TEST=angle_unittests
TEST=angle_end2end_tests
Change-Id: I67283797d1cf13fa4ac47faa2a6e66d93a2db867
Reviewed-on: https://chromium-review.googlesource.com/362300
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|