|
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>
|
|
44ebf6b4
|
2016-09-22T13:00:02
|
|
ConstantUnion: Error on undefined shift.
BUG=chromium:648135
Change-Id: I41581f63af650564a0f61c1baeeb38017c8513ed
Reviewed-on: https://chromium-review.googlesource.com/387470
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
1db8a26b
|
2016-09-22T13:53:47
|
|
Fix warning in standalone in new validation.
BUG=angleproject:1512
Change-Id: Ifdb8d4c38e3c90e03eee42ba9fd6390dffd61363
Reviewed-on: https://chromium-review.googlesource.com/388611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2bd9c443
|
2016-09-20T16:39:18
|
|
preprocessor: add a limit to the number of token expanded
BUG=angleproject:1522
BUG=chromium:648074
Change-Id: Ibf0858aaeb81933dd221ac82a49160169b48a495
Reviewed-on: https://chromium-review.googlesource.com/387211
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f607c60a
|
2016-09-21T11:46:48
|
|
Fix validation of ReadPixels format and type.
The validation for ReadPixels allows for two combations of format/type:
1. Based on the current framebuffer's component type.
* GL_RGBA/GL_UNSIGNED_BYTE if the framebuffer is a normalized (signed
or unsigned).
* GL_RGBA_INTEGER/GL_INTEGER if the framebuffer is an
integer format.
* GL_RGBA_INTEGER/GL_UNSIGNED_INTEGER if the framebuffer is an
unsigned integer format.
* GL_RGBA/GL_FLOAT if the framebuffer is any type of float
framebuffer (added in EXT_color_buffer_float).
* These combations are detailed in the ES2 spec on pg 105 or ES3 on pg
193.
2. The implementation read format/type returned from glGetIntegerv.
* These formats are added by specs, OES_texture_float, EXT_texture_rg,
EXT_read_format_bgra, etc.
Update the GL and D3D backends to perform the conversion from GL_HALF_FLOAT
to GL_HALF_FLOAT_OES.
Continue allowing reading as BGRA_EXT to support Skia. Should be removed in
the future.
BUG=607283
BUG=angleproject:1478
Change-Id: I0312cad4d5f138ab036f383d221f8ccd19a77f6d
Reviewed-on: https://chromium-review.googlesource.com/346232
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
1ce09ace
|
2016-09-21T10:43:38
|
|
D3D11: Free buffer staging storage when idle.
Using the same policy as for system memory storage, we release
the staging buffer if it has been unmodified for several uses.
We could further extend this technique to other storage buffers
using a nearly identical policy. We might need to mitigate the
cost of iterating over all the storages of all the buffers.
BUG=angleproject:516
Change-Id: Ib24ef03cf4184ef6f0c24f83347538df82de5f58
Reviewed-on: https://chromium-review.googlesource.com/387200
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
596018ce
|
2016-09-21T12:57:03
|
|
translator: Refactor Constant Union shift ops.
In preparation for making them robust.
BUG=chromium:648135
Change-Id: I88fc87d8887064fda04087c56de05d8725a6fe5f
Reviewed-on: https://chromium-review.googlesource.com/387469
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d2f195b5
|
2016-09-19T15:53:33
|
|
preprocessor: Fix use after free when #undef the macro being invoked
BUG=chromium:648031
BUG=angleproject:1522
Change-Id: I825cea9e736a2c99133408249cfcd525431d31de
Reviewed-on: https://chromium-review.googlesource.com/386853
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f979524a
|
2016-09-21T15:19:00
|
|
Remove redundant code in RewriteTexelFetchOffset
Remove useTemporaryIndex() in function RewriteTexelFetchOffset since
no temporary variables will be created in this function.
BUG=angleproject:1469
Change-Id: Ibed56f0ba5c89b6ae1ab1611de39514c3fbb600f
Reviewed-on: https://chromium-review.googlesource.com/387198
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c5cacd60
|
2016-09-14T14:50:24
|
|
Implement a separate last row texture unpack buffer upload workaround
When uploading textures from an unpack buffer, some drivers expect an
extra row paading, causing them to think the pixel buffer is not big enough.
We work around this by uploading the last row separately.
BUG=angleproject:1512
Change-Id: I52fb8b35dc450b957f1fafb0b405c81bf0504157
Reviewed-on: https://chromium-review.googlesource.com/385193
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
44d0a736
|
2016-09-21T16:19:50
|
|
Disable some DrawBuffersTest on Windows AMD OpenGL
DrawBuffersTest.FirstAndLast/ES2_OPENGL
DrawBuffersTest.FirstHalfNULL/ES2_OPENGL
Hang on Win7 Release (ATI) and Win7 Debug (ATI) bots.
BUG=angleproject:1533
Change-Id: I6e37893fbcdbcc7a2a76c1cab6e8ef1f7ebaec19
Reviewed-on: https://chromium-review.googlesource.com/387714
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
93561c3a
|
2016-09-20T10:22:55
|
|
Regenerate the preprocessor with the latest versions of flex and bison.
BUG=648063
Change-Id: Ia90d12c8cb4ae0a694227145267e78ca02dcc2b0
Reviewed-on: https://chromium-review.googlesource.com/387114
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d4a07fbb
|
2016-09-20T10:24:23
|
|
Disallow bit-shifting when the left operand is negative.
BUG=648063
Change-Id: I82d9fbdaf8791a396dd71eeb57d93967ba5d65bf
Reviewed-on: https://chromium-review.googlesource.com/387115
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a59fcdf4
|
2016-09-14T10:52:14
|
|
CallDAG: rewrite assignIndicesInternal as iterative,
Since the CallDAG is needed to check for the call graph depth, its
creation code must be robust to very deep call graphs.
BUG=angleproject:1517
Change-Id: I753ab84ad4ced6363a212f0fe94a89aabf4e3c3e
Reviewed-on: https://chromium-review.googlesource.com/385496
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c287ea6e
|
2016-09-16T14:46:51
|
|
Add WebGL validation extensions to ANGLE.
BUG=angleproject:1523
Change-Id: I6fecb5055ed8087665aeee34b3a066ea8f38d51b
Reviewed-on: https://chromium-review.googlesource.com/386281
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
10f563d5
|
2016-09-19T17:02:36
|
|
Fix base/numerics to not trigger upcoming Clang warning
Fix base/numerics to not trigger upcoming Clang warning regarding
unsigned enum bitfields producing non-portable code.
For more details, see the patch here: https://reviews.llvm.org/D24289
BUG=648462
Change-Id: I9aaa01e99f734ff927b5b1171706b2f49b437d0b
Reviewed-on: https://chromium-review.googlesource.com/386887
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e292e902
|
2016-09-07T10:49:01
|
|
Workaround the unary minus operator issue on Intel
On some Intel D3D drivers, evaluating unary minor operator on an
integer variable may get wrong answer in vertex shader.
This patch works around this bug by replacing -(int) with ~(int)+1
on Windows Intel.
BUG=chromium:644033
Change-Id: I0af719e84d618a33f25bcb33bde0c381fb462a31
Reviewed-on: https://chromium-review.googlesource.com/381675
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5db69f57
|
2016-09-15T12:47:32
|
|
Add robust math to constant folding.
Previously our multiplication and other operators could
do overflows, which can lead to security bugs.
BUG=chromium:637050
Change-Id: Icee22a87909e205b71bda1c5bc1627fcf5e26e90
Reviewed-on: https://chromium-review.googlesource.com/382678
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a5615c69
|
2016-09-19T09:54:44
|
|
BUILD.gn: Disable pool alloc on all translator dependents when fuzzing
It contains defines that need to be consistent between the header and
the implementation.
BUG=angleproject:1522
BUG=chromium:647807
Change-Id: Ica144c455b7366bd9939a07b171edffe5af8bf35
Reviewed-on: https://chromium-review.googlesource.com/386945
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2e60034b
|
2016-09-19T13:56:40
|
|
D3D11: Store Buffer SRVs in native storage.
This allows us to not store std::pairs to identify SRVs. Instead
we can release the cached SRVs directly when we re-create the
native buffer.
BUG=angleproject:1513
Change-Id: I6f6d5edc659aa843c9439b97661073415f1a772b
Reviewed-on: https://chromium-review.googlesource.com/385818
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
30e11ab2
|
2016-09-16T10:29:54
|
|
BUILD.gn: make the translator fuzzer a source set
When we want to use GN standalone, the fuzzer_test template won't exist.
Instead make the fuzzer a source set that is used by a target in Chrome.
BUG=angleproject:1522
Change-Id: I347e633448d508eb124d0861b0fb28315923016c
Reviewed-on: https://chromium-review.googlesource.com/386636
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
8fcdf6ee
|
2016-09-16T10:45:30
|
|
Supress failures in end2end tests for new Intel OpenGL driver.
Change-Id: I442eac44212406b0fd9fb64b2e4e914bf61f8503
Reviewed-on: https://chromium-review.googlesource.com/386280
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8b28a8b0
|
2016-09-15T19:47:56
|
|
translator/Compiler.cpp: fixup includes
A stray iostream got introduced in
28b6528ca2119d6715bb5e9eafa5a2dc8c968361
BUG=angleproject:1522
Change-Id: Ib0b14b47d4786309ec2d39acb5531f3772b91f20
Reviewed-on: https://chromium-review.googlesource.com/386256
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
415f29e0
|
2016-09-07T16:37:38
|
|
Disallow layout+invariant combo on ESSL 3.00 variable declarations
This combination is not allowed by the formal grammar in the ESSL 3.00
spec, and should still be disallowed in ESSL 3.00 shaders even though
the shader parser now implements the more flexible ESSL 3.10 grammar.
BUG=angleproject:1507
TEST=angle_unittests
Change-Id: I766a468fd7314c7e60e020b5b204aa6950263633
Reviewed-on: https://chromium-review.googlesource.com/381933
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5796127e
|
2016-09-14T13:57:46
|
|
Rename TIntermSelection to TIntermIfElse
Now that ternary nodes are not represented by TIntermSelection any
more, TIntermIfElse is an easier name to understand for newcomers to
the code.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Ia1e04e356ab93409400245092a84533d7dfd129d
Reviewed-on: https://chromium-review.googlesource.com/385416
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
28b6528c
|
2016-06-16T07:24:50
|
|
Add a fuzzer for the shader translator.
BUG=angleproject:1522
Change-Id: Idbe8194ba478366e99c7460d403d03fe27dd89d0
Reviewed-on: https://chromium-review.googlesource.com/353153
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
09cfac60
|
2016-09-06T17:25:16
|
|
Work around For and While loop bugs on Intel Mac OSX
Condition calculation in for and while loops has bug on Intel Mac. Work
around it by converting "CONDITION" to "CONDITION && true".
This CL also adds previous SH_EMULATE_ABS_INT_FUNCTION workaround to
the ANGLE GL back-end on OSX
BUG=chromium:644669
TEST=deqp/functional/gles3/shaderloop_for/while.html
Change-Id: I910f662b054f259fcb601b9938841b3a2d066840
Reviewed-on: https://chromium-review.googlesource.com/381678
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Qiankun Miao <qiankun.miao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
930fefca
|
2016-09-14T15:54:18
|
|
RendererGL: enable GL_DEBUG_OUTPUT on Debug builds
The intent was already to enable it but without glEnable(GL_DEBUG_OUTPUT)
the Linux NVIDIA driver doesn't output anything.
BUG=
Change-Id: Ia9a500c2e792ee7c4e2a7be60d478419eda617e1
Reviewed-on: https://chromium-review.googlesource.com/385278
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fcb79357
|
2016-09-13T15:13:15
|
|
D3D11: Detect driver version before workaround init.
This is order-sensitive. The workarounds need the driver version to
properly determine if workarounds should be used.
This fixes the WebGL 2 test invalidate/sub on NVIDIA.
BUG=angleproject:1246
Change-Id: I7ca4f44ec2874553f167214e937e918b49e69567
Reviewed-on: https://chromium-review.googlesource.com/385077
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
adaeb85f
|
2016-09-14T10:54:24
|
|
Fix standalone tests failing to find angle_util.dylib on Mac
BUG=
Change-Id: I69bddf27c1b019f71382d69c03eba94a268d2025
Reviewed-on: https://chromium-review.googlesource.com/385497
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7ebb97fc
|
2016-09-08T18:01:50
|
|
Use 64-bits compile options
BUG=chromium:645071
Change-Id: I31825123bf4cb45fb37a93f538e8936487beb5ff
Reviewed-on: https://chromium-review.googlesource.com/382712
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
47cb73ab
|
2016-09-09T11:41:44
|
|
Refactor TConstantUnion.
In preparation for constant folding fixes.
BUG=chromium:637050
Change-Id: I9ea49ce96b34c6ac3d2f0478b8fc6732c59e28be
Reviewed-on: https://chromium-review.googlesource.com/373741
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d0bad2c7
|
2016-09-09T18:01:16
|
|
Split ternary node class from TIntermSelection
Ternary operator nodes are typed parts of expressions, they always
have two children and the children are also guaranteed to be
TIntermTyped. "If" selection nodes can't be a part of an expression,
they can have either one or two children and the children are code
blocks. Due to all of these differences it makes sense to store these
using two different AST node classes.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I913ab1d806e3cdb5c21106f078cc9c0b6c72ac54
Reviewed-on: https://chromium-review.googlesource.com/384512
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
95738972
|
2016-09-13T10:30:57
|
|
Specialize GLTypeToGLEnum in headers
BUG=angleproject:1514
Change-Id: I1f95e985471ea7a2ea0242d8b48ceccca68edf42
Reviewed-on: https://chromium-review.googlesource.com/384891
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
966456de
|
2016-09-12T11:42:44
|
|
Remove SH_TIMING_RESTRICTIONS compiler flag
The timing restrictions code is not in use and not updated for ESSL3,
so it is better to remove it to make refactoring the AST easier.
It can also be argued that perfect prevention of shader timing attacks
is not feasible due to factors that are not under control of ANGLE,
such as fixed function color compression in GPUs. Such color
compression may make the use of texture bandwidth and thus performance
dependent on the content of a texture regardless of whether a
compressed format is chosen through the API.
SH_DEPENDENCY_GRAPH flag that could only be active together with the
timing restrictions flag is also removed, along with all the code that
was supporting it. The newer CallDAG code is used for different
purposes and is kept.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I2cd10e18df366e8e43f7c3af1ca12d2a4bfb2007
Reviewed-on: https://chromium-review.googlesource.com/384511
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e79c2d1f
|
2016-09-09T16:33:09
|
|
Add newlines to error messages.
Looks like this breaks parsing tests list in gtest runner,
which causes deqp_gles2 to fail on Nexus 5X swarmed bot.
Driveby fix of HowToMakeChanges md format.
BUG=angleproject:1471
Change-Id: I6cfa2d9287385aabf2aee47521e5e55e309831c0
Reviewed-on: https://chromium-review.googlesource.com/383813
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
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>
|