- 12 Oct, 2017 9 commits
-
-
Corentin Wallez authored
Also adds a test for an integer overflow in DrawArrays validation. BUG=602737 Change-Id: I71c5bd155cf919964f46e2b0b48267253cab91eb Reviewed-on: https://chromium-review.googlesource.com/716841Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
We can use Python's "endswith" more easily than using the current checks. BUG=angleproject:1390 BUG=angleproject:2167 Change-Id: I5a35602c91b989270cff1d42a9d5ede542039fbd Reviewed-on: https://chromium-review.googlesource.com/717188Reviewed-by:Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
If variables are declared inside a GLSL switch statement, they are scoped until the end of the switch statement. This is not compatible with HLSL rules, where the scoping is until the end of the case. To work around this, wrap switch statements in a block that declares the variables in HLSL. This is done after most other transformations done to the AST are complete, since some of the other transformations may introduce temporary variables. BUG=angleproject:2179 TEST=angle_end2end_tests Change-Id: Id0bb89affe103177fd3d6a6b2f3619b5e1ada0a6 Reviewed-on: https://chromium-review.googlesource.com/716381Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Corentin Wallez authored
BUG=602688 Change-Id: I49a1a9b3753159c91058a7754534383fbc8a778e Reviewed-on: https://chromium-review.googlesource.com/713740Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
RemoveSwitchFallThrough now treats cases where break; or return; is nested inside a block as non-fallthrough to avoid unnecessary duplication of code. For example, the case 1 below would previously get treated as fall-through: switch(foo) { case 1: { break; } default: break; } Now RemoveSwitchFallThrough doesn't do anything to this code. BUG=chromium:772695 TEST=angle_end2end_tests Change-Id: Iafab6d8b05c63bcdb5f54834dbc1f41192c31dd4 Reviewed-on: https://chromium-review.googlesource.com/709197Reviewed-by:Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Some users of ANGLE might want to use the D3D11 backend on older Windows 7 platforms that only support DXGI 1.1. DXGI 1.1 doesn't recognize the FL 11.1 enum passed to D3D11CreateDevice, so special fall-back code is needed to fall back to FL 11.0 or lower in this case. BUG=angleproject:2173 Change-Id: Id77401d0e2a16786ed44d117ca746908e8d0892c Reviewed-on: https://chromium-review.googlesource.com/716356Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Ben Wagner authored
Fix resulting warnings. Change-Id: Ie251012ee01aa484a8c489f9deeec385a50528f9 Reviewed-on: https://chromium-review.googlesource.com/713695 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Make NodeInsertMultipleEntry private and clarify some comments in IntermTraverse.h. BUG=angleproject:2100 TEST=angle_unittests, angle_end2end_tests Change-Id: Iae60a46714c8b5cb9ad1e9d70aa6776f9deaf3d5 Reviewed-on: https://chromium-review.googlesource.com/715718Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
The grammar needs to generate AST nodes even for no-op statements, since they might be the last statement in a switch statement that is required for switch statement validity. Change the grammar to generate nodes from empty blocks and empty declarations. We also need to do some further processing of the AST. This is because PruneEmptyDeclarations will still remove empty declarations, and at least the NVIDIA driver GLSL compiler doesn't accept some types of no-op statements as the last statement inside a switch statement. So after parsing has finished we do rudimentary dead code elimination to remove dead cases from the end of switch statements. BUG=angleproject:2181 TEST=angle_unittests Change-Id: I586f2e4a3ac2171e65f1f0ccb7a7de220e3cc225 Reviewed-on: https://chromium-review.googlesource.com/712574 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 11 Oct, 2017 6 commits
-
-
Jamie Madill authored
The way that the strings were generated was erroneously marking 2D multisample textures as "2D" instead of "2D_MULTISAMPLE". Fix this by changing how the types are parsed and generated. Fixes incomplete texture handling of 2D multisample textures. BUG=angleproject:1390 BUG=angleproject:2167 Change-Id: I8ffffca119cc7ca654ed1fe81cba37b758f9ef9f Reviewed-on: https://chromium-review.googlesource.com/713585Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
Update to the version of googletest current in chromium. Googlemock has merged into googletest so we get rid of the separate DEPs entry and point everything inside googletest. We put it in 'third_party' instead of 'testing' to prepare for the upcoming stand-alone gn build which borrows chromium build files that require other stuff in the 'testing' directory. BUG=angleproject:1569 Change-Id: I51d1675efd5d0104bb6390721928010221a5d6fc Reviewed-on: https://chromium-review.googlesource.com/713466Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Olli Etuaho authored
In case the last case inside a switch statement is not terminated in a branch statement, RemoveSwitchFallThrough needs to add it before calling handlePreviousCase. This ensures that all preceding fall-through cases will get a copy of the branch statement and so will not fall through. This also fixes running RemoveSwitchFallThrough so that it's only executed once per each switch statement. The error was not caught by the dEQP tests, so a new ANGLE test is added. BUG=angleproject:2178 TEST=angle_end2end_tests Change-Id: I26b6989aa4d32de2d74cde56d72ee24f61195445 Reviewed-on: https://chromium-review.googlesource.com/709196Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Ben Wagner authored
Fix the resulting compile errors. No-Try: true Change-Id: I88e74f240b29ecf7b3883b0c5880dcb871e4c3cd Reviewed-on: https://chromium-review.googlesource.com/710415 Commit-Queue: Ben Wagner <benjaminwagner@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Yunchao He authored
Strcmp in SampleApplication.cpp is a cstring function. So some compilers (at least the default gcc compiler in my Ubuntu 17.04) would think that strcmp is not declared and lead to build failure, even we have include <string> in header file. Now that we use std::string variable in SampleApplication.h, it is better to include <string> in that header file as what it is. Then add <string.h> to include cstring functions in .cpp file to fix the build issue. BUG=angleproject:2180 Change-Id: Id97a6956480637c1218314c04d9b331031c7b911 Reviewed-on: https://chromium-review.googlesource.com/711396Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
RemoveSwitchFallThrough now correctly records the existence of declaration and swizzle statements inside switch statements. BUG=angleproject:2177 TEST=angle_end2end_tests Change-Id: I1ef83997db7ae510ded002a9568c29272c00c2fe Reviewed-on: https://chromium-review.googlesource.com/709195Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 10 Oct, 2017 9 commits
-
-
Jamie Madill authored
This should slightly reduce draw call overhead. BUG=angleproject:1898 Change-Id: I0e515bf2868f237f1d6948c12942f8cb6637c0c0 Reviewed-on: https://chromium-review.googlesource.com/707690Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Refactoring change only. BUG=angleproject:1898 Change-Id: I9f55651f923ff930c395a9bb575b4f86ad5d9cbd Reviewed-on: https://chromium-review.googlesource.com/707689Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
This cleans up the API provided by RemoveSwitchFallThrough.h, and adds documentation about caveats of RemoveSwitchFallThrough. This change is pure refactoring without any functional changes. BUG=angleproject:2177 TEST=angle_end2end_tests Change-Id: I2646e4fe3b53130b07977823cb1344e5096f67e4 Reviewed-on: https://chromium-review.googlesource.com/709194Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Array indices are sorted so that the outermost index is in the back. This is because we want to be consistent with future arrays of arrays parsing code. In parsing we'll have a utility function to make a TType object into an array, and there it's most natural to push the new outermost sizes to the back of the vector. Further patches will still be needed to parse arrays of arrays and add support to arrays of arrays into the API. BUG=angleproject:2125 TEST=angle_unittests, angle_end2end_tests Change-Id: I6c88edabf68ae9dbd803ec6d20543016c408b702 Reviewed-on: https://chromium-review.googlesource.com/686414Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Qin Jiajia authored
This patch will remove unused functions syncVertexAttributes and hasDirtyOrDynamicAttrib, and private member mAppliedIBChanged. Meanwhile, it changes hasDynamicAttrib to hasActiveDynamicAttrib to avoid unnecessary update in some cases. BUG=angleproject:1155 Change-Id: I29a0aa7fbc13874b7b070cf1ac5ec4134728f519 Reviewed-on: https://chromium-review.googlesource.com/707014Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This gives us the ability to test Vulkan without a special recompile, and keeps the default setting to the default ANGLE renderer. Only implemented for the hello_triangle sample currently. Also includes an extra error message for missing EGL config, which is where the Vulkan init fails right now, due to missing depth/stencil support. Also includes a hack to get Vulkan samples running without depth/ stencil. BUG=angleproject:2167 Change-Id: I6925b9b84956fb69cbf602a828ea95d8c7125b68 Reviewed-on: https://chromium-review.googlesource.com/707688Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Brian Osman authored
1) timeout is unsigned, and clients tend to pass large unsigned values (like -1) to mean "wait as long as possible". Casting to signed at the start of the math meant that everything was negative, so we would never actually wait for fences to be signalled. 2) When going from nanoseconds to seconds, we should divide by 10^9, not multiply by 10^6. 3) Even with all of this, it's possible for a sufficiently large counter frequency to still cause overflow, so detect that case and clamp. Change-Id: I9e728aac72d8dc0b15582732b6fd4d87c90bd140 Reviewed-on: https://chromium-review.googlesource.com/707202Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Branch statements can only exist inside block nodes. The block node that contains a branch will take care of writing a semicolon after each statement. BUG=angleproject:1013 TEST=angle_end2end_tests Change-Id: Ie5d9077c5d2e090c704282dba39b4d46845cbf1e Reviewed-on: https://chromium-review.googlesource.com/708894Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
This makes creating temporary symbols easy also outside of traversers. This will be needed for improving variable initialization. TEST=angle_unittests BUG=chromium:735497 Change-Id: Id048fc338e0be6c76bb6f082421ae106618e5003 Reviewed-on: https://chromium-review.googlesource.com/707194 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 09 Oct, 2017 1 commit
-
-
Kai Ninomiya authored
SH_INITIALIZE_UNINITIALIZED_LOCALS triggers a very unpredictable crash in the shader compiler on Qualcomm Adreno (at least 4xx) on Marshmallow. Bug: angleproject:2046 Change-Id: I9a109f7ff442b4e9d3880d137f1a55a19105bcef Reviewed-on: https://chromium-review.googlesource.com/705930 Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 07 Oct, 2017 1 commit
-
-
Yuly Novikov authored
BUG=chromium:675997 Change-Id: Ib6690f9f25a4ba4510cf6e18ba2054a9936dc574 Reviewed-on: https://chromium-review.googlesource.com/706455Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
- 06 Oct, 2017 3 commits
-
-
Olli Etuaho authored
Signed integer overflow is undefined in C++, whereas unsigned integer overflow is not. Always cast left shift operand to unsigned to avoid UB. On common compilers, the behavior was already the same before this patch, so this patch is done mostly for the benefit of automated fuzz testing. BUG=chromium:743136 TEST=angle_unittests Change-Id: I7aab939036bb19a37f258cef4297b560da3cd9d5 Reviewed-on: https://chromium-review.googlesource.com/704659Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Geoff Lang authored
Enabled support on OpenGL even through the extension is not fully implemented so that testing with Chromium/Passthrough commmand decoder is still possible. BUG=angleproject:1635 Change-Id: Ia417b1779aace1eae19514325701a79cd33f4ef3 Reviewed-on: https://chromium-review.googlesource.com/678479 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Casting integers to booleans generates a performance warning in at least MSVS 2015 x64 Debug build. Specialize the clampCast template for bool->int conversion to avoid this warning, which is treated as an error. BUG=angleproject:2165 TEST=MSVS 2015 x64 Debug build Change-Id: Iaa9591c102cdd73fe9ff8a8739d356cc13cec248 Reviewed-on: https://chromium-review.googlesource.com/704820 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 05 Oct, 2017 5 commits
-
-
Geoff Lang authored
Adding extensions that are not native driver extensions would cause surface creation to fail. BUG=angleproject:1635 Change-Id: I2f683ee0560e463aa06f3ba92d0bf3f3d8c8927d Reviewed-on: https://chromium-review.googlesource.com/701602 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1635 Change-Id: Ia6ab5a2a7339d78912d7f871ed62941af1957eb1 Reviewed-on: https://chromium-review.googlesource.com/702856 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1523 Change-Id: Ic728a777ad7e05373de03ee98e9b0a17101cd45d Reviewed-on: https://chromium-review.googlesource.com/688102Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1523 Change-Id: Id1dd5d0426c1b55bfd6cca8b0c8c73596080f2a9 Reviewed-on: https://chromium-review.googlesource.com/688101Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Kenneth Russell authored
If the same level of a texture is attached to multiple color attachments of a framebuffer object, for example, the WebGL conformance tests require generating a GL_FRAMEBUFFER_UNSUPPORTED error. The Direct3D backend already had this restriction; apply it to all backends when the WebGL compatibility extension is enabled. Fixes the following WebGL conformance tests with the pass-through command decoder in Chrome: conformance/extensions/webgl-draw-buffers-framebuffer-unsupported conformance2/rendering/framebuffer-unsupported BUG=angleproject:2168 Change-Id: I340d06ca0ee969989c6c5725512b1b9542281477 Reviewed-on: https://chromium-review.googlesource.com/699856 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 04 Oct, 2017 6 commits
-
-
Jamie Madill authored
BUG=angleproject:2170 Change-Id: Ie0473022c153c4b70f350cab0c208dd3a0670c40 Reviewed-on: https://chromium-review.googlesource.com/691374Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This is a first step at implementing uniforms with descriptor sets. It does not actually bind uniforms and upload data, but it does implement uniform shader parsing. Uniforms are gathered into a single uniform block which is bound to set 0, with binding 0 for vertex uniforms and binding 1 for fragment uniforms. Also adds a ReplaceSubstring helper to string_utils. Also removes the precision writing from OutputVulkanGLSL since this was generating warnings with glslang. BUG=angleproject:2167 Change-Id: I9ec8351ec1973e583100f99292b0080ee968067b Reviewed-on: https://chromium-review.googlesource.com/699938 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Corentin Wallez authored
a99ed554 introduced explicit template instantiations that tunred out to be the same on 32-bit CPUs because GLenum and size_t are the same type. BUG=angleproject:2165 Change-Id: I85fafeff1996cb457f2b718e177944fc6aca50bf Reviewed-on: https://chromium-review.googlesource.com/699839 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2107 Change-Id: Icaa4cf7c708a68d63b45699255ddd3ced00ee119 Reviewed-on: https://chromium-review.googlesource.com/700804 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
jchen10 authored
Add program resource properties for uniform. BUG=angleproject:1920 TEST=angle_end2end_tests:ProgramInterfaceTest* Change-Id: Ia5cf6219db43b8b1f73efbb3565d21c86e9d3ec0 Reviewed-on: https://chromium-review.googlesource.com/638050 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
jchen10 authored
This mainly enforces the rules as descripted in ES 3.10, section 2.2.1 and 2.2.2, by enhancing the "queryconversions" to support more rules, removing the scattered type convertors in "utilities" , "mathutil" and "queryutils", and forcing to only use the convertors in "queryconversions". BUG=angleproject:2165 Change-Id: I73c1dc850e2b3b8a479ece1d9c5eb7ae4ce851fe Reviewed-on: https://chromium-review.googlesource.com/680094 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-