|
7efe747c
|
2016-10-07T16:12:46
|
|
D3D11: Fix style in the entire back-end.
BUG=None
Change-Id: I32cbcd4daa1f386654ea5e8f0a25d8635b5df731
Reviewed-on: https://chromium-review.googlesource.com/402016
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a284f2ff
|
2015-08-07T16:49:07
|
|
Add stubs for EGL_EXT_swap_buffers_with_damage.
BUG=512090
Change-Id: I9413d6f5c13b9ea59ab9c923dc6c5d157f344166
Reviewed-on: https://chromium-review.googlesource.com/291652
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f0173153
|
2016-10-17T09:05:03
|
|
Forbid shared and packed layouts in WebGL
WebGL 2.0 spec section 5.25 specifies this.
BUG=angleproject:1542
TEST=WebGL 2 conformance tests
Change-Id: Ic5758bc0e767a8e6dd032e42c0a69bcae06381c4
Reviewed-on: https://chromium-review.googlesource.com/399682
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
250ae902
|
2016-10-20T16:32:03
|
|
Remove unused function getInterpolationString
BUG=
Change-Id: I4135f4ae939043efa8ccab65ef1a5eb441370828
Reviewed-on: https://chromium-review.googlesource.com/401673
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
cf255eac
|
2016-10-20T11:39:09
|
|
Implement robust the GetIntegeri_v entry point.
BUG=angleproject:1354
Change-Id: I408d0e78064aa4e493d6ca66565384ac585040e1
Reviewed-on: https://chromium-review.googlesource.com/401400
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
496c02df
|
2016-10-20T11:38:11
|
|
Implement robust the GetBufferPointerv entry point.
BUG=angleproject:1354
Change-Id: Id7dd8438224adb1e2729bcdc18a306e5dfc83a3b
Reviewed-on: https://chromium-review.googlesource.com/401399
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0a9661f2
|
2016-10-20T10:59:20
|
|
Implement robust the GetInternalFormativ entry point.
BUG=angleproject:1354
Change-Id: Ib25fe4905fdd6c532c67de1d4ca1ba37932f8e0b
Reviewed-on: https://chromium-review.googlesource.com/401149
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
635671dc
|
2016-10-20T07:57:36
|
|
Fix pruning empty declarations from loop headers
Empty declarations are possible in loop init expressions. Make
PruneEmptyDeclarations take this into account.
BUG=angleproject:1550
TEST=angle_unittests
Change-Id: If407babf9b6f7a26dfcf73ff345493d3e2af3f9a
Reviewed-on: https://chromium-review.googlesource.com/401147
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
14ac0d77
|
2016-10-20T16:17:46
|
|
Remove break after a return in switch block
BUG=
Change-Id: I5f36d5c51aa3eb6d498ff21733e67de418c26386
Reviewed-on: https://chromium-review.googlesource.com/401164
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9e77ce35
|
2016-09-27T17:05:44
|
|
Prevent fallback on default branch for case EbtSamplerCubeShadow
BUG=angleproject:1549
Change-Id: I8f003257b6f39282cb52ccdbacb73860ab37c919
Reviewed-on: https://chromium-review.googlesource.com/390271
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
ebebe1c7
|
2016-10-14T12:01:31
|
|
Implement robust GetBufferParameter entry points.
BUG=angleproject:1354
Change-Id: I979c8768975380dba7f0b256b2729b2147ff7984
Reviewed-on: https://chromium-review.googlesource.com/399042
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6899b87f
|
2016-10-14T11:30:13
|
|
Implement the robust GetActiveUniformBlockiv entry point.
BUG=angleproject:1354
Change-Id: I2e8051910f50dc040f6be4922142364d36788c4e
Reviewed-on: https://chromium-review.googlesource.com/399041
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c52f6f1a
|
2016-10-14T10:18:00
|
|
Implement remaining robust TexImage entry points.
BUG=angleproject:1354
Change-Id: Ied04fa28387f3bef9f2bead7b60878b1a353c8bd
Reviewed-on: https://chromium-review.googlesource.com/399039
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2186c385
|
2016-10-14T10:54:54
|
|
Implement robust GetQuery entry points.
BUG=angleproject:1354
Change-Id: Ic1aaab56d2313a19fb0362f280dbfbf804fb3fcc
Reviewed-on: https://chromium-review.googlesource.com/399040
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b2792db1
|
2016-10-07T11:21:09
|
|
translator: Reject invalid combination of compile flags
ADD_AND_TRUE_TO_LOOP_CONDITION breaks loop unrolling because LoopInfo
expects the loop condition to have been validated to be "symbol < constant"
and stayed that way.
BUG=chromium:653454
BUG=chromium:653694
Change-Id: I2057fde3a308623bd2dd7571ee878dd42b1fdac3
Reviewed-on: https://chromium-review.googlesource.com/395306
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
e9e573bd
|
2016-10-14T17:08:57
|
|
Fix typo EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE vs EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE
Change-Id: I192c4223e3fdefb7cecf96b50bc70529519ca650
Reviewed-on: https://chromium-review.googlesource.com/399678
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2e43dbb7
|
2016-10-14T12:27:35
|
|
Implement remaining robust Get entry points.
BUG=angleproject:1354
Change-Id: I204962a7178d47a43034d0213c81b82d8f6a25be
Reviewed-on: https://chromium-review.googlesource.com/399043
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c0281d46
|
2016-10-17T15:19:01
|
|
HandleAllocator: make HandleRange inclusive.
Previously part of the code saw it as [begin, end) while others saw it
as [begin, end].
BUG=angleproject:1052
BUG=chromium:656485
Change-Id: Id8e9e26b167e02a07dfc5341569df53a14d0623d
Reviewed-on: https://chromium-review.googlesource.com/399565
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
4db7ded5
|
2016-10-13T12:23:11
|
|
Change comma nodes to TIntermBinary
Comma nodes always have just two parameters. If there's an expression
with several commas in the middle, it's parsed as a tree of comma
operations. It makes more sense to represent it as a binary node
rather than an aggregate node.
After this patch, TIntermAggregate is still used for function
prototypes, function parameter lists, function calls, and variable and
invariant declarations.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I66be10624bf27bcf25987b4d93958d4a07600771
Reviewed-on: https://chromium-review.googlesource.com/397320
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
13e4d21b
|
2016-10-13T11:50:27
|
|
Add switch and case node support to intermediate output
After this all node types are printed correctly in intermediate
output.
BUG=angleproject:1544
TEST=shader_translator -i
Change-Id: I5c120b0ff69f66b00db88e8423a1c698d339af22
Reviewed-on: https://chromium-review.googlesource.com/397319
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0b031061
|
2016-10-13T14:30:04
|
|
Implement robust GetVertexAttrib entry points.
BUG=angleproject:1354
Change-Id: Ic71392555ae4212c4144bc67d7c5e53874af4d53
Reviewed-on: https://chromium-review.googlesource.com/398198
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
336b1470
|
2016-10-05T16:37:55
|
|
Split TIntermFunctionDefinition from TIntermAggregate
This makes the code easier to understand. Function definition nodes
always have just two children, the parameters node and the function
body node, so there was no proper reason why they should be aggregate
nodes.
As a part of this change, intermediate output is modified to print
symbol table ids of functions so that debugging function id related
functionality will be easier in the future.
After this patch, TIntermAggregate is still used for function
prototypes, function parameter lists, function calls, variable and
invariant declarations and the comma (sequence) operator.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ib88b4ca5d21abd5f126836ca5900d0baecabd19e
Reviewed-on: https://chromium-review.googlesource.com/394707
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
138ec92f
|
2016-10-10T17:38:55
|
|
Fix and re-enable EGLSyncControlTest.SyncValuesTest
It looks like the problem was not making the OS Window visible.
It turned out the previous version of the test succeeded only
when I ran angle_end2end_tests.exe with
--gtest_filter=EGLSyncControlTest.SyncValuesTest and failed
when I ran all tests, especially with --single-process-tests.
I tested the modified version of the test which repeated the
measurement 50 times and couldn't get a reliable test execution
until I figured out that back buffers were queueing and not
swapping successfully with the window being invisible.
This version works reliably when running all angle_end2end_tests.exe
on my workstation and on a test laptop, both running Windows 10,
with or without --single-process-tests.
BUG=angleproject:1402
Change-Id: I97764a86b20119cc586ea2a4fd1d94558c4e737e
Reviewed-on: https://chromium-review.googlesource.com/397739
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
|
|
7835b525
|
2016-10-08T11:20:17
|
|
Reland "Add workaround for unused std140 and shared uniform blocks on MacOS"
On some Mac drivers with shader version 4.1, they will
treat unused std140 and shared uniform blocks' members as inactive. However,
WebGL2.0 based on OpenGL ES3.0.4 requires all members of a named uniform block
declared with a shared or std140 layout qualifier to be considered active.
The uniform block itself is also considered active.
This workaround is to reference all members of unused std140 and shared uniform blocks
at the beginning of the vertex/fragment shader's main().
BUG=chromium:618464
TEST=UniformBufferTest.ActiveUniformBlockNumber
Change-Id: I18da4e2b61b0170068bf5ea38ce54667b0737780
Reviewed-on: https://chromium-review.googlesource.com/395648
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f7417801
|
2016-10-12T17:59:31
|
|
FramebufferGL: only work around SRGB blits on Desktop GL
BUG=angleproject:1492
Change-Id: I6c210243dffb775efd61c33160dabcbf7406a757
Reviewed-on: https://chromium-review.googlesource.com/397798
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c1984ed4
|
2016-10-07T12:41:00
|
|
Implement robust TexParameter and SamplerParameter entry points.
BUG=angleproject:1354
Change-Id: I3aa2dcb8603a839f9c07cd9dd41cb695d2e699f2
Reviewed-on: https://chromium-review.googlesource.com/395529
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bd674557
|
2016-10-06T13:28:42
|
|
Separate function info from TIntermAggregate
This change will make it easier to split types of TIntermAggregate
nodes representing functions and function calls into different node
classes.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I730aa7858fe31fda86218fc685980c6ad486f5e0
Reviewed-on: https://chromium-review.googlesource.com/394706
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
bd3f8780
|
2016-10-12T17:05:24
|
|
Fix GCC 5.4 compilation error when parsing the __clang__ macro
The __clang__ macro cannot be directly used with an #if directive if it
has not been defined. This causes a compilation error under GCC 5.4
Linux.
Change-Id: Ieca752cd9f0e90c82febc35e19e1c1f3c6096de1
Reviewed-on: https://chromium-review.googlesource.com/397220
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
476197f9
|
2016-10-11T13:59:08
|
|
Clean up TSymbol initialization
Now TSymbol objects always get their id when they are constructed. The
id cannot be changed after the TSymbol is created.
This makes it simpler to insert both mangled and unmangled versions of
a function to the symbol table. These can now both share the same
TSymbol object, unlike before, when inserting the same symbol twice
would have changed its symbol id.
This requires changes to function definition parsing: function
definition nodes now share any symbol created by previous prototype
declarations of the function. The parameters on the symbol get set to
the parameters in the function definition header.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I8e600e9b5e5de27d64b85c5042cfd23ff02abe63
Reviewed-on: https://chromium-review.googlesource.com/396838
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0b94528b
|
2016-10-11T08:48:52
|
|
Fix synchronization of workaround dirty bits in TextureGL.
The local dirty bits were sometimes not synced because gl::Texture doesn't
know that they exist. Also fix calculation of when the workaround dirty
bits need to be set.
BUG=angleproject:1386
Change-Id: I3d9d1a01e5441be783190422093c485ea5da7aec
Reviewed-on: https://chromium-review.googlesource.com/396542
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f41d0ee1
|
2016-10-07T13:04:23
|
|
Implement robust GetUniform entry points.
BUG=angleproject:1354
Change-Id: I07dccc470c57aadd41cae8fce327e4aca58a0bea
Reviewed-on: https://chromium-review.googlesource.com/395113
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4310354e
|
2016-10-10T12:28:13
|
|
Handle corner cases of shifting signed integers better
Right-shifting a negative number should sign-extend according to the
ESSL 3.00.6 spec. Implement sign-extending right shift so that it
doesn't hit any undefined behavior in the C++ spec. Negative lhs
operands are now allowed for bit-shift right.
Also implement bit-shift left via conversion to unsigned integer, so
that it does not hit signed integer overflow. Negative lhs operands
are now allowed also for bit-shift left as well.
BUG=chromium:654103
TEST=angle_unittests
Change-Id: Iee241de9fd0d74c2f8a88219bddec690bb8e4db2
Reviewed-on: https://chromium-review.googlesource.com/395688
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
894a6343
|
2016-10-11T14:54:51
|
|
Add missing override identifier for getSequence
Fixed the compiling error in Mac by adding missing override identifier
for getSequence.
BUG=angleproject:1490
TEST=compile on macOS Sierra 10.12
Change-Id: I8f8d556c82885bbee1712e1b6e5f439b67906023
Reviewed-on: https://chromium-review.googlesource.com/396403
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
d7d0ed32
|
2016-10-07T11:33:51
|
|
Implement robust GetShaderiv entry points.
BUG=angleproject:1354
Change-Id: I994b7a596b5b67fadbd91ad0d64054c792523200
Reviewed-on: https://chromium-review.googlesource.com/395111
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f2f6f65f
|
2016-10-05T19:53:23
|
|
Add cross-platform Workarounds to Context.
These are distinct from the renderer-level workarounds.
Add the first workaround, loseContextOnOutOfMemory. This is enabled
when the application enables reset notifications via KHR_robustness,
and is intended for more robust handling of errors in key APIs for
Chromium's correctness (in particular, sync objects).
Change Context::getResetStatus to persistently return the "lost" status
if it was set by calling Context::markContextLost. Previously, if
markContextLost was called but the implementation hadn't actually
received an error like a lost device, the "lost" reset status would be
dropped. Returning it only once to the caller is also fragile. Tested
this by manually injecting a failure in FenceSync11::clientWait and
ensuring that Chromium detected it as expected.
BUG=chromium:650138
Change-Id: Ie53069eacd1754ad5d64936e3fef315af24605fa
Reviewed-on: https://chromium-review.googlesource.com/394233
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f8fd2bd3
|
2016-10-10T14:08:59
|
|
Add missing virtual destructor on TIntermAggregateBase
BUG=angleproject:1490
TEST=build on Linux GCC
Change-Id: I64f53d636d4acee0469b6e9ba1201322087d5f65
Reviewed-on: https://chromium-review.googlesource.com/395732
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6d40bbdd
|
2016-09-30T13:49:38
|
|
Split TIntermBlock from TIntermAggregate
The new TIntermBlock node class replaces TIntermAggregate nodes with
the EOpSequence op. It represents the root node of the tree which is
a list of declarations and function definitions, and any code blocks
that can be denoted by curly braces. These include function and loop
bodies, and if-else branches.
This change enables a bunch of more compile-time type checking, and
makes the AST code easier to understand and less error-prone.
The PostProcess step that used to be done to ensure that the root node
is TIntermAggregate is removed in favor of making sure that the root
node is a TIntermBlock in the glslang.y parsing code.
Intermediate output formatting is improved to print the EOpNull error
in a clearer way.
After this patch, TIntermAggregate is still used for function
definitions, function prototypes, function parameter lists, function
calls, variable and invariant declarations and the comma (sequence)
operator.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I04044affff979a11577bc1fe75d747e538b799c8
Reviewed-on: https://chromium-review.googlesource.com/393726
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a7418361
|
2016-10-08T18:03:26
|
|
Disabling EGLSyncControlTest.SyncValuesTest
Disabling EGLSyncControlTest.SyncValuesTest for now until I can get
it stable on Windows 8.
BUG=angleproject:1402
Change-Id: I21a770e0f8516916c6987ba66ec49762cd99b78a
Reviewed-on: https://chromium-review.googlesource.com/395577
Reviewed-by: Stanislav Chiknavaryan <stanisc@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
|
|
8234e7b3
|
2016-10-07T15:12:10
|
|
Refactor some errors into ANGLE_TRY macros.
BUG=None
Change-Id: I00ff2523995cb49d1af60cae62c2bba0d020eed4
Reviewed-on: https://chromium-review.googlesource.com/395569
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ef300b15
|
2016-10-07T15:12:09
|
|
Refactor some entry point stuff.
BUG=angleproject:747
Change-Id: I80634b5e6de8bae1433c49a56a92d3b19c24e11d
Reviewed-on: https://chromium-review.googlesource.com/395568
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
740d9020
|
2016-10-07T11:20:52
|
|
Implement robust GetRenderbufferParameteriv entry points.
BUG=angleproject:1354
Change-Id: I073b75d416bd5184402b580bcebfca34f7cd28a8
Reviewed-on: https://chromium-review.googlesource.com/395110
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
62fce5b1
|
2016-09-30T10:46:35
|
|
Implement robust ReadPixels entry points.
BUG=angleproject:1354
Change-Id: I70738d2f00e283ddc52b1545f8efda9022110487
Reviewed-on: https://chromium-review.googlesource.com/391090
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d258ca04
|
2016-10-07T11:19:04
|
|
Fix EGLSyncControlTest.SyncValuesTest timeout on Windowse Server 2012 R2
The test does two buffer swaps and polls sync values waiting for sbc
(swap buffer counter) value to first increase from 0 to 1, then from 1
to 2.
Looking the error log I see that sometimes it fails on the first wait
and sometimes on the second wait. Also the total runtime varies between
1000 and 1600 ms. That makes me think that perhaps test doesn't poll
long enough to run reliably on a test machine.
I've increased the number of poll iteration to 500 and the sleep between
iterations - to 10 ms (I think in reality it was 10 ms already because
the previously used 1 ms is only possible with high resolution system
timer).
BUG=angleproject:1402
Change-Id: I8f6fe209756a1597e2739390352c90d893eaf940
Reviewed-on: https://chromium-review.googlesource.com/395506
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e61d3045
|
2016-10-07T13:20:52
|
|
Don't write to the <length> parameter if an error is generated.
BUG=angleproject:1354
Change-Id: I9ed4a675b2be07b00c29d34e283280dc65238fea
Reviewed-on: https://chromium-review.googlesource.com/395109
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e9e8a899
|
2016-10-07T10:24:52
|
|
D3D11: Fix some format support entries.
On Intel these were seeingly missing or erroneous.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I4410407ce1171f420b275c7662896f5b26a949c2
Reviewed-on: https://chromium-review.googlesource.com/395168
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
08e229e7
|
2016-10-05T17:16:13
|
|
translator: Return null uniform map if no HLSL.
This replaces the global empty map.
BUG=angleproject:1459
Change-Id: If7d824cbf4492e722cbf99d1045402a26535af5c
Reviewed-on: https://chromium-review.googlesource.com/394236
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
76648fe2
|
2016-10-05T17:01:41
|
|
Constexpr-fy the ES3 effective format map.
This removes the global std::vector constructor here.
BUG=angleproject:1459
Change-Id: I407a7bda1f8f8a2dd8d5b0e847573f8594eccf39
Reviewed-on: https://chromium-review.googlesource.com/394235
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
22416868
|
2016-06-08T16:14:36
|
|
Add dirty bits for internal texture state.
Synchronize TextureGL internal state using the dirty bits.
TexturesBenchmark scores:
Before: 5051
After: 7639
Diff: +51.2%
BUG=angleproject:1386
Change-Id: Id04aef778a47175d1a284564495a646045855b4b
Reviewed-on: https://chromium-review.googlesource.com/393866
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
47110bf4
|
2016-04-20T11:13:22
|
|
Implement CHROMIUM_copy_compressed_texture for D3D11.
BUG=angleproject:1356
Change-Id: Id563997d2921cf558c52a781ae66d8bde58d1f2f
Reviewed-on: https://chromium-review.googlesource.com/339847
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
55e98210
|
2016-10-05T16:39:13
|
|
Make global ES3 formats STL map a switch.
This eliminates another global std::map, and replaces it with a json
generated switch. This should be better for threading, better on
memory use, and faster.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I1d289637c00783690ec8ea743ea2aa17b0ab8e50
Reviewed-on: https://chromium-review.googlesource.com/394234
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5878f832
|
2016-10-07T10:14:58
|
|
Fix formatting of OutputHLSL::visitAggregate
Subsequent refactoring of this code will be easier to review if there
won't be unrelated style changes that git cl format insists on doing.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I102fd73bd92317ab438e1676422212f644d2859b
Reviewed-on: https://chromium-review.googlesource.com/394649
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b7fe49db
|
2016-10-05T16:39:11
|
|
D3D11: Fold mipmap gen caps into the support table.
This change is two-fold: first it allows us to remove the std::map for
D3D11 format info, which was only being used in a single place.
Secondly, it fixed the support table to use the correct 9_3 caps for
texture support, determined by running the D3D11FormatTablesTest.
This should reduce the number of format queries we need to run on 9_3
startup.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I2435a47fc221e73c96337bc7c1c4ed37b527bc1f
Reviewed-on: https://chromium-review.googlesource.com/392210
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e0548ad2
|
2016-10-06T15:55:35
|
|
D3D11: Split off DXGI component type query.
This query is currently a part of a std::map. Split it off to its
own switch using auto-generation based on the format string.
Also introduce a DXGI-to-angle format map. This map is not totally
complete because some more esoteric formats don't have corresponding
ANGLE formats yet. We should add these other formats (EG NV12) if we
need them.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I49e045bdc04a52166299c9e22a4c4d3f24069dbc
Reviewed-on: https://chromium-review.googlesource.com/392209
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
65c79dbc
|
2016-10-06T17:11:28
|
|
Clean up RecordConstantPrecision interaction with switch/case
There were two bugs here that were masking each other:
1. Case nodes were not being added to AST traversal path.
2. RecordConstantPrecision did not check if a constant was a child of
a case node.
Fix these.
BUG=angleproject:1490
TEST=WebGL 2 conformance tests
Change-Id: Ic6cb7942bf57870fa26eb6a011919a2d7951cc85
Reviewed-on: https://chromium-review.googlesource.com/394588
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5d9f5df0
|
2016-09-27T13:28:25
|
|
Implementation of eglGetSyncValuesCHROMIUM extension.
This change adds implementation of eglGetSyncValuesCHROMIUM extension
on D3D11 with Direct Composition. This should work on Windows 8.1 and
above.
The implementation is based on IDXGISwapChain::GetFrameStatistics.
Extension documentation:
https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt
BUG=angleproject:1402
Change-Id: I306434dd8d85d618b14edfa38fc2a22e50fddacc
Reviewed-on: https://chromium-review.googlesource.com/390351
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
873d00f4
|
2016-10-06T13:05:57
|
|
Change UNREACHABLE to use ASSERT.
The ASSERT macro is enabled with ANGLE_RELEASE_ASSERT, so we should
use the same behaviour as the normal ASSERT for the other debug
macros.
Also remove UNREACHABLEs in the format validation code that were
being hit silently.
Also make some EGL tests skip instead of fail, since they were hitting
UNIMPLEMENTED.
BUG=angleproject:1332
BUG=angleproject:1540
BUG=angleproject:1340
Change-Id: Ie3347f2bf2459a5831b66827871998d8fbe7d4b2
Reviewed-on: https://chromium-review.googlesource.com/392490
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d569619d
|
2016-10-06T11:09:24
|
|
translator: Fail compilation if precision emu unsupported.
The fuzzer uncovered a case where we were trying to emulate precision
on HLSL 3.0, causing an ASSERT crash.
BUG=chromium:653276
Change-Id: I2e666a1ff4f605541e25f04264146063559cb835
Reviewed-on: https://chromium-review.googlesource.com/394237
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b7d40b3
|
2016-10-06T11:41:02
|
|
translator: Avoid divide-by-zero in error case.
In some code path found by a fuzzer, we would have a zero sized
array, which would trigger a zero divide. I was unable to extract
the failing shader from the fuzzer case trivially.
BUG=chromium:653274
Change-Id: Ia2558ae828fa73615c901fd1cda9ddaa3a72f1a9
Reviewed-on: https://chromium-review.googlesource.com/394238
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
26a717b0
|
2016-09-27T08:45:42
|
|
GL: Emulate SRGB blits where needed.
Desktop OpenGL before 4.4 doesn't handle SRGB blits the same way OpenGL
ES does. Emulate them by drawing a quad.
BUG=angleproject:1492
BUG=chromium:634525
Change-Id: I9f2992d9b373941b10f19f8a51564f0f756cc4df
Reviewed-on: https://chromium-review.googlesource.com/389853
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
b80a5e9c
|
2016-10-05T16:39:09
|
|
Store channel bits info in angle::Format.
This allows us to delete some duplicated code in the D3D11-side.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: Ifdcfcd4a56e06ff2ae8f5ca0bda72281d52c2964
Reviewed-on: https://chromium-review.googlesource.com/392208
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
91db32c5
|
2016-10-06T09:31:53
|
|
Skip TimerQueriesTest.TimeElapsedMulticontextTest on Win/AMD/GL/Debug.
This test appears to be flaky.
BUG=angleproject:1541
Change-Id: I2a91626f6dc309d2dc23098cbaf290adac7f4859
Reviewed-on: https://chromium-review.googlesource.com/394217
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a015f59f
|
2016-10-06T10:19:32
|
|
Skip UniformBufferTest.VeryLarge on Intel D3D11.
This fails because of issues with Intel UBOs and copying.
BUG=chromium:651493
BUG=chromium:593024
Change-Id: Ia4c634ebecd29082927a9a812929c102d0d629b2
Reviewed-on: https://chromium-review.googlesource.com/394131
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
601a0ccc
|
2016-10-06T14:38:43
|
|
Revert "Skip TimerQueriesTest.TimeElapsed on Win/AMD/GL/Debug."
The correct test was the multi-context version.
BUG=angleproject:1541
This reverts commit d0614b852154da7a9968e2f6b1a775fc469dc83b.
Change-Id: I4f4a9e3b1e0301eef34ce8c06cd649bff66fcdb1
Reviewed-on: https://chromium-review.googlesource.com/394216
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d0614b85
|
2016-10-06T09:31:53
|
|
Skip TimerQueriesTest.TimeElapsed on Win/AMD/GL/Debug.
This test appears to be flaky.
BUG=angleproject:1541
Change-Id: I947dbc759e0fef505ce9b11e501f2dbe35ff1e5c
Reviewed-on: https://chromium-review.googlesource.com/394329
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ed4d342e
|
2016-10-03T15:45:35
|
|
Make the "FormatMap" a static switch.
This map lives in formatutils.cpp, and maps from a {format,type} to
an internal format. Convert this into generated code.
BUG=angleproject:1389
Change-Id: Ib12750d83d3f8cf8794d6668874cb025f856b5d4
Reviewed-on: https://chromium-review.googlesource.com/392207
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
168445c2
|
2016-09-23T16:33:22
|
|
Add an extension for requesting a NULL Display.
BUG=angleproject:1468
Change-Id: Ief4b0e7d7a0420e59e547cd24fde53deb3718ccb
Reviewed-on: https://chromium-review.googlesource.com/388845
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d08f3b3d
|
2016-09-23T15:56:30
|
|
Add stubs for a NULL renderer.
BUG=angleproject:1468
Change-Id: I2ed2b65a4b6f6ea3dda61c0467aef95e407cd38c
Reviewed-on: https://chromium-review.googlesource.com/388844
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
32db19b7
|
2016-10-04T14:43:16
|
|
Ensure that if-else branches are always sequence nodes
This mainly affects RewriteElseBlocks, which was the only piece of
code still adding TIntermIfElse nodes directly as children of other
TIntermIfElse nodes.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I5b25c2fb9c642424417cd6c29e37c20482c6ffaf
Reviewed-on: https://chromium-review.googlesource.com/392847
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
18319182
|
2016-09-28T14:22:27
|
|
Re-land "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)"
BUG=angleproject:1332
Change-Id: Ie970466c4528cb80b2363d0c0683da2d9c23c4f4
Reviewed-on: https://chromium-review.googlesource.com/392267
Commit-Queue: John Bauman <jbauman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7f9a55f7
|
2016-10-03T14:32:08
|
|
Fix integer math overflows in the preprocessor
Evaluating integer expressions in the ESSL preprocessor may result in
overflowing the signed integer range. Implement wrapping overflow for
preprocessor expressions in a way that doesn't hit any undefined
behavior. In the ESSL spec, preprocessor expressions are defined to
have mostly the same semantics as in C++. Since C++ doesn't define
what happens on signed integer overflow, we choose to make most of the
operators wrap on overflow for backward compatibility and consistency
with the rest of the ESSL spec.
We reuse the existing wrapping overflow helpers that are
used for constant folding. To be able to do this, the type used in the
preprocessor expression parser is changed from 64-bit to 32-bit.
Shifting negative numbers is implemented as a logical shift. This
cannot be disallowed since dEQP requires shaders shifting negative
numbers to pass compilation.
Undefined bitwise shifts where the offset is greater than 31 will now
result in a compile-time error.
A couple of test cases are now covered by the preprocessor tests
rather than full compilation tests. This isolates the tests better and
they run faster.
BUG=chromium:652223
TEST=angle_unittests
Change-Id: I84be40d404c10ecd0846c5d477e626a94a2a8587
Reviewed-on: https://chromium-review.googlesource.com/392146
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4c655248
|
2016-10-04T10:27:21
|
|
D3D11: Fix unreferenced XFB vars getting dropped.
Our for-loop logic was confused so that some unreferenced
transform feedback varyings might get dropped.
BUG=chromium:651493
Change-Id: Id283230da0a47fc647b2a3862da60be5538e439e
Reviewed-on: https://chromium-review.googlesource.com/391945
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0e48719f
|
2016-10-03T16:30:38
|
|
formatutils: allow reusing rowPitch computation for depthPitch
This should fix a null D3D11 backend draw call performance regression.
BUG=651101
Change-Id: I2eb10cddd15f0e7b25b886c89eccd2906e988c72
Reviewed-on: https://chromium-review.googlesource.com/392227
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
2549e74e
|
2016-10-03T10:59:21
|
|
Only expose the EGL robutness extensions when the native GL context has them.
On some drivers, the WGL_ARB_create_context_robustness extension is present but
the created context does not expose the extensions. Be more defensive and only
expose robustness if we're able to create contexts that have it.
BUG=angleproject:1538
Change-Id: I3d02b2071c7b2c576abe66cc283cee467e400fd3
Reviewed-on: https://chromium-review.googlesource.com/391833
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: John Bauman <jbauman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4431804
|
2016-10-03T15:41:38
|
|
D3D11: Fix Buffer11::copyFromStorage and UBOs.
The change to initialize a constant buffer immediately after
calling BufferData in D3D11 led to a bug where we would map
the UBO for writing with the wrong map bits. Fix this by
using the same map method as the rest of the code.
The D3D11 runtime seems to allow arbitrarily large constant buffers
on Windows 10, but not Windows 7. Thus this CL also fixes a bug in
our constant buffer size clamping to not copy more than the available
buffer size for uniform buffers.
BUG=chromium:651493
Change-Id: I876767691d02db90ecb08a8fa78199f03339a35e
Reviewed-on: https://chromium-review.googlesource.com/391167
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f51fdd2e
|
2016-10-03T10:03:40
|
|
Ensure that all functions have a body node in the AST
Some traversers that insert code to main() assume that the main()
function has a non-null body node in place. This assumption was
previously wrong, since functions could be missing the body node
in case the function body was empty.
Fix possible invalid dereferencing of missing function body nodes by
always adding an empty sequence node to represent the body of
functions that have an empty body in the ESSL source. This also
enables simplifying some tree traversers that used to take the
possibility of missing function body nodes into account.
Also fix AddDefaultReturnStatements to check the last statement inside
the function body for a return statement, instead of checking the
first statement.
BUG=angleproject:1539
TEST=angle_unittests, angle_end2end_tests
Change-Id: I2fbd18c78653fa2f1a96dbd9a619accc4874030d
Reviewed-on: https://chromium-review.googlesource.com/392046
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
c9e6026c
|
2016-09-30T17:15:07
|
|
Revert "Add workaround for unused std140 and shared uniform blocks on MacOS"
This reverts commit 9aa83fe302578d226f195fff5fb3f0e2fb723a4c.
The new test UniformBufferTest.ActiveUniformNumberAndName/ES3_OPENGL is failing on multiple platforms. Examples:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28ATI%29/builds/12285
https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20(ATI)
Change-Id: I78b1a4d58e9a291e40ad304eb32f990e0518f7ee
Reviewed-on: https://chromium-review.googlesource.com/391049
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
5dc37d05
|
2016-10-01T00:00:19
|
|
Revert "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)"
This reverts commit ca40662aa81f7735d3510fa52e55d28503c7f9ec.
https://chromium.googlesource.com/angle/angle/+/ca40662aa81f7735d3510fa52e55d28503c7f9ec broke angle_end2end_tests on the Win Debug bots. Examples:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Debug%20%28NVIDIA%29/builds/18718
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Debug%20%28NVIDIA%29/builds/15905
Tests failing:
Texture2DTest.QueryBinding/ES2_D3D11
Texture2DTest.QueryBinding/ES2_D3D9
Texture2DTest.QueryBinding/ES2_D3D11_9_3
Change-Id: If9da864f49e0de3a134d43ae36c2a99e9b5a2a53
Reviewed-on: https://chromium-review.googlesource.com/391130
Reviewed-by: John Bauman <jbauman@chromium.org>
|
|
389dc9d4
|
2016-09-08T09:34:58
|
|
Test filling small mips of ETC textures.
BUG=angleproject:1510
Change-Id: I9ed7c877767909ba93e2ea5ef09c4735b0d0bcc7
Reviewed-on: https://chromium-review.googlesource.com/382652
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ca40662a
|
2016-09-28T14:22:27
|
|
Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)
BUG=angleproject:1332
Change-Id: I591b9520bc1122eb6232803ac86b6d0322f8c349
Reviewed-on: https://chromium-review.googlesource.com/390323
Commit-Queue: John Bauman <jbauman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ff5b2d51
|
2016-09-07T11:32:23
|
|
Add a GL_ANGLE_robust_client_memory extension.
This allows specifying data size to all GL functions that provide a pointer to
client memory and a length parameter for all functions in which the driver
writes to client memory.
BUG=angleproject:1354
Change-Id: Ia68be1576b957cb529c87b5e0d1bd638c7dbd371
Reviewed-on: https://chromium-review.googlesource.com/382012
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5eeff0e4
|
2016-09-27T17:56:42
|
|
Fix ETC->DXT small mip transcode crash.
BUG=angleproject:1510
Change-Id: I42355607235a05fe276342084acd1eb359c16de4
Reviewed-on: https://chromium-review.googlesource.com/390414
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
b6fa043d
|
2016-09-28T16:28:05
|
|
Split vector swizzle AST nodes into a different node class
This avoids creating a weird aggregate node with a sequence of
constant union nodes to store the offsets. They're stored neatly
inside a vector instead. This makes code that needs to iterate
over the swizzle offsets much simpler.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I156b95723529ee05a94d30295ffb6d0952a98564
Reviewed-on: https://chromium-review.googlesource.com/390832
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
fde9d8c1
|
2016-07-28T10:53:19
|
|
D3D11: Add null check to Renderer11::testDeviceLost.
After experiencing a device loss, Renderer11::resetDevice can fail to
recreate mDevice, leaving it null. In a following call to
testDeviceLost, mDevice will be dereferenced, causing a segfault.
BUG=angleproject:1457
Change-Id: Ib5be64542929441ceb7088a328c3245ae7e52f17
Reviewed-on: https://chromium-review.googlesource.com/364120
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9aa83fe3
|
2016-09-29T08:42:42
|
|
Add workaround for unused std140 and shared uniform blocks on MacOS
On some Mac drivers with shader version 4.1, they will
treat unused std140 and shared uniform blocks' members as inactive. However,
WebGL2.0 based on OpenGL ES3.0.4 requires all members of a named uniform block
declared with a shared or std140 layout qualifier to be considered active.
The uniform block itself is also considered active.
This workaround is to reference all members of unused std140 and shared uniform blocks
at the beginning of the vertex/fragment shader's main().
BUG=chromium:618464
TEST=UniformBufferTest.ActiveUniformBlockNumber
Change-Id: I1d2c5e3e8da04786ac6a37fd26f7bb9c14cd76ed
Reviewed-on: https://chromium-review.googlesource.com/387169
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
886de369
|
2016-09-27T10:49:35
|
|
Factor code between PixelUnpackState and PixelPackState
BUG=angleproject:1512
Change-Id: I4c60472d216bfc5198e635d70fd197a5738dde98
Reviewed-on: https://chromium-review.googlesource.com/390133
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6f0a0dca
|
2016-09-27T13:51:29
|
|
Workaround isnan() on Intel drivers
On some Intel drivers, calling function isnan() on highp float will get wrong
answer. This patch work arounds this bug by using an expression to emulate
this function.
BUG=chromium:650547
Change-Id: I5bc5e0352c434f42cd2c55103a74f9f7ba51a72c
Reviewed-on: https://chromium-review.googlesource.com/389834
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
42fad76d
|
2016-09-28T10:06:29
|
|
Handle negation of minimum representable integer
Negating the minimum representable integer overflows, so it
has undefined behavior in C++. Handle this as a special case in the
code.
BUG=chromium:637050
TEST=angle_unittests
Change-Id: Ic6e6d638faddad9b70b5d1637bb4b42ef4f43784
Reviewed-on: https://chromium-review.googlesource.com/390551
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
1be4d493
|
2016-09-27T11:15:38
|
|
Fix handling integer overflow in constant folding
Integer operations that overflow are defined to wrap in the ESSL
3.00.6 spec. Constant folding that happens inside the shader
translator should also follow the wrapping rules.
The new implementations of wrapping integer addition and subtraction
use unsigned integers to perform calculations. Unsigned integers are
defined to implement arithmetic in modulo 2^n in the C++ spec. This
behavior is also leveraged to implement wrapping unsigned integer
multiplication.
The implementation of wrapping signed integer multiplication is
slightly trickier. The operands are casted to a wider type to perform
the multiplication in a way that doesn't overflow, and then the result
is truncated and casted back to the narrower integer type.
Incorrect tests that expected errors to be generated from integer
overflow in constant folding are removed.
BUG=chromium:637050
TEST=angle_unittests
Change-Id: I0de7e25881d254803455fbf22907c192f49d09ff
Reviewed-on: https://chromium-review.googlesource.com/390252
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9a8d366a
|
2016-09-22T12:18:29
|
|
FramebufferGL: add readPixels workarounds
Implements workarounds for:
- The pack state making rows overlap in memory, which causes crashes on
some drivers.
- The driver adding an extra last row padding when checking if the
pixel pack buffer is large enough for the readPixels.
BUG=angleproject:1512
Change-Id: I120ff58649bb523e8b01da6ef03d8fcadaf076b2
Reviewed-on: https://chromium-review.googlesource.com/388029
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0f40d235
|
2016-09-23T14:50:29
|
|
Add a perf test for changing texture state.
BUG=angleproject:1386
Change-Id: I44da3a4cb2b23f98978349f26b80d6bb3a6dc8b5
Reviewed-on: https://chromium-review.googlesource.com/388784
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d4453573
|
2016-09-27T13:21:46
|
|
Fix integer division constant folding corner cases
ESSL has undefined behavior when the integer modulus operator is used
on negative operands. Generate a warning and fold the result to zero
in this case.
In case the minimum representable signed integer is divided by -1, the
result is defined to be either the maximum or minimum representable
value. We choose to fold the calculation to the maximum representable
value in this case.
BUG=angleproject:1537
TEST=angle_unittests
Change-Id: I57fac6b54a3553b7a0f0e36cc6ba0ed59a88eea9
Reviewed-on: https://chromium-review.googlesource.com/390251
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ece7c5a8
|
2016-09-21T15:28:23
|
|
Add validation for the pack buffer in ReadPixels
BUG=angleproject:1512
Change-Id: Ia6bac628c35f04bc5d3adfde1569902475519698
Reviewed-on: https://chromium-review.googlesource.com/387668
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2cacb778
|
2016-09-26T08:50:40
|
|
Fix folding shifts when operands have different signedness
The code used to incorrectly assert that the right-hand side of shift
should have the same signedness as the left-hand side. Instead simply
assert that both the lhs and rhs are integer typed, and also don't
rely on aliasing via union when accessing bit shift operands.
Also disallow constant folded bit shifts where the right hand side is
greater than 31. Shifting with values greater than the width of the
type has undefined results in both ESSL and C++.
BUG=chromium:648135
TEST=angle_unittests
Change-Id: I84a99abc55f0eeda549b4781e954d17ba7b87552
Reviewed-on: https://chromium-review.googlesource.com/389351
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
054f7ed0
|
2016-09-20T17:15:59
|
|
preprocessor: Miscellaneous cleanups
- Use full header paths in includes
- Use ASSERT instead of assert
- Use angle::NonCopyable instead of PP_DISALLOW_COPY_AND_ASSIGN
- Use range-for in a couple places
- Remove pp_utils.h
BUG=angleproject:1522
Change-Id: If107fef89e8465bca65cf664926d1051c5d1e232
Reviewed-on: https://chromium-review.googlesource.com/387212
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6a0e4e52
|
2016-09-22T17:03:09
|
|
BlitGL: orphan scratch textures when we are done.
This will allow the OpenGL driver to reclaim GPU memory.
BUG=angleproject:1512
Change-Id: If063e1ff9f4a544012ca78c37e198054cb4edcac
Reviewed-on: https://chromium-review.googlesource.com/388771
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
00ff1194
|
2016-09-23T18:25:47
|
|
Disable DrawBuffersTest.Gaps on Windows AMD OpenGL
Fails on Win7 Release (AMD R7 240) bot
BUG=angleproject:1535
Change-Id: I5e8d0552867bfe0d81f3e189536c50b36f530089
Reviewed-on: https://chromium-review.googlesource.com/389233
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e8a78496
|
2016-09-22T13:08:39
|
|
D3D11: Restrict ES3 bits to FL 10.1.
We would advertise ES3 in some cases when we didn't support it.
BUG=angleproject:1381
BUG=chromium:649101
Change-Id: I2a5bbc1d6153cdfc6c9c577aa0b82caf8482a42d
Reviewed-on: https://chromium-review.googlesource.com/388190
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
32dd62b8
|
2016-09-23T14:09:06
|
|
Allow LINEAR filtering on OES_depth_texture formats.
The ES3 spec and this extension lead to some awkward interactions. The
extension doesn't mention allowed filtering modes, so be default it
allows both linear and nearest. ES3 however, very clearly restricts
any depth texture (any texture with effective internal format which
has depth or stencil bits) to only use nearest filtering. This then
breaks compatibility with the legazy unsized formats.
Choose to be slightly non-conformant here, and allow linear filtering
for the older unsized formats. Although this could lead to problems
down the line, it is consistent with existing ES drivers in practice.
Other future options might be to override the behaviour of the filter
to use nearest when using WebGL validation compatibility.
BUG=chromium:649200
Change-Id: I4ee7608dd04d1fd238385aefee32c8c9c1e80ca0
Reviewed-on: https://chromium-review.googlesource.com/388759
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
28a97ee1
|
2016-09-22T13:01:26
|
|
Generate unique HLSL texture function names for external textures.
Because 2D and external textures have the same HLSL texture type, they were
generating texture functions with the same name. This causes conflicts when
both 2D and external textures are used in the same shader.
BUG=angleproject:1534
BUG=645532
Change-Id: I4b324014b7d9b4851d358730cf4e31fc8461584c
Reviewed-on: https://chromium-review.googlesource.com/388551
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f41a7151
|
2016-09-19T15:11:17
|
|
Add an extension to disable resource generation on bind.
BUG=angleproject:1518
Change-Id: I662f7b07da5c97831496f2617b0adadf9858bdc9
Reviewed-on: https://chromium-review.googlesource.com/386799
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|