Log

Author Commit Date CI Message
Jamie Madill a8503cef 2016-07-18T13:47:12 Re-land "GN: Enable chromium_code config instead." Using "no_chromium_code" is a bit less strict, but ANGLE should be able to handle slightly stricter warnings. Re-land with fix for Clang build. BUG=angleproject:1449 Change-Id: I8988287d630a6258f2f9ee90e7bfef5f2d5799cd Reviewed-on: https://chromium-review.googlesource.com/361331 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ae41faf5 2016-07-18T12:52:06 Add win_clang to CQ trybots. BUG=angleproject:1311 Change-Id: I5a9f381ef7e7e18b20919f791beb2be7f2ddd7a5 Reviewed-on: https://chromium-review.googlesource.com/361064 Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Jamie Madill f729e29d 2016-07-18T11:07:00 dEQP: Make RandomOrderExecutor produce less spam. We can take out the test case duration output, as it would only be useful for diagnosing unexpectedly slow tests. This will reduce the size of dEQP logs on the bots. BUG=None Change-Id: I591b2c564e89393ca6754140001f334c19a10b1a Reviewed-on: https://chromium-review.googlesource.com/361243 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5bc93c41 2016-07-18T16:34:42 Revert "GN: Enable chromium_code config instead." Seems to fail the Clang build: ../../third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp(35,60): error: comparison of integers of different signs: 'UINT' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare] maxSrvMip = (desc.Texture2D.MipLevels == -1) ? INT_MAX : maxSrvMip; ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~ BUG=angleproject:1449 This reverts commit aeb477fbe5fad337815560a0031815f0636471a1. Change-Id: I01baaf082f282c9d80a9c17fd6ffc2b8911313b2 Reviewed-on: https://chromium-review.googlesource.com/361094 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 91bc2907 2016-07-14T13:38:52 D3D11: Add support for pack parameters when packing to PBOs. BUG=angleproject:1268 TEST=conformance2/reading/read-pixels-pack-parameters.html Change-Id: Ia7d69bdabd94d146bc027e6a6d3bb619b1ada2e8 Reviewed-on: https://chromium-review.googlesource.com/360491 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill aeb477fb 2016-07-15T13:32:37 GN: Enable chromium_code config instead. Using "no_chromium_code" is a bit less strict, but ANGLE should be able to handle slightly stricter warnings. BUG=angleproject:1449 Change-Id: Ifaf77201085dd70cf5ff628b1aa02de55c5e96ba Reviewed-on: https://chromium-review.googlesource.com/360940 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho e319171f 2016-07-18T16:01:10 Fix debug standalone build warning on MSVS 2015 Fixes signed/unsigned mismatch due to missing type cast inside an assert. BUG=angleproject:1382 TEST=standalone MSVS 2015 debug build Change-Id: I1508b54a2608e9204ad582bde4bd62af6926c36e Reviewed-on: https://chromium-review.googlesource.com/360921 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Corentin Wallez 0d959258 2016-07-12T17:26:32 ParseContext: validate additional restriction for the ? and , operators WebGL2 shaders have added restriction to improve portability for some OpenGL compilers that do not support arbitrary ternary and sequence operators. It disallows these operators for arrays, structs containing arrays and the void type. BUG=612066 Change-Id: Id11042051bce25a91e57deaa9591d4d813fed7aa Reviewed-on: https://chromium-review.googlesource.com/359949 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 1b2f1629 2016-03-04T15:06:51 Forbid defined operator generated by macro expansion After lengthy debate, the GLES working group recommended that this should be an error in WebGL, though old specs were not updated. Make ANGLE follow the WebGL spec and generate an error in this case. This is a partial revert of the patch which added support for defined operator generated by macro expansion. The preprocessor unit tests added by the reverted commit are kept, but their expectations are changed. This breaks some dEQP tests that are not in line with the WebGL spec. BUG=angleproject:1335 TEST=angle_unittests, WebGL conformance tests Change-Id: I7d8a1d42c61367197f2aed4ca4de9297cc48acfc Reviewed-on: https://chromium-review.googlesource.com/352471 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 4d675ca2 2016-03-07T14:48:49 Reserve "defined" as a macro name After lengthy debate, the GLES working group recommended that this should be an error in WebGL, though old specs were not updated. Make ANGLE follow the WebGL spec and generate an error in this case. This breaks some dEQP tests which are not in line with the WebGL spec. BUG=angleproject:1335 TEST=WebGL conformance tests Change-Id: I93fc397094419ecbf6a1b5179631b72064149bd0 Reviewed-on: https://chromium-review.googlesource.com/352470 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Qiankun Miao 163fa521 2016-07-15T17:38:04 Workaround interpolation qualifier mismatching Centroid implies smooth when doing translation. But the Intel Mesa driver considers centroid and smooth are different interpolation qualifiers which makes shaders fail compilation. This patch adds smooth at the front of centroid at translation step. And it makes linkage.varying.rules.differing_interpolation_2 test in WebGL 2.0 dEQP test pass. BUG=621031 TEST=WebGL 2.0 deqp/data/gles3/shaders/linkage.html Change-Id: I8f0944846b5244b21c526ae95a7ce37c1504efb7 Reviewed-on: https://chromium-review.googlesource.com/360638 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Geoff Lang 3f6a398c 2016-07-15T15:20:45 Fix type conversion warnings. BUG=angleproject:1382 Change-Id: Idee8882a7d7576faaa08418d9d399d836cec8fa7 Reviewed-on: https://chromium-review.googlesource.com/360903 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 1a1829c4 2016-07-15T11:26:06 dEQP GLES3 test expectations, reassign a bug. BUG=angleproject:1448 Change-Id: I82346baa0989416cf0105e4446178a299f4f8ffb Reviewed-on: https://chromium-review.googlesource.com/360664 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Sami Väisänen 9bd4aa3e 2016-07-12T16:34:05 Fix uninitialized stencil ref variables in the GL backend BUG=angleproject:1443 Change-Id: I8c259368abdffb57c2963b29f81e2433a08ecae1 Reviewed-on: https://chromium-review.googlesource.com/360110 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sami Väisänen 46eaa946 2016-06-29T10:26:37 Support CHROMIUM_path_rendering fragment operations This brings two new APIs, BindFragmentInputLocation and ProgramPathFragmentInputGen that together dictate how the fragment shader varyings are used. BUG=angleproject:1382 Change-Id: I4b52fd8a3555235a73aecd4f3dba2d500789cbb0 Reviewed-on: https://chromium-review.googlesource.com/357071 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Sami Väisänen <svaisanen@nvidia.com> Commit-Queue: Sami Väisänen <svaisanen@nvidia.com>
Jamie Madill 5b130489 2016-07-15T10:59:53 Audit and amend style guide. BUG=None Change-Id: Idb6863c93f639dfe4770e67710159f3e398c5238 Reviewed-on: https://chromium-review.googlesource.com/360890 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 90892fbd 2016-07-14T14:44:51 Refine swizzle/indexing constant folding code Fix constant folding of subscripting non-square matrices. Previously constant folding would offset the pointer into the matrix in multiples of the number of columns, when it should offset the pointer in multiples of the number of rows. Also change the MalformedShaderTest so that it only succeeds if vector swizzle is being checked correctly. Previously compilation would fail in the test either way because the shader code contained a call to an undefined function. Also refactor indexing checks and constant folding so that constant folding is done entirely separately from out-of-range checks. Bogus comments are removed from the constant folding functions. BUG=angleproject:1444 TEST=angle_unittests, angle_end2end_tests Change-Id: I7073b38f759e9b3635ee05947df4f6d8e23a39d5 Reviewed-on: https://chromium-review.googlesource.com/360112 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Dirk Pranke 313d9447 2016-07-13T18:01:55 Stop linking a static_initializer into the Mac chromium build. The :angle-image_util target was a source_set rather than a static_library(), causing us to link in loadimage.cpp, which pulled in mathutils.cpp, which contains a static initializer. Switching :angle_image_util to a static library (which is what GYP does) solved the problem. R=rsesek@chromium.org, cwallez@chromium.org BUG=628052 Change-Id: I63387b3fc9d799c92f7c1b49a1c7c7435e70a951 Reviewed-on: https://chromium-review.googlesource.com/360228 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Yuly Novikov 4c32feb1 2016-06-24T00:08:04 Pause TransformFeedback before eglMakeCurrent. On Android Adreno eglMakeCurrent resets TransformFeedback position. Workaround is to pause TransformFeedback before eglMakeCurrent and resume afterwards. BUG=angleproject:1426 TEST=TransformFeedbackTest.MultiContext Change-Id: I4fdb9edbd28b4b16c01d1a94419e78160b31b79f Reviewed-on: https://chromium-review.googlesource.com/355676 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 3f23406a 2016-07-13T15:35:45 Compute row pitch using the size of the input pixel, not the format pixel. For formats that can be loaded with data that has a different size pixel than the internal format (UNSIGNED_INT -> GL_DEPTH_COMPONENT_24) the row length would be computed as rowLength * 3 which is incorrect. BUG=angleproject:1095 Change-Id: I0f60a3bb9bb387d475ddda1389a3b4b6f4973922 Reviewed-on: https://chromium-review.googlesource.com/360214 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Olli Etuaho b741c761 2016-06-29T15:49:22 Support precision emulation on HLSL Re-submit with missing virtual destructor and angle::NonCopyable added. Add precision emulation support to HLSL 4.1 output. This makes it possible for developers to test their shaders for precision issues easily on Chrome on Windows without having to use the GL backend. The patch has been verified with Chrome on Windows to reproduce some precision bugs in real-world WebGL content, including old versions of the babylon.js library. The EmulatePrecision AST transformation still relies on writing out raw shader code for the rounding functions, with raw HLSL code added alongside pre-existing GLSL and ESSL code. In some ways it would be nicer to do the EmulatePrecision step as a pure AST transformation, but on the other hand the raw code is much more readable and easier to optimize. To better support multiple output languages in EmulatePrecision, add a RoundingHelperWriter class that has different subclasses for writing the rounding functions in different languages. The unit tests are expanded to cover the HLSL output of precision emulation. The parts of the tests that require the HLSL output are only active on Windows where ANGLE_ENABLE_HLSL define is added to the unit tests. Putting the HLSL tests in an entirely separate file is a worse alternative, since it would require either a lot of code duplication or add a lot of boilerplate to the individual tests. BUG=angleproject:1437 TEST=angle_unittests Change-Id: I47d501037c206f4bd8b976d3acab9b21c717084c Reviewed-on: https://chromium-review.googlesource.com/360152 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Martin Radev 28ff4fd8 2016-07-06T11:54:21 Add deqp gles 3.1 tests to the build files BUG=angleproject:1442 Change-Id: I2ef27478573ec362bff57b532f7fee5731333b06 Reviewed-on: https://chromium-review.googlesource.com/360121 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 4107dda9 2016-07-13T14:19:49 Clamp float32 depth data when uploading. BUG=angleproject:1095 Change-Id: I4c272aef0f94733fc7b5297ddaa1fa2bc765fe62 Reviewed-on: https://chromium-review.googlesource.com/360029 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 84954988 2016-07-12T15:42:18 ShaderVars: add isSameInterfaceBlockFieldAtLinkTime This will be used by Chromium to check for interface blocks mismatches. BUG=621031 Change-Id: Ia6cc19e5d7b2a5c33af558d65b87885a6b72cea3 Reviewed-on: https://chromium-review.googlesource.com/359607 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 3fdaf6f2 2016-07-13T15:07:41 Revert "Support precision emulation on HLSL" Forgot to add virtual destructors. BUG=angleproject:1437 This reverts commit a42e8b2cb9d0857f53c0490b5be3bf25b4e1f827. Change-Id: If33fecfeca9947deedf4668c64dbadf25a5dc5eb Reviewed-on: https://chromium-review.googlesource.com/360122 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Corentin Wallez b00dcee4 2016-07-11T17:42:58 TranslatorGLSL/ESSL: Output #pragma before #extension The Intel Mesa driver considers the #pragma directive to be a non-preprocessor token which makes shaders fail compilation. The relevant blurb from the spec is: "the extension directives must occur before any non-preprocessor tokens" BUG=627417 Change-Id: Ic22cff49a9f9c1fe5d140302581ca7b36688732c Reviewed-on: https://chromium-review.googlesource.com/359621 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Olli Etuaho a42e8b2c 2016-06-29T15:49:22 Support precision emulation on HLSL Add precision emulation support to HLSL 4.1 output. This makes it possible for developers to test their shaders for precision issues easily on Chrome on Windows without having to use the GL backend. The patch has been verified with Chrome on Windows to reproduce some precision bugs in real-world WebGL content, including old versions of the babylon.js library. The EmulatePrecision AST transformation still relies on writing out raw shader code for the rounding functions, with raw HLSL code added alongside pre-existing GLSL and ESSL code. In some ways it would be nicer to do the EmulatePrecision step as a pure AST transformation, but on the other hand the raw code is much more readable and easier to optimize. To better support multiple output languages in EmulatePrecision, add a RoundingHelperWriter class that has different subclasses for writing the rounding functions in different languages. The unit tests are expanded to cover the HLSL output of precision emulation. The parts of the tests that require the HLSL output are only active on Windows where ANGLE_ENABLE_HLSL define is added to the unit tests. Putting the HLSL tests in an entirely separate file is a worse alternative, since it would require either a lot of code duplication or add a lot of boilerplate to the individual tests. BUG=angleproject:1437 TEST=angle_unittests Change-Id: Ia4ba0374cd415908f16f34752321af1cb93525a5 Reviewed-on: https://chromium-review.googlesource.com/358473 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Yuly Novikov fea6e952 2016-06-23T16:29:20 Skip DXT1CompressedTextureTestES3.PBOCompressedTexImage when DXT1 not supported Was failing on Nexus 5X Adreno, which doesn't have GL_EXT_texture_compression_dxt1 extension. Also rename the tests to indicate they test DXT1 compression format. BUG=angleproject:1424 TEST=DXT1CompressedTextureTestES3.PBOCompressedTexImage Change-Id: Ic82363a6f497da12602f3f3a662a52ffa833aa0f Reviewed-on: https://chromium-review.googlesource.com/355711 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
John Bauman 9585a784 2016-07-08T15:12:34 Clear SRV cache on keyed mutex texture unbind from TextureStorage11_External This fixes the same issue as https://chromium-review.googlesource.com/328400, except with NV12 external storage textures. The SRV cache thinks the texture is still bound, but releasing the keyed mutex has unbound it. BUG=625900,626524 Change-Id: I991cb3eeaaea0a1c4570b88de2ba873ae868ec2a Reviewed-on: https://chromium-review.googlesource.com/359430 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: John Bauman <jbauman@chromium.org>
Frank Henigman e8d5c5c4 2016-07-07T13:17:47 Check ozone_platform_gbm before doing gbm stuff. Just checking use_ozone fails when building an ozone platform which doesn't have gbm, e.g. chromecast. BUG=angleproject:1439 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_gn_chromeos_rel;tryserver.chromium.android:android_compile_dbg Change-Id: Idec14441ce30dd872b3bfddfe844abfeb910cc02 Reviewed-on: https://chromium-review.googlesource.com/358860 Reviewed-by: Luke Halliwell <halliwell@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Kenneth Russell 8bad46d4 2016-07-01T19:52:52 The global invariant pragma must not leak across compilations. BUG=chromium:625363 TEST=conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html Change-Id: I66389352b92211f4d7967772f68470c8e93405bd Reviewed-on: https://chromium-review.googlesource.com/358515 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Olli Etuaho 61b81acf 2016-06-28T14:15:20 Support non-square matrices in precision emulation In case the shader version is greater than ESSL 1.00, the precision emulation needs to output rounding functions for non-square matrix types. Writing emulated compound assignment functions for non-square matrices already had most of the code in place before this change. New compound assignment operators like >>= don't need floating point precision emulation in ESSL 3.00, since all of them only operate on integers. BUG=angleproject:1434 TEST=angle_unittests Change-Id: I4678f511edf4f9f744fe23bb8d7dab4387f07f20 Reviewed-on: https://chromium-review.googlesource.com/358472 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 5695fc99 2016-07-05T14:47:30 Clean up the SSE detection logic. * Include the correct header right in the SSE check in platform.h. * Don't use separate SSE versions of the load functions, have them use SSE automatically. BUG=612205 Change-Id: I70f9a5513e144db4d16c1f3ad922debeb6c50268 Reviewed-on: https://chromium-review.googlesource.com/358108 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Olli Etuaho e92507bc 2016-07-04T11:20:10 Reuse code for determining built-in type name string Add TType::getBuiltInTypeNameString() that returns an unique char pointer for each built-in type. They can be easily stored in an std::set as required by EmulatePrecision, and the function can also be used in TOutputGLSLBase. BUG=angleproject:1437 TEST=angle_unittests Change-Id: I9acfe1b149546dedeae058841cbabf0d9829cdc9 Reviewed-on: https://chromium-review.googlesource.com/358471 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 701b19bf 2016-07-05T16:04:16 Use the Windows 10 SDK in standalone builds. BUG=None Change-Id: I52a9beeddfc83ee8711cc23979a97c79a4f22227 Reviewed-on: https://chromium-review.googlesource.com/358109 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 3820e9c1 2016-07-04T16:01:15 Set correct type on nodes created in precision emulation The correct type needs to be set so that HLSL output will be able to disambiguate user-defined function calls correctly based on argument types. HLSL output support will be added to precision emulation in a future patch, which will also have tests that verify this patch. The lack of correct type on the nodes is not known to cause any bugs in GLSL output. BUG=angleproject:1437 Change-Id: I53200df066ece0ab4bd7d7a6aab699d6a1ecb659 Reviewed-on: https://chromium-review.googlesource.com/358470 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Zhenyao Mo 7e1200b4 2016-07-05T02:25:13 Revert "The global invariant pragma must not leak across compilations." This reverts commit ae2e19188cf0a9b035a27143f585df10e72ffabd. Change-Id: I017ba4ba9baa633793d7bdd9691c580ed7016cde Reviewed-on: https://chromium-review.googlesource.com/358410 Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Kenneth Russell ae2e1918 2016-07-01T19:52:52 The global invariant pragma must not leak across compilations. BUG=chromium:625363 TEST=conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html Change-Id: Ie8d38e44837fc87bb4c94e76e779ad41e8b79957 Reviewed-on: https://chromium-review.googlesource.com/358203 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Geoff Lang 6e4cfceb 2016-06-13T15:06:31 Refactor ANGLE's image manipulation code into a static library. Allows for chromium to make use of some of the functionality. BUG=612205 Change-Id: Ib4435ca44775a3a554b0fb3bd384bd4d31d7952d Reviewed-on: https://chromium-review.googlesource.com/351753 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 91d56945 2015-07-21T18:56:48 Emulate the pack/unpack functions for unorms. BUG=angleproject:1044 Change-Id: I2cfb792de43d3a6fddd750100c74f948948dc1f6 Reviewed-on: https://chromium-review.googlesource.com/287290 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Corentin Wallez 3bc116e7 2016-07-04T13:49:28 Update dEQP test expectations for fixed tests. BUG=angleproject:1021 BUG=angleproject:1027 BUG=angleproject:1101 BUG=angleproject:1323 Change-Id: I52ce720de66373ea2174890097a6908307a7fa91 Reviewed-on: https://chromium-review.googlesource.com/358168 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jamie Madill ec0b580d 2016-07-04T13:11:59 Re-land "D3D11: Fix readback of BGRA-backed formats." For some BGRA-backed formats (RGBA4, R5G6B5, RGB5A1), our ReadPixels implementation wasn't aware the BGRA format didn't exactly match the RGBA format. For these it would do the 'fast path' memcpy method, when it should stop and do the slow pixel-by-pixel packing method. Fixes conformance2/reading/read-pixels-from-fbo-test.html. Reland: fix empty format info that was causing us to only see the first pixel in the FBO in a ReadPixels call. Also fix bugs in the unorm 16-bit format readback code, and add ASSERTs to catch bugs in subsequent new formats. BUG=angleproject:1407 BUG=chromium:616176 Change-Id: I9fd55b9e1dd6a306eb4db195d775c02a1eb1f93f Reviewed-on: https://chromium-review.googlesource.com/357132 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 563e45aa 2015-05-07T13:31:16 Remove the artificial uniform vector limitation in D3D11. BUG=407309 Change-Id: Ic59bea88f0a4d7a6df9089238be0c79d654016e2 Reviewed-on: https://chromium-review.googlesource.com/269971 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill c2128ff5 2016-07-04T10:26:17 translator: Fix two bugs that trigger ASSERTs. The first bug was a result of constant-folding a vector swizzle that was out-of-bounds. The second bug was a result of using a semicolon in a preprocessor define. BUG=angleproject:1425 Change-Id: Id6643b1f3e3b13cc021bd721ef2572487fe3c8d3 Reviewed-on: https://chromium-review.googlesource.com/357864 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 474a08c0 2016-06-28T10:49:46 Remove qualifiers from empty struct declarations in output Empty struct declarations with qualifiers are rejected by NVIDIA GL driver version 367.27. For example this kind of construct that is expected to be accepted by the WebGL conformance tests is rejected: const struct a { int i; }; Since qualifiers do not carry meaning unless a struct declaration has declarators, they can be simply omitted from the translator output in this kind of cases to work around this driver issue. New unit test is added to check that pruning empty declarations works correctly. BUG=angleproject:1430 BUG=622492 TEST=WebGL conformance tests, angle_unittests Change-Id: Id83f83124ae597fcdfa15100d336c2c207d9449c Reviewed-on: https://chromium-review.googlesource.com/356362 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill a8873ef5 2016-07-04T10:44:42 Fix warnings in PathRenderingTest.cpp. Certain warnings are suppressed in Chromium but not standalone ANGLE. We should enable those warnings for ANGLE specifically, in a follow-up CL. BUG=angleproject:1382 Change-Id: I12491a61b0f349c5937a1e5d9985c8da1d76e0dc Reviewed-on: https://chromium-review.googlesource.com/358107 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Sami Väisänen d59ca052 2016-06-21T16:10:00 Support instanced CHROMIUM_path_rendering This implements instanced path rendering. BUG=angleproject:1382 Change-Id: I4654251882975d707b22c7bb522af14ae34eb1a1 Reviewed-on: https://chromium-review.googlesource.com/355401 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Sami Väisänen <svaisanen@nvidia.com>
Olli Etuaho 10fcd9be 2016-06-30T12:24:09 Add a helper class for compiler string matching tests The MatchOutputCodeTest class makes it easier to implement tests that do string matching on compiler output. Inheriting test classes set the compiler settings, tests then call compile() with the shader string and can call foundInCode() to check if the output code contains a given string. Various compiler unit tests that already did string matching are refactored to make use of this new helper class. Some tests now use SH_GLES3_SPEC instead of SH_GLES2_SPEC - this should not have a significant impact on test coverage. Some compileTestShader function variants that are now unused can be removed from the code. BUG=angleproject:1430 TEST=angle_unittests Change-Id: I1fd3529d5a1c6ab192f95ace800cf162604e68e7 Reviewed-on: https://chromium-review.googlesource.com/357800 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho bbf1c102 2016-06-28T13:31:33 Fix BeginQuery validation ANY_SAMPLES_PASSED and ANY_SAMPLES_PASSED_CONSERVATIVE queries can not be active at the same time. The only place where the State::isQueryActive function is used is validating whether a BeginQuery call is correct, so it can be changed to check for this. BUG=angleproject:1101 TEST=dEQP-GLES3.functional.negative_api.fragment.begin_query Change-Id: Idadf129c6a036570f6e28857bdb24ffc11eeebe8 Reviewed-on: https://chromium-review.googlesource.com/356363 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Yuly Novikov 3c754194 2016-06-27T19:36:41 Skip Texture2DTestES3.UnpackSkipImages2D test on Adreno Android GLES Due to a bug in Adreno glTexImage2D with GL_UNPACK_SKIP_IMAGES. BUG=angleproject:1429 TEST=Texture2DTestES3.UnpackSkipImages2D Change-Id: Iccb4cc968915a623f0aed099b81e759c6e4343f7 Reviewed-on: https://chromium-review.googlesource.com/356494 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov ad6c0452 2016-06-24T22:24:37 Skip SamplerInStruct AsFunctionParameter tests on Adreno Android GLES Due to Adreno bug in compiling struct function parameter in shader. BUG=angleproject:1427 TEST=SamplerInStructAsFunctionParameterTest SamplerInStructArrayAsFunctionParameterTest SamplerInNestedStructAsFunctionParameterTest Change-Id: I979312885f2047e78b61530c97703854a4be1586 Reviewed-on: https://chromium-review.googlesource.com/356125 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov b13e0a5b 2016-06-27T15:25:34 Add android_angle_rel_ng to ANGLE CQ Swarmed Nexus 5X bot. Mirroring Android Release (Nexus 5X) from chromium.gpu.fyi BUG=chromium:617848, chromium:534814 Change-Id: I773c6accd3b4023822ddb165556e3af11ff5c6b1 Reviewed-on: https://chromium-review.googlesource.com/356470 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Corentin Wallez 419bfc91 2016-06-28T10:54:45 On Desktop GL, require index-constant sampler array indexing BUG=598924 Change-Id: If97dbaa782595997b815c70d14f079e0f0c3d82a Reviewed-on: https://chromium-review.googlesource.com/356710 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 0b2cc797 2016-06-29T16:32:34 Update bug IDs for some shadow sampler failures. BUG=angleproject:1436 Change-Id: I4f6c2eaf4bcb2f85fe31c0e0112c0a9651d4ad70 Reviewed-on: https://chromium-review.googlesource.com/357161 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang ce342918 2016-06-29T15:30:44 Update bug IDs for some shadow sampler failures. BUG=angleproject:1435 Change-Id: I4964c84f76991c156dfe49c99dae873ab451c8ab Reviewed-on: https://chromium-review.googlesource.com/357151 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Olli Etuaho dcf12c70 2016-06-28T15:03:06 Fix validating non-square matrix compound multiplication The validation previously checked that two matrices in compound multiplication are the exact same size, which isn't correct for non-square matrices introduced in ESSL 3.00. Instead, check that the matrix multiplication is valid and that the resulting value has the same number of columns as the lvalue. The number of rows in the result is taken from the lvalue so it doesn't need to be checked. BUG=angleproject:1431 TEST=angle_unittests Change-Id: I6f32b7dc037d72c3c5cfdfffcda5d996e8450283 Reviewed-on: https://chromium-review.googlesource.com/356411 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Frank Henigman 62ba9623 2016-06-27T17:08:28 Require libdrm only if use_ozone=1. This is more accurate, and doesn't break platforms with no pkgconfig, e.g. Android. BUG=angleproject:1297 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_gn_chromeos_rel;tryserver.chromium.android:android_compile_dbg Change-Id: Iafbd66a5e81467d2a5431c3bb1ddd26a837888e7 Reviewed-on: https://chromium-review.googlesource.com/356481 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Geoff Lang d33a806f 2016-06-21T15:17:27 Fix Image11::copyFromFramebuffer for emulated texture formats. Simply using the ReadPixels code paths to unpack the framebuffer into a texture was insufficient for handling cases like LUMA or RGB textures that are emulated with RGBA textures in D3D11. Instead, read the framebuffer's data into a buffer and then use the loading functions which are aware of the emulated formats to write the data to the destionation. Fix LUMA format structure's logic for reading colors. They aren't supposed to do any averaging logic. BUG=angleproject:1095 BUG=483282 Change-Id: Iad91d193d4c824573d9e9cafd28cf456d2de8be5 Reviewed-on: https://chromium-review.googlesource.com/354482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 9e55a966 2016-06-28T13:21:21 TextureD3D: No-op on zero-sized CompressedTexImage. TEST=deqp/functional/gles3/negativetextureapi.html BUG=483282 Change-Id: Ifd9674c2d29dc7e3a5e620b7a043cdb38a923ca0 Reviewed-on: https://chromium-review.googlesource.com/356680 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5733801a 2016-06-23T18:10:38 D3D11: Refactor depth/stencil blit code. Blit11 refactorings enable re-using some code for multisample resolve blits. Also some Renderer11 refactorings to use TextureHelper11 make the code more flexible for the multisample resolve, to come later. BUG=angleproject:1246 Change-Id: Id0c168cef75b0f487cb3995a906f6473989edcd5 Reviewed-on: https://chromium-review.googlesource.com/354420 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 82a468af 2016-06-21T17:18:25 Don't unpack un-referenced varyings in the pixel shader. Transform feedback varyings that were optimized out were still being unpacked causing HLSL compilation failures. This was triggering failures in the conformance2/state/gl-object-get-calls.html test. BUG=angleproject:1422 Change-Id: I297cccd5b99435dfb69a3c2b0fd3086b6ddf0b3a Reviewed-on: https://chromium-review.googlesource.com/354590 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 4b7f12b2 2016-06-21T16:47:07 FramebufferD3D: Only make sure that enabled attachments are not the same. It's acceptable to have the same object attached to muliple framebuffer attachments if they are not being drawn to. This was triggering failures in the conformance2/state/gl-object-get-calls.html test. BUG=483282 Change-Id: If088ccd9b1189f060dfa33ebbe4d82f1f47559b0 Reviewed-on: https://chromium-review.googlesource.com/354570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 41db2245 2016-06-25T00:14:28 Skip GLSLTest_ES3.InitGlobalArrayWithArrayIndexing on Adreno Android GLES Due to Adreno compilation failure of two arrays in single line declaration. BUG=angleproject:1428 TEST=GLSLTest_ES3.InitGlobalArrayWithArrayIndexing Change-Id: I05d7c6b3a0eef8c879edf4d9cf24cdec0a2a403c Reviewed-on: https://chromium-review.googlesource.com/356217 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Andrii Shyshkalov fd99bfc6 2016-06-24T16:31:09 Make bucket names explicit in cq.cfg. Don't assume bucket name to start with 'master.'. NOTRY=True BUG=chromium:617627 Change-Id: I4e634fd2f485ac06c8e06af2de0cd86dbf425e9b Reviewed-on: https://chromium-review.googlesource.com/355990 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Frank Henigman 77df676e 2016-06-13T16:39:01 Add ozone display gn build. Pick up ozone source when use_ozone = true. Don't link X11 unless use_x11 = true. BUG=angleproject:1297 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_gn_chromeos_rel Change-Id: I94e6242189646c8a18b00436294bccdd4c5a8785 Reviewed-on: https://chromium-review.googlesource.com/352251 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Nickolay Artamonov 027cda63 2016-06-22T16:42:30 Fix rounding problem for SwapChainPanel size. BUG=angleproject:1421 Change-Id: I08f0fa5f178c8d25cd2b02e75cf92759254aa918 Reviewed-on: https://chromium-review.googlesource.com/355020 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuly Novikov afcec834 2016-06-21T22:19:51 Skip Texture2DTestES3.TextureLuminance16ImplicitAlpha1 on Adreno Android GLES Due to Adreno bug in GL_HALF_FLOAT support BUG=angleproject:1420 TEST=Texture2DTestES3.TextureLuminance16ImplicitAlpha1 Change-Id: Id9bc12da21048a557325f076202ec482675320e3 Reviewed-on: https://chromium-review.googlesource.com/354782 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Frank Henigman c4aba275 2016-06-21T13:56:54 Cast display for eglGetPlatformDisplayEXT(). Cast the second parameter of eglGetPlatformDisplayEXT() to the correct type to stop compiler complaining. BUG=angleproject:1297 Change-Id: I37260edbd0fb6b92c24b556b15ea8206295e12d4 Reviewed-on: https://chromium-review.googlesource.com/354740 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Frank Henigman 35f7ef81 2016-06-21T20:04:39 Ozone null pointer checks. Check for null pointers so DisplayOzone::terminate() doesn't crash when DisplayOzone::initialize() wasn't completely successful. BUG=angleproject:1419 Change-Id: I70e994490a7282083d5289e6c35b077676688b65 Reviewed-on: https://chromium-review.googlesource.com/354700 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Jamie Madill e064d44b 2016-06-21T20:00:41 translator: Fix use-after-free with DepthRange. Because this builtin uses a structure, certain shaders could trigger the mangled name to be allocated during normal shader compilation. Then when the scope is popped, the mangled name for DepthRange is freed, and we're left with a dangling pointer. Fix this temporarily by enforcing mangled name construction when we initialize the builtins, but we should look for a more robust and future-proof fix. BUG=620937 Change-Id: If130c8b48a18054502abaec08f10264f282b4925 Reviewed-on: https://chromium-review.googlesource.com/354494 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Antoine Labour <piman@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
David Landell 9146bfa3 2016-06-22T10:13:45 Include what you use mbstowcs needs stdlib.h header on mipsel BUG= Change-Id: Ia93d0a877b2e22d5c1c461f0dea9999ede725520 Reviewed-on: https://chromium-review.googlesource.com/354020 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Frank Henigman be5a8a40 2016-06-22T02:16:16 Revert "use_ozone=1 for ANGLE CQ." This reverts commit 13511a9ccd1ec35a4ddd17fa44f590125bbe0c95. Change-Id: Ic5a91d14b59204c5667940797742bc55a137f177 Reviewed-on: https://chromium-review.googlesource.com/354706 Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Frank Henigman 13511a9c 2016-06-14T13:31:24 use_ozone=1 for ANGLE CQ. Add tryserver.chromium.linux:linux_chromium_gn_chromeos_rel to ANGLE CQ to build test with use_ozone=1. BUG=angleproject:1412 Change-Id: Ib4e851b95f7cfbb7099b531affccd14f08418725 Reviewed-on: https://chromium-review.googlesource.com/352318 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Robert Sesek db8ae836 2016-06-21T11:47:03 [Mac/GN] Properly set the install_name and rpath for shared_library targets and their consumers. BUG=621932 R=cwallez@chromium.org Change-Id: I10b0fd5a668d74b7062747002bc48ef0e0a6df9c Reviewed-on: https://chromium-review.googlesource.com/354302 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 4fb43115 2016-06-21T08:59:49 Add dEQP suppressions for two failing tests. BUG=angleproject:1418 BUG=angleproject:1340 Change-Id: I8930845a2d398440a78b2569daaf655b51a30ee9 Reviewed-on: https://chromium-review.googlesource.com/354261 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e9a6593a 2016-06-20T17:57:05 Fix suppression for Intel. BUG=None Change-Id: I3e2e7e845e9ad3814f7d85e56c12023a5e2ef0df Reviewed-on: https://chromium-review.googlesource.com/354104 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 55deb36c 2016-06-20T13:43:06 Fix warning about unused local variable. BUG=angleproject:1382 Change-Id: I63925fb7eeff2bdab26c1e541afd9cd1851485e6 Reviewed-on: https://chromium-review.googlesource.com/354083 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill c7d6ea48 2016-04-21T16:02:57 Roll dEQP cc0ded6c77267b..cd361df193e7535b9 https://android.googlesource.com/platform/external/deqp/+log/cc0ded6c77267b..f4f3d8079e7a37d7 BUG=None Change-Id: I863f81d2c4c3f48862cb821b23c38266987a82a2 Reviewed-on: https://chromium-review.googlesource.com/340260 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo b0987761 2016-06-17T18:10:15 Don't emit shader_texture_lod and draw_buffers extensions in core profile shader. BUG=angleproject:1416 TEST=conformance/extention/ in core profile R=jmadill@chromium.org,geofflang@chromium.org,cwallez@chromium.org Change-Id: I89b815929535586a2e90489129a1c6692bb87b3c Reviewed-on: https://chromium-review.googlesource.com/353820 Tryjob-Request: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Geoff Lang a81af59b 2016-06-20T11:16:44 Fix incorrect PathParameter overload being called. BUG=angleproject:1382 Change-Id: I9fd6e20b9487f9d7817865bc9129a60fc833d0ca Reviewed-on: https://chromium-review.googlesource.com/354030 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 0344b1e5 2016-06-20T11:17:37 Fix float-to-int conversion warnings in the path rendering tests. BUG=angleproject:1382 Change-Id: I586cd4a03d06a6ec87b6a57342b7f8d0ed0d9cd8 Reviewed-on: https://chromium-review.googlesource.com/354031 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez f8559282 2016-06-16T18:21:19 Update the dEQP test expectations BUG=angleproject:1092 BUG=angleproject:1095 BUG=angleproject:1323 Change-Id: I58550f841febbfdf45133707f72e7f3a62b20a1c Reviewed-on: https://chromium-review.googlesource.com/353343 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Corentin Wallez c7f59d02 2016-06-20T10:12:08 Suppress a Wintel/OpenGL failure on a new test. BUG=angleproject:1388 Change-Id: I4d346ca3c6914e56055aa6492d9d013634a1b9ad Reviewed-on: https://chromium-review.googlesource.com/353693 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sami Väisänen e45e53bd 2016-05-25T10:36:04 Support CHROMIUM_path_rendering This is partial support for CHROMIUM_path_rendering and implements basic path management and non-instanced rendering. BUG=angleproject:1382 Change-Id: I9c0e88183e0a915d522889323933439d25b45b5f Reviewed-on: https://chromium-review.googlesource.com/348630 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sami Väisänen 2e1ba274 2016-06-20T15:15:20 Added Sami Väisänen (Nvidia) to CONTRIBUTORS Change-Id: I791fd7c4e145c37d0173e23cf57f937f802c26ea Reviewed-on: https://chromium-review.googlesource.com/353701 Reviewed-by: Sami Väisänen <svaisanen@nvidia.com> Commit-Queue: Sami Väisänen <svaisanen@nvidia.com>
Yuly Novikov 095aaa0e 2016-06-17T01:02:53 Skip ReadPixelsPBOTest.SubDataOffsetPreservesContents on Adreno Android GLES Due to either Adreno bug in glBufferSubData, or generic Android bug in ANativeWindow_setBuffersGeometry. BUG=angleproject:1415 TEST=ReadPixelsPBOTest.SubDataOffsetPreservesContents Change-Id: If55f6ad4eacde98cfdbc46a61cc9fb479b779297 Reviewed-on: https://chromium-review.googlesource.com/353396 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov d364780a 2016-06-16T15:58:35 Skip ReadPixelsTest.OutOfBounds on Adreno Android GLES Due to Adreno bug in glReadPixels BUG=angleproject:1413 TEST=ReadPixelsTest.OutOfBounds Change-Id: I2fd426bc6d21f5d9604ca32ad34dd8841cbb9a3e Reviewed-on: https://chromium-review.googlesource.com/353363 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 438dbcf1 2016-06-17T14:20:05 translator: Fix builtin function emulator use-after-free. We were calling the global pool allocator in the builtin function emulator, which would lead to us freeing TTypes that were still referenced. Fix this by using the TCache which was designed for such a purpose, and locking the allocator around the builtin function emulator to try and prevent similar bugs from creeping in. Eventually we would like to get rid of the global allocator and replace it with different pools in different contexts, which are managed more safely. BUG=620937 Change-Id: If501ff6ea4d9bf8a2b8f89f2c94a01386f79ee3a Reviewed-on: https://chromium-review.googlesource.com/353671 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8bcba147 2016-06-17T12:58:01 Set GERRIT_SQUASH_UPLOADS to False. ANGLE uses a workflow where we upload stacks of dependent patches to Gerrit. The Chromium workflow has squashed by default for a long time, so the infra team is planning to switch to squash by default. This change will preserve our workflow. See http://crbug.com/611892 BUG=None Change-Id: I62ab7a26d5bd899fbb8c48a1aced7d044640a66a Reviewed-on: https://chromium-review.googlesource.com/353039 Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Jamie Madill 362876b1 2016-06-16T14:46:59 Cache Framebuffer completeness. Improves performance on the render-to-texture microbenchmark by ~3x on the OpenGL back-end. Wipes out several of the top profling hotspots on that benchmark. BUG=angleproject:1388 Change-Id: I6a35a0b435b2ed3c83d32acdb9df090df98214ad Reviewed-on: https://chromium-review.googlesource.com/348957 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
John Bauman 73d417ed 2016-06-17T00:49:40 Revert "D3D11: Fix readback of BGRA-backed formats." This reverts commit 230d95616d1309914a6703e27a797a440806dd02. This broke GLES2ConformTest.GL2Tests_framebuffer_objects_input_run on the NVIDIA Win8 Chromium bots. BUG=chromium:620908 Change-Id: Idf6e3eb51483ff0b6bc758b95c5910863ddfc25f Reviewed-on: https://chromium-review.googlesource.com/353394 Reviewed-by: John Bauman <jbauman@chromium.org> Commit-Queue: John Bauman <jbauman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov a1f6dc95 2016-06-15T23:27:04 Varying invariance must match between shaders in ESSL 1.00 While in ESSL 3.00 invariant is allowed only for out varyings. Verify that, and update test expectations. BUG=angleproject:1293 TEST=GLSLTest*.Invariant* Change-Id: I5cab6c68f2b94ea2179719119668d905fe7a9b3d Reviewed-on: https://chromium-review.googlesource.com/352743 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov cfa48d37 2016-06-15T22:14:36 Shader versions must match. Per GLSL_ES_Specification_3.00.4 paragraph 3.3 Version Declaration: "Shaders declaring version 3.00 of the shading language cannot be linked with shaders declaring version 1.00." BUG=angleproject:1361 TEST=GLSLTest_ES3.VersionMismatch Change-Id: Icee672b798dcdb41a189e4a6459c4e643daf1fa6 Reviewed-on: https://chromium-review.googlesource.com/353182 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 230d9561 2016-06-15T18:11:52 D3D11: Fix readback of BGRA-backed formats. For some BGRA-backed formats (RGBA4, R5G6B5, RGB5A1), our ReadPixels implementation wasn't aware the BGRA format didn't exactly match the RGBA format. For these it would do the 'fast path' memcpy method, when it should stop and do the slow pixel-by-pixel packing method. BUG=angleproject:1407 BUG=chromium:616176 Change-Id: Ie24758513af6f9ef87f0aa503135456c96493701 Reviewed-on: https://chromium-review.googlesource.com/352252 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cd1b1226 2016-06-16T13:58:54 perf_tests: Work around stalls in gl_null test teardown. The Clear command in the draw call benchmark was not being properly no-op'ed. This would cause the driver to get a huge queue of GL command, which it would only flush when the test was torn down. This manifested as a 5+ second stall on test teardown. Looking at the clear command, it does some work with binding and then calling GL functions, so properly filtering out the driver commands would be a bit more complicated. For now, we can hack in a workaround for the draw call test (the only one that uses the GL NULL renderer at the moment) to not call clear when it would give us problems. BUG=620687 Change-Id: I64a2ed1883e8d3bf0d4c423c8bce0902ae9bf8df Reviewed-on: https://chromium-review.googlesource.com/352828 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 218cf9ee 2016-05-20T13:55:24 Fix unpacking overlapping unpack buffer rows on NVIDIA GL When unpack parameters are set so that rows being read overlap in the unpack buffer stored in GPU memory, NVIDIA GL driver may not upload the last pixels of the last one or more rows of a texture. The driver may also crash when the amount of overlap is high. This issue affects both TexImage* and TexSubImage* calls. Work around the issue by uploading textures row by row when the rows being read overlap in the unpack buffer. The workaround could possibly be optimized by uploading several of the first rows with a single call in some cases where the amount of overlap is low, but this is expected to be a rarely used corner case, so the added complexity that the optimization would create seems like a bad tradeoff. The issue does not seem to be triggered when the layers (images) of a 3D texture overlap, as long as the rows inside the images don't. The workaround has been ported from Chromium. This patch adds setting dirty bits when unpack state is set in StateManagerGL. The included test case also reveals some issue in the D3D backend, but this is left to be addressed later. BUG=angleproject:1376 TEST=angle_end2end_tests Change-Id: I7dbe73ebb70bbbc284fa92381546f4f2f832d333 Reviewed-on: https://chromium-review.googlesource.com/346430 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
James Ross-Gowan cd9aa12a 2016-06-15T22:35:50 D3D11: Prevent DXGI hooking the Alt+Enter keystroke When ANGLE is using D3D11 and not using DirectComposition, DXGI will hook the window's message loop and override Alt+Enter to trigger a transition to exclusive fullscreen mode. This disables that behaviour, since it's inconsistent between backends and, at least during my testing, the application did not even work correctly after the transition to fullscreen mode. This commit should be similar to the workarounds implemented in Qt and mpv to prevent this behaviour and will hopefully make those workarounds unnecessary. Only the DXGI_MWA_NO_ALT_ENTER flag is used, since the other flags didn't seem to have an effect and probably only matter in fullscreen mode. BUG=angleproject:1414 Change-Id: Icb70c2c1405225619dcb27c5ffc9472fddd1157b Reviewed-on: https://chromium-review.googlesource.com/352950 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 989cac34 2016-06-08T16:18:49 Validate that unpack skip is in bounds Unpack skip needs to be taken into account when determining which part of the unpack buffer is read. This is now done in the out-of-bounds check when validating texture upload calls. Unpack skip code is removed from D3D9 backend, since skip is not supported in GLES2. BUG=angleproject:1411 TEST=angle_end2end_tests Change-Id: I0db4db0877a352613c57e2820e5b650edb5a73ab Reviewed-on: https://chromium-review.googlesource.com/352450 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho e29324ff 2016-06-15T10:58:03 Don't allow returning a struct containing an array in ESSL 1.00 ESSL 1.00.17 section 6.1 forbids this. Returning arrays was already covered by the checks that disallow declaring array types in ESSL 1.00. BUG=angleproject:1015 TEST=dEQP-GLES2.functional.shaders.functions.* (2 new tests pass) dEQP-GLES3.functional.shaders.functions.* (no regression) Change-Id: Iaffa1631c0c940afb57819221e7e8603b2305021 Reviewed-on: https://chromium-review.googlesource.com/352920 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 51f40ecd 2016-06-15T14:06:00 Make Framebuffer::checkStatus non-const. BUG=angleproject:1388 Change-Id: Ia9befba0c915c087f2fe0557d91060256f6d4950 Reviewed-on: https://chromium-review.googlesource.com/348955 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>