- 09 Dec, 2016 4 commits
-
-
Olli Etuaho authored
gl_WorkGroupSize should be written into the AST as a constant node instead of a symbol node. In correct shaders, local size is guaranteed to have been declared before any references to gl_WorkGroupSize - otherwise the shader translator was already generating an error. This ensures that work group size can be used to size arrays as specified and also works around a crash issue on NVIDIA Linux OpenGL driver. BUG=angleproject:1442 TEST=angle_unittests Change-Id: I9b1a4bff16ecf2c3db1511c3702756346cdd2f6b Reviewed-on: https://chromium-review.googlesource.com/418735 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Might be flaky, more suppressions might be needed. BUG=angleproject:1633 Change-Id: Ic5665aadb7cbbae82639d206f29a2db859622451 Reviewed-on: https://chromium-review.googlesource.com/418399Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Compute shaders were added to the core OpenGL spec in version 4.3. Also don't output GL_ARB_explicit_attrib_location extension directive for compute shaders. This extension is only relevant for vertex and fragment shaders. BUG=angleproject:1442 TEST=angle_end2end_tests Change-Id: I92021ac048b38ffbc5a61af408b37c387193389b Reviewed-on: https://chromium-review.googlesource.com/418657Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Previously infinity and NaN resulting from constant folding would be clamped to finite 32-bit float range when they were written in shader output. Now they are written as a bit pattern in case the shader version allows it. This does not guarantee that NaNs work, but this is fine, since ESSL 3.00.6 spec has very loose requirements when it comes to NaNs. BUG=angleproject:1654 TEST=angle_end2end_tests Change-Id: I9997000beeaa8ed22523c22d5cf6929cdfc93f60 Reviewed-on: https://chromium-review.googlesource.com/417301 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 08 Dec, 2016 6 commits
-
-
Jamie Madill authored
Also add a more robust set of unit tests for this internal class. Because the GL spec allows for succeess when packing any set of varyings, it's impossible to write negative end to end tests. This CL also rewrites our disabled varying packing GLSL tests as unit tests. BUG=angleproject:1296 BUG=angleproject:1638 Change-Id: I78153742517d5c72ddb13ff59dc44ddc4af42fc2 Reviewed-on: https://chromium-review.googlesource.com/415555 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This code doesn't actually call any D3D runtime methods, so it can be included in our cross platform unit tests. Just include the varying packing code for now. BUG=angleproject:1296 BUG=angleproject:1638 Change-Id: I5c0ccccb00e1c13ca98448256be048f7cd0968ce Reviewed-on: https://chromium-review.googlesource.com/417116 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Many tests were removed from mustpass at some point, and a couple were expected to fail but passing. Also update some of the global skip settings to use DEBUG RELEASE as a catch-all. BUG=angleproject:989 BUG=angleproject:998 BUG=angleproject:1017 BUG=angleproject:1018 BUG=angleproject:1019 BUG=angleproject:1020 BUG=angleproject:1025 BUG=angleproject:1027 BUG=angleproject:1028 BUG=angleproject:1033 BUG=angleproject:1034 BUG=angleproject:1051 BUG=angleproject:1108 BUG=angleproject:1143 BUG=angleproject:1335 BUG=angleproject:1418 BUG=angleproject:1655 BUG=angleproject:1656 Change-Id: I731d3adeed36509ce69f72e5fcc80d0adc89cb67 Reviewed-on: https://chromium-review.googlesource.com/418063Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
Otherwise when trying to add the declarations back, things might fail because the loop initialization is a sequence and not a block. BUG=668028 Change-Id: I8d84a25c25765e9655c16ce56604ae08f0f8176c Reviewed-on: https://chromium-review.googlesource.com/414305 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
Many test expectations listed were not in the mustpass list, so weren't even necessary. BUG=angleproject:989 BUG=angleproject:1015 BUG=angleproject:1016 BUG=angleproject:1020 BUG=angleproject:1025 BUG=angleproject:1027 BUG=angleproject:1029 BUG=angleproject:1030 BUG=angleproject:1128 Change-Id: Ia18796cb3388e8528b4351cb2c81ff9793a1d250 Reviewed-on: https://chromium-review.googlesource.com/417413Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jiajia Qin authored
BUG=angleproject:1595 TEST=dEQP-GLES31.functional.state_query.integer.draw_indirect_buffer_binding* Change-Id: Ib8f712fdf10411ef0b7b63742d17c3caca99137b Reviewed-on: https://chromium-review.googlesource.com/416193Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 07 Dec, 2016 2 commits
-
-
Geoff Lang authored
BUG=668223 Change-Id: I2f38b358dd4a6b9327562704dacce37f2b16acaa Reviewed-on: https://chromium-review.googlesource.com/417192Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Constant folding arithmetic operations that involve infinity are now handled correctly in the cases where the result is infinity or zero. The implementation mostly relies on C++ to implement IEEE float arithmetic correctly so that unnecessary overhead is avoided. Constant folding arithmetic operations that result in overflow now issue a warning but result in infinity. This is not mandated by the spec but is a reasonable choice since it is the behavior of the default IEEE rounding mode. Constant folding arithmetic operations that result in NaN in IEEE will generate a warning but the NaN is kept. This is also not mandated by the spec, but is among the allowed behaviors. There's no special handling for ESSL 1.00. ESSL 1.00 doesn't really have the concept of NaN, but since it is not feasible to control generating NaNs at shader run time either way, it should not be a big issue if constant folding may generate them as well. TEST=angle_unittests BUG=chromium:661857 Change-Id: I06116c6fdd02f224939d4a651e4e62f2fd4c98a8 Reviewed-on: https://chromium-review.googlesource.com/414911Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 06 Dec, 2016 1 commit
-
-
Geoff Lang authored
Change "DEBUG RELEASE" modifier to "OPENGL D3D11" to be more specific. Add D3D11 expectations. BUG=angleproject:1442 Change-Id: If3a9704e7f16cc473fd6ea410d10eb01ae1a8008 Reviewed-on: https://chromium-review.googlesource.com/416960Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 05 Dec, 2016 2 commits
-
-
Corentin Wallez authored
ES 3.0 doesn't require non-constant sampler array indexing, and we can't require it for ES 2 without breaking WebGL for some users. BUG=671280 Change-Id: Ib04446284acc92410a90c683a3d222871de554a8 Reviewed-on: https://chromium-review.googlesource.com/416195 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Kenneth Russell <kbr@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1366 Change-Id: I9e44679754eb704b390191c28206dedc3dc7cc4f Reviewed-on: https://chromium-review.googlesource.com/367082 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 02 Dec, 2016 3 commits
-
-
Geoff Lang authored
UNIMPLEMENTED debug spam was causing the tests time time out. We can mark them as FAIL again once the dEQP test setup/tear down code doesn't emmit so many messages. Implement a couple validation cases for ES 3.1 to greatly reduce the spam. BUG=angleproject:1647 BUG=angleproject:1442 Change-Id: Ie7b4ac8737a2df1c0ada6ad53154ddf2f37d9c3c Reviewed-on: https://chromium-review.googlesource.com/415520 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Corentin Wallez authored
Change-Id: I2f96baedf10d346eaa150bab04f8f6ca3ba573b9 Reviewed-on: https://chromium-review.googlesource.com/414272Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Yuly Novikov authored
BUG=angleproject:1645 Change-Id: If35d277705ce9f2882d9ba059bd56e494ca9d123 Reviewed-on: https://chromium-review.googlesource.com/415613Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
- 01 Dec, 2016 5 commits
-
-
Jamie Madill authored
PointSpritesTest.PointWithoutAttributesCompliance: https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Debug%20%28New%20Intel%29/builds/1741 Showing as failed now that flaky tests are not retried. BUG=angleproject:1346 Change-Id: Ic0fce361f37394da8771fa82288b0a9206d3a347 Reviewed-on: https://chromium-review.googlesource.com/415448Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1442 Change-Id: I49299d2345f67b7ed3e2c80db0ec85589fc7583c Reviewed-on: https://chromium-review.googlesource.com/415526Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
BUG=None Change-Id: Id4b9674b6e98b8313c47f3fbc78cc93d137ec14c Reviewed-on: https://chromium-review.googlesource.com/415569Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
The mechanism for requesting extensions is now a separate extension. Added a way to query the extensions that support enabling. BUG=angleproject:1523 Change-Id: I2efaa9f6d67b12ecae325f455404e34ba04d0e7c Reviewed-on: https://chromium-review.googlesource.com/414529 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Antoine Labour authored
Change-Id: If3883de8f49a3fb33ecc598ba0b86c658cd3f0ca Reviewed-on: https://chromium-review.googlesource.com/415565Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 30 Nov, 2016 3 commits
-
-
Jamie Madill authored
This is an work-in-progress CL to prototype using ComPtr. It also has a new design for internal errors that doesn't use FormatString, preferring a stream-based approach. One thing to be aware of is that the address operator does not behave as expected with ComPtr - we should use ::AddressOf. BUG=angleproject:530 BUG=angleproject:1644 Change-Id: If5643e9e5726fd9aa5cbd422fca12ae169eb5b1f Reviewed-on: https://chromium-review.googlesource.com/415027 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
The constant folding test classes are moved into a separate file in test_utils. This will enable adding multiple test files that use constant folding test classes, so that constant folding tests can be organized better. TEST=angle_unittests BUG=chromium:661857 Change-Id: I00bf25a4b941bdc1364ff5aa9bee2d571e4b0ea0 Reviewed-on: https://chromium-review.googlesource.com/414910Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
He Yunchao authored
Change-Id: I63aa1c1b3bbc52b0b522e4a703e6d20574eb21ad Reviewed-on: https://chromium-review.googlesource.com/414588Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 29 Nov, 2016 3 commits
-
-
Corentin Wallez authored
BUG=angleproject:422 Change-Id: I1a1c4551f2fc55b74afd66e7f18ea61e77250eb6 Reviewed-on: https://chromium-review.googlesource.com/414634 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jiajia Qin authored
BUG=angleproject:1589 TEST=dEQP-GLES31.functional.program_uniform.* Change-Id: I27fffa755fd277ed918746259cac88ab9e349c41 Reviewed-on: https://chromium-review.googlesource.com/412193 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
These tests became flaky when google test retries are turned off. BUG=chromium:669196 BUG=angleproject:1643 BUG=angleproject:1541 Change-Id: I7cc10f532662928e5436a4e88a42fc109c00bfe8 Reviewed-on: https://chromium-review.googlesource.com/414216Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 28 Nov, 2016 5 commits
-
-
Jamie Madill authored
Choose to use std::async for now to implement multi-threaded compiles. This should work across platforms and also be usable for other threading tasks. Note that std::async does not have a good way to wait for multiple std::futures. Also the Linux compile of std::async is broken due to a bug in an old STL version, so disable it on this platform. The implementation uses a static polymorphism approach, which should have very good performance (no virtual calls). This design leaves the door open for other future implementations, such as a Win32 thread pool, or one based on angle::Platform. BUG=angleproject:422 Change-Id: Ia2f13c3af0339efaca1d19b40b3e08ecca61b8e8 Reviewed-on: https://chromium-review.googlesource.com/413712 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1634 Change-Id: I3822b99b59d4653e4d9a2c1d3dd16734f2050fae Reviewed-on: https://chromium-review.googlesource.com/414437 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Xinghua Cao authored
BUG=angleproject:1442 Change-Id: I18bee163e7c7ce159cd23d6136486c49b7d9ec94 Reviewed-on: https://chromium-review.googlesource.com/414950Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Qin Jiajia authored
Change supported ES version to 3.1 on win. Without GL_TEXTURE_2D_MULTISAMPLE enum, it will reach UNREACHABLE() when running dEQP ES 3.1 tests on Win. BUG=angleproject:1442 Change-Id: I55114854c4e9cba1caac10d3da5b416ef66a0d3e Reviewed-on: https://chromium-review.googlesource.com/414606 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
IEEE rules for generating zero or infinity are now checked for the constant folding of several built-in functions except for the cases where ESSL 3.00.6 explicitly states that the results are undefined. BUG=chromium:661857 TEST=angle_unittests Change-Id: I2ce427229a5583039694d060ea6db29c5bdace97 Reviewed-on: https://chromium-review.googlesource.com/414370Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 25 Nov, 2016 1 commit
-
-
Jamie Madill authored
BUG=chromium:660670 Change-Id: I51c7e93f071041663f6b9a39ee75c0cca2264015 Reviewed-on: https://chromium-review.googlesource.com/414447Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 24 Nov, 2016 1 commit
-
-
Jamie Madill authored
BUG=angleproject:422 Change-Id: I10a2192c5c91360a1b7fe5e4d014bcf1fa84c96e Reviewed-on: https://chromium-review.googlesource.com/413713Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 23 Nov, 2016 4 commits
-
-
Corentin Wallez authored
This also makes BlitGL work correctly on OpenGL ES (provided vertex arrays are available) BUG=angleproject:1356 Change-Id: Icb7cef35bebfe6672220aa0b312ab89187dbf585 Reviewed-on: https://chromium-review.googlesource.com/412452 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:1636 Change-Id: Idea0e4f4a4415351b83e8f1a39b697139ff9ebe6 Reviewed-on: https://chromium-review.googlesource.com/414205 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Add a configurable limit for how many nested MacroExpander objects can be created in the preprocessor, so that stack overflow can be prevented in case of malicious shaders. By default the limit is set to 1000. In unit tests the limit is set lower to make the test run faster. Includes refactoring of most of the preprocessor tests so that they use utility functions provided by the test class instead of repeating the same code for initializing the preprocessor. BUG=angleproject:1600 TEST=angle_unittests Change-Id: I23b5140d9f2dc52df96111650db63150f7238494 Reviewed-on: https://chromium-review.googlesource.com/413986 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1468 Change-Id: I3cf0d0a9486778b1d4384e00359034e08e425191 Reviewed-on: https://chromium-review.googlesource.com/414284Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-