kc3-lang/angle/src/tests

Branch :


Log

Author Commit Date CI Message
19d48db1 2016-01-13 14:43:21 Fix incorrect delete function call in TextureTest The test must call glDeleteBuffers to delete a buffer instead of glDeleteTextures. This was one reason behind the texture tests failing on the GL backend. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I67042f6948146f3c3fca9e01231b0c4935a6f08d Reviewed-on: https://chromium-review.googlesource.com/321611 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
5faa15bf 2016-01-11 13:32:48 Fix null sampler warning in TextureTest.TextureNPOT_GL_ALPHA_UBYTE The test deliberately tries to render a scene using an invalid texture. ANGLE rendered this correctly, but when it bound the dummy 1x1 black texture that's used instead of invalid textures, it didn't bind a sampler state. This meant that D3D had no pixel shader samplers bound, and outputted a debug warning. Also, technically the test should have been setting GL_UNPACK_ALIGNMENT=1, but that wasn't impacting the result of the test. BUG=angleproject:1248 Change-Id: I871706d518077ea840a585ae0df8f9176e130cb1 Reviewed-on: https://chromium-review.googlesource.com/321391 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
2173db3d 2016-01-12 13:55:14 Add sampler array tests This adds some coverage for samplers that is missing from dEQP. The shaders in the added tests both have a sampler array with two samplers. The test shaders sample both textures, add up the results, and the tests then check that the results of the shaders are correct. Only constant indexing is used to access the sampler arrays. One test accesses the sampler array in the main function, another one first passes the array as a parameter to a user-defined function. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I9a0100705ac0da4905d50da37c0149fdbdd24c42 Reviewed-on: https://chromium-review.googlesource.com/321623 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
4644a20b 2016-01-12 15:12:53 Add a test for sampler as a function parameter This adds some coverage for samplers that's missing from dEQP. The test shader passes a sampler to an user-defined function, samples the texture there and sets the returned sample to gl_FragColor. The test then checks that the shader result is correct. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: I2cc511e591a4af01515c6fb38fd43c5f15337bcb Reviewed-on: https://chromium-review.googlesource.com/321622 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
53a2da13 2016-01-11 15:43:32 Test drawing with a shader with two different sampler types This adds some test coverage that's missing from dEQP. The test uses two different samplers in a shader, a cube map sampler and a 2D texture sampler, adds the sampling results together and checks if the result is correct. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: If21e24c964fc208b5d1ccd446834dabf13194944 Reviewed-on: https://chromium-review.googlesource.com/321621 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
4a8329f2 2016-01-11 17:12:57 Refactoring: Split TextureTest to multiple classes This removes the cube map setup and the draw scale parameter from the tests that don't need them, and reuses the code for setting up the window and the shader program for most of the texture tests. The tests are now structured as follows: TexCoordDrawTest: Test class that sets up a shader program for drawing with texture coordinates. Vertex shader source can be overridden in subclasses, and fragment shader source must be specified in subclasses. Texture2DTest: Inherits TexCoordDrawTest, sets up a 2D texture and a shader for drawing from it. Texture2DTestWithDrawScale: Inherits Texture2DTest, adding a scale parameter that scales the quad that gets drawn. TextureCubeTest: Inherits TexCoordDrawTest, sets up a cube map and a 2D texture and a shader for drawing from them. Texture2DArrayTestES3: Inherits TexCoordDrawTest. Reserves a texture ID and sets up an ESSL3 shader for drawing from a 2D texture array. Also add a few comments about where things being tested are specified. Also, ANGLETest::drawQuad parameter names are renamed to make their meaning clearer. The parameters affect the vertex shader attribute values, which the shader may use for other things besides setting the vertex position. BUG=angleproject:1261 TEST=angle_end2end_tests Change-Id: Id673e36d5883aaaf47f2f830c2a1ad0ca293d578 Reviewed-on: https://chromium-review.googlesource.com/321620 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
1fae3556 2016-01-07 14:33:48 Add dEQP Linux GN integration. BUG=angleproject:1272 Change-Id: I20cb8968221c25bb374b3cc71d7ca619a35f1a2f Reviewed-on: https://chromium-review.googlesource.com/320781 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
5f80d016 2016-01-11 11:16:01 Disallow invariant(all) pragma in ESSL 3.00 fragment shaders ESSL 3.00.4 section 4.6.1 says that using #pragma STDGL invariant(all) in a fragment shader is an error, so make it an error. This spec language is not found in ESSL 1.00, and it's been removed in ESSL 3.10. BUG=angleproject:1276 TEST=angle_unittests Change-Id: I2022f35475f867304b55dfb142f8568f6df28830 Reviewed-on: https://chromium-review.googlesource.com/321240 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
edbc2449 2016-01-04 11:25:00 Add dEQP GN integration. This is Windows-only for now, but will be expanded to Linux. Also do a bit of refactoring in our deqp.gypi file. BUG=angleproject:1272 Change-Id: I526a99fe3b91a2d9e8901c7e033a4916a06780be Reviewed-on: https://chromium-review.googlesource.com/320800 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
ff318af1 2015-12-22 15:34:45 Fix BlendMinMaxTest.RGBA16F on D3D11 Feature Level 9_3 This test checks for OES_texture_half_float, but it's trying to use a 16F texture as a color buffer so it should be checking for EXT_color_buffer_half_float. Since EXT_color_buffer_half_float requires more format support (e.g. R16F, RG16F, RGB16F) than OES_texture_half_float, it's possible for an implementation to support one extension and not the other. D3D11 Feature Level 9_3 does this. Change-Id: I40fb38aa3f419be2606464bd0476cd064afe90fa Reviewed-on: https://chromium-review.googlesource.com/319642 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
539146e1 2016-01-06 19:34:18 Add rpath for GN build of angle_end2end_tests. This fixes the static library build of this target on Linux. BUG=angleproject:1270 Change-Id: Id65bd9b7136918829f385920b540a4df83650c6f Reviewed-on: https://chromium-review.googlesource.com/320615 Tested-by: Kenneth Russell <kbr@chromium.org> Tryjob-Request: Kenneth Russell <kbr@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
8d8b108a 2016-01-04 16:44:57 Disallow local function prototypes Function prototypes should not be allowed inside other functions according to ESSL 3.00.4 section 4.2.4. BUG=angleproject:1068 TEST=angle_unittests, dEQP-GLES*.functional.shaders.functions.invalid.local_function_proto* Change-Id: I54160da4d49b92a6cd7cbee020e67733963d4e10 Reviewed-on: https://chromium-review.googlesource.com/320091 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
5d653186 2016-01-04 14:43:28 Disallow multiple function prototypes in ESSL 1.00 The same function can't be declared twice in ESSL 1.00. In ESSL 3.00 this is allowed. A function prototype following the definition of that function is not interpreted as redeclaration, and the shader compiler continues to allow this. BUG=angleproject:1067 TEST=angle_unittests, dEQP-GLES2.functional.shaders.functions.invalid.double_declare* Change-Id: I6d2ddafd456d378d92839600f19069ad1cd19aff Reviewed-on: https://chromium-review.googlesource.com/320082 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
e1743f37 2016-01-06 05:24:22 Clang warning fixes This fixes member initialization order and unused private member warnings that broke the Clang build after the last Angle roll. BUG=82385 Change-Id: If866f352bda6d66093c180fdbec6c16bf902b628 Reviewed-on: https://chromium-review.googlesource.com/320466 Reviewed-by: Nico Weber <thakis@chromium.org> Tryjob-Request: Nico Weber <thakis@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
7ee40d1a 2016-01-04 08:37:00 Fix compilation failures on OSX standalone builds BUG= Change-Id: Ifd40ae30d601227caf550546fcffc286cf533a73 Reviewed-on: https://chromium-review.googlesource.com/320290 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
0d53c400 2016-01-05 03:30:51 Revert "Ignore clang -Wall warning." This was not working as intended. The correct fix was implemented in 444922662a59a45ad8f86ec9480b180571337f4e This reverts commit 74b92323c9a210178ab97cc9418d6bf639cb9d8c. Change-Id: Ib2bc3861bcdb49555b59981ca95f1c1c1e924d7d Reviewed-on: https://chromium-review.googlesource.com/320480 Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
465b3a5f 2015-12-15 12:08:24 Add texture sampling perf test The test generates a texture containing random data and then blurs it in a fragment shader using nearest neighbor sampling. The test is specifically designed to test overhead of GLSL's builtin texture*() functions that may result from how ANGLE translates them on each backend. BUG=angleproject:1261 TEST=angle_perftests Change-Id: I188fa8c07e609b7f371e587358f913b506bd7d44 Reviewed-on: https://chromium-review.googlesource.com/319382 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
44492266 2016-01-04 13:04:08 Disable virtual destructor warning in dEQP. This small error in dEQP triggers a warning that was recently enabled in Chromium builds. We should remove the suppression once we fix dEQP. BUG=angleproject:1271 Change-Id: I9df3a304043b6decc00440103d105c9de76dc2db Reviewed-on: https://chromium-review.googlesource.com/320320 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
66641c61 2016-01-04 15:31:15 Fix typo in shader test The only error in the test should be the non-integer index. gl_FragColor should be used correctly. BUG=angleproject:1254 TEST=angle_unittests Change-Id: I0b7a36be5485661cc03bf2c476aaacae5d3b6e76 Reviewed-on: https://chromium-review.googlesource.com/320280 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
70d0f499 2015-12-10 17:45:46 Implement GL_KHR_debug. BUG=angleproject:520 Change-Id: I9ced3e7ab1515feddf2ec103c26b2610a45b1784 Reviewed-on: https://chromium-review.googlesource.com/319830 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
74b92323 2016-01-02 09:58:25 Ignore clang -Wall warning. Change-Id: I76e3cd5038457a7d978497ef9a5ebee60b05e34d
66988745 2015-12-22 19:39:19 Revert "Implement GL_KHR_debug." This reverts commit 6c521b7a70a53b1c9f7762e53e34b5a8146b0f7b. Change-Id: I6ff981198e31f34d3e405edea6277ee75516d6ee Reviewed-on: https://chromium-review.googlesource.com/319820 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
6c521b7a 2015-12-10 17:45:46 Implement GL_KHR_debug. BUG=angleproject:520 Change-Id: I78d14cc8c94f5cef58604220f0ca847473b25bf8 Reviewed-on: https://chromium-review.googlesource.com/317820 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
8047f065 2015-12-15 17:54:42 Improve perf testing framework The ANGLERenderTest subclasses have a parameter "iterations". Previously most of these tests would perform iterations^2 iterations, since the looping was done both in ANGLERenderTest and in the individual test classes. Do the looping only in the individual test classes instead. This enables getting rid of separate beginDrawBenchmark() and endDrawBenchmark() functions. Some other unused code is also removed: 1. stepBenchmark function 2. unused parameters to step() This makes the core loop of running tests simpler. The perf testing framework also now has shared logic for deciding when to end a given test. The score calculation for tests is also changed. Instead of reporting just the number of operations done, it is reported relative to the actual run time of the test. This should make the test results more accurate, since run time of the tests may have some variation. It also enables changing the run time of the tests without rebaselining them. In the tests that use GPU, GPU operations are also waited to finish before stopping the timer. BUG=angleproject:1261 TEST=angle_perftests Change-Id: I69e9aad8afd2d9dedd60e144f0a5d4203618feef Reviewed-on: https://chromium-review.googlesource.com/319381 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
add0ef14 2015-12-17 15:43:31 Remove deprecated ShShaderOutput versions. These aren't referenced from Chromium code any more. BUG=chromium:550487 Change-Id: Ie4094667ec5f739efd9f1253ffdb779deaf3cebc Reviewed-on: https://chromium-review.googlesource.com/319162 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org>
fecbed9f 2015-12-17 12:01:12 Fix code style in perf tests 1) Format switch/case with git cl format 2) Change NULL -> nullptr 3) Change int to GLint where appropriate 4) Use more appropriate variants of asserts BUG=angleproject:1261 TEST=angle_perftests Change-Id: I97d6260dbd72ef3897fff145682b7043bf323b76 Reviewed-on: https://chromium-review.googlesource.com/319380 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
31aabdfb 2015-12-16 10:53:46 gyp: Always use pkg-config wrapper Calling pkg-config directly doesn't work when building with a sysroot image as it will looks for host libraries rather than those within the sysroot. BUG=chromium:569947 Change-Id: I6f3e63c1816cd9393110cb3060744a69a93c9a2e Reviewed-on: https://chromium-review.googlesource.com/318771 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Sam Clegg <sbc@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
cd089732 2015-12-17 09:53:09 Re-land "Implement GL_EXT_color_buffer_half_float." This exposes previously enabled functionality. Also update the format support check to be: supported: GLES3 || texture extension renderable: supported && color buffer extension filterable: filtering extension (Note: we silently support float rendering in ES2) Re-land with suppression for newly exposed failing test. BUG=angleproject:445 Change-Id: I4e46699e6b0c2ec8a7d8b36f1f598af1ec6420bc Reviewed-on: https://chromium-review.googlesource.com/318931 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
0a90f527 2015-12-17 14:51:56 Revert "Implement GL_EXT_color_buffer_half_float." Failing dEQP-GLES3.functional.fbo.color.repeated_clear.sample.tex2d.rgb16f http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20dEQP%20%28NVIDIA%29/builds/4651 Likely missing a suppression for this test. It likely passed only because the extension was missing and it was passing as not supported. BUG=angleproject:1229 This reverts commit 39f9251daef5c4ddb4b7c413466a092f4a7f21bf. Change-Id: Ia703378d5aaacafc14503aff0b52a795b7eb4467 Reviewed-on: https://chromium-review.googlesource.com/319080 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
39f9251d 2015-12-14 15:34:09 Implement GL_EXT_color_buffer_half_float. This exposes previously enabled functionality. Also update the format support check to be: supported: GLES3 || texture extension renderable: supported && color buffer extension filterable: filtering extension (Note: we silently support float rendering in ES2) BUG=angleproject:1229 Change-Id: Icf0775891d6e336acd1a0ac07c3b37cf6bb0f101 Reviewed-on: https://chromium-review.googlesource.com/308430 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
90c253a6 2015-12-15 15:14:08 Add an instancing perf test. BUG=526217 BUG=angleproject:1164 Change-Id: Ia353a3b2fa0ab0e8b7fd15d72bb63e5ecb7833b1 Reviewed-on: https://chromium-review.googlesource.com/301469 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
3215b207 2015-12-15 16:41:39 Validation cube completeness for FBO attachments. ES3 adds a clause that cube map FBO attachments must be cube complete to produce complete framebuffers. ES2 doesn't have this clause, but some (if not all, unverified) OpenGL back-ends don't support these incomplete cube map attachments. BUG=angleproject:1259 Change-Id: Idd4564488375b8646dde712e6ce4a158c23020ee Reviewed-on: https://chromium-review.googlesource.com/318264 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
cb34ea5e 2015-12-11 16:01:18 Re-land "Finish ReadBuffer support in end2end_tests." Currently we had a few TODOs concerned about unimplemented calls in ANGLE. ANGLE now has support for ReadBuffer, so uncomment the calls. Re-land with end2end_tests fix. BUG=angleproject:940 Change-Id: I6e00c3aac6307308fb7f00c7e0426812563ed778 Reviewed-on: https://chromium-review.googlesource.com/317821 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
8e89866d 2015-12-11 12:24:21 Remove redundant index integer check from ValidateLimitations Non-integer indices are already rejected in the parser, so the ValidateLimitations pass doesn't need to check for them. ESSL 1.00 spec is not actually terribly clear about whether the parser should do this check, but the language grammar in the spec only has indexing with "integer_expression" so it seems like ANGLE's interpretation of only allowing indexing with integers is correct. ESSL 3.00 makes this restriction explicitly clear in section 5.7. BUG=angleproject:1254 TEST=angle_unittests Change-Id: I02b2a6f4d9fa7801a98df63ed21bc990e1585eb8 Reviewed-on: https://chromium-review.googlesource.com/317741 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
8a76dcc7 2015-12-10 20:25:12 Don't try to apply ForLoopUnroll to loops it can't handle ForLoopUnroll should only mark loops that fit the limitations in ESSL 1.00 Appendix A. BUG=angleproject:1253 TEST=angle_unittests, WebGL conformance tests Change-Id: I00b0a7d29cd42efea9611d020aa1f873ac04773f Reviewed-on: https://chromium-review.googlesource.com/317551 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
5807a536 2015-12-03 13:01:22 Fix buffer unbinding upon deletion. - Remove buffer bindings for new ES3 buffer types. - Fix detachment behavior to GLES3 spec, i.e. detach only from currently bound containers. - Make pack/unpack buffer binding parameter available in GLES3. - Update test expectations. BUG=angleproject:1191 Change-Id: Iab4c1de8d96a523d5af55d22956d50c10f7c93c2 Reviewed-on: https://chromium-review.googlesource.com/315521 Tryjob-Request: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
d561057f 2015-12-10 19:42:09 Fix ValidateLimitations for folded non-constant expressions ANGLE recently gained the ability to constant fold some expressions that are not constant expressions. ValidateLimitations should continue to recognize all cases where an expression is not a constant expression. BUG=angleproject:851 TEST=angle_unittests Change-Id: I8ad0552a59213cdd6af9a220ffd672be9752271d Reviewed-on: https://chromium-review.googlesource.com/317281 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
b0f0b81d 2015-11-21 17:49:29 Don't skip delete_bound.transform_feedback. A one-line subset of 36167ab3 allowed dEQP-GLES3.functional.lifetime.delete_bound.transform_feedback to pass, though it indented that line differently than its neighbors. Fix up the indentation and don't skip the test. BUG=angleproject:1150 TEST=angle_deqp_gtest_gles3_tests --gtest_filter='*transform_feedback*' Change-Id: I8471bd46f8a642b0945b43ab9b980c11c50d63c0 Reviewed-on: https://chromium-review.googlesource.com/313860 Tryjob-Request: Frank Henigman <fjhenigman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
31c9d16e 2015-12-08 10:51:25 Re-land "Disable RTTI in VS release builds" - Re-land with fix for Chromium Debug Windows builds Chrome forbids RTTI, but standalone ANGLE currently allows it. Disallowing RTTI in standalone release builds brings ANGLE and Chrome closer, and prevents accidental use of dynamic_cast in ANGLE. It also reduces binary size. Win10 libGLESv2 (x86) is 47KB smaller after this. BUG=angleproject:1239 Change-Id: I505fd0d72868a38444e47198a9bf85ee3e25719f Reviewed-on: https://chromium-review.googlesource.com/316830 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
08bf81d5 2015-12-09 16:23:32 clang/win: Let EGLDeviceTest.cpp build with -Wextra on trunk too. Like https://chromium-review.googlesource.com/317360, but for code that's in ANGLE trunk but not yet rolled in by Chromium. BUG=567877 Change-Id: I59b1568b134f57919eb333e99e7d185416d5d3b5 Reviewed-on: https://chromium-review.googlesource.com/317390 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
d3754d82 2015-12-09 22:45:44 Revert "Finish ReadBuffer support in end2end_tests." Fails on the bots, on ReadPixelsTest.DrawWithPBO/ES3_D3D11 BUG=angleproject:940 This reverts commit ada5d07ec6c3578eb07adbb647360c0ae60edf46. Change-Id: I60c71af6317f6b5ee1bf1555cb4573c5e82a11d6 Reviewed-on: https://chromium-review.googlesource.com/317430 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
0c93b8a0 2015-12-09 15:31:40 clang/win: Let EGLDeviceTest.cpp build with -Wextra. In a Chromium build, this target is built as part of gpu, with the chromium_code warning settings applied. Make sure it builds in that config. BUG=567877 Change-Id: I7464538a259295d83d990853b06b9ba76b82889d Reviewed-on: https://chromium-review.googlesource.com/317360 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
ada5d07e 2015-12-08 15:40:52 Finish ReadBuffer support in end2end_tests. Currently we had a few TODOs concerned about unimplemented calls in ANGLE. ANGLE now has support for ReadBuffer, so uncomment the calls. BUG=angleproject:940 Change-Id: Ib297e3ab7f2fa2424ee2cc85918331066dae4475 Reviewed-on: https://chromium-review.googlesource.com/317340 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
508a5b7d 2015-12-08 11:26:14 Windows: Write test name in debug log. This helps isolate particular debug log messages to specific tests. BUG=angleproject:667 Change-Id: I6be37d50cc41a13abbceb395e6e9b603bd44c7bd Reviewed-on: https://chromium-review.googlesource.com/316611 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
1e928bc0 2015-12-09 13:17:39 dEQP/Win: Skip trig tests that crash on new compiler. The new version of D3DCompile_47.dll that gets bundled with the Chromium depot_tools Windows SDK seems to crash when compiling these shaders, I think during the optimization step. BUG=angleproject:1252 BUG=568170 Change-Id: Ic54a6353ffe3520ecc5e5012721c0a09eb370b22 Reviewed-on: https://chromium-review.googlesource.com/317331 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
6163c759 2015-12-07 16:32:59 ES3: Allow floating point blit conversions under extension. If we support EXT_color_buffer_float, we should also allow blits to and from float and fixed point data, according to the extension spec. BUG=angleproject:1243 TEST=dEQP-GLES3.functional.fbo.blit.* Change-Id: I0957ac0647c94e38ebd67480c608eeb16c82dbf4 Reviewed-on: https://chromium-review.googlesource.com/316030 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
c5629759 2015-12-07 16:29:04 Implement full program binary support for ES3. Refactor validation to be used in both the OES and ES3 entry points. BUG=angleproject:600 BUG=angleproject:1101 Change-Id: I2008c4ea04ce07910f03ae0b997f8a77b66203d8 Reviewed-on: https://chromium-review.googlesource.com/316620 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
36167ab3 2015-12-07 10:27:14 Don't allocate VertexArray or TransformFeedback objects until binding. Follow the spec more closely and only reserve IDs of vertex arrays and transform feedback objects before binding. This saves memory and allows the glIs* calls to succeed. BUG=angleproject:1218 BUG=angleproject:1101 Change-Id: I0039680c39c66c1c5506f6a1a9121a71791b77e9 Reviewed-on: https://chromium-review.googlesource.com/316591 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
50b3fe89 2015-12-08 14:49:12 Revert "Don't allocate VertexArray or TransformFeedback objects until binding." This reverts commit 070c0124be642383220ca44f795225b89d56f13b. Change-Id: I4ffa528f63311615bb4e22593c6e8a0ec424cd2d Reviewed-on: https://chromium-review.googlesource.com/316780 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
6c9b2ae9 2015-12-08 13:43:11 Revert "D3D11: Use clamp wrap mode for Integer textures." dEQP-GLES3 texture failures: http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20dEQP%20%28NVIDIA%29/builds/4510/steps/angle_deqp_gles3_tests/logs/stdio dEQP-GLES3.functional.shaders.texture_functions.texture.isampler* dEQP-GLES3.functional.shaders.texture_functions.texture.usampler* BUG=angleproject:1244 This reverts commit 7a6a1ffeb275a8b565701305c8b42857ff2bf0b0. Change-Id: I0e25e7aed0e0d78015d5b8f5a7b9a81e0a5fca4e Reviewed-on: https://chromium-review.googlesource.com/316641 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
61fea139 2015-12-07 14:20:02 Protect against overflow in BinaryInputStream. BUG=angleproject:1112 Change-Id: I6d58d9e0db97ec6c67661abd92b57f61f357d6b5 Reviewed-on: https://chromium-review.googlesource.com/316640 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
41a2b8ea 2015-12-07 21:44:26 Revert "Protect against overflow in BinaryInputStream." This reverts commit dfa2fe31ad66ede57af1c0244ee99b8918eb2d9b. Change-Id: If4a7eb1876876991c537d0a9077cede52ba40b95 Reviewed-on: https://chromium-review.googlesource.com/316621 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
a5ed56ee 2015-12-07 16:32:59 D3D11: Mask off alpha channel for RGBA->RGB blits. We emulate RGB8 in D3D11 with RGBA8 textures. Make sure when we blit that we don't copy the unused texture channel. BUG=angleproject:1245 TEST=dEQP-GLES3.functional.fbo.blit.* Change-Id: I805132fda984860a6d84ad4c1fc7169973938df9 Reviewed-on: https://chromium-review.googlesource.com/316010 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
7a6a1ffe 2015-12-07 16:32:58 D3D11: Use clamp wrap mode for Integer textures. Until we can support all wrap modes for int textures, use a correct clamping scheme. This fixes several dEQP GLES3 FBO tests. This shuffles some of the tests in functional.texture.units since it hard-codes a different behaviour for all wrap modes, ignoring the sampler setting. BUG=angleproject:1244 TEST=dEQP-GLES3.functional.texture.* Change-Id: Ic7e89a111728dfb18821534996bf5b9a5ad172b6 Reviewed-on: https://chromium-review.googlesource.com/313997 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
dfa2fe31 2015-12-07 14:20:02 Protect against overflow in BinaryInputStream. BUG=angleproject:1112 Change-Id: Iedd92ce7a56b20f42e51ef86278eb64fbae3c353 Reviewed-on: https://chromium-review.googlesource.com/316031 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
976489b2 2015-12-07 10:27:14 Don't allocate VertexArray or TransformFeedback objects until binding. Follow the spec more closely and only reserve IDs of vertex arrays and transform feedback objects before binding. This saves memory and allows the glIs* calls to succeed. BUG=angleproject:1218 BUG=angleproject:1101 Change-Id: I7bf99870a7c93f5545325785cbecd891c6b77f8a Reviewed-on: https://chromium-review.googlesource.com/316402 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
2da819e1 2015-12-03 15:53:19 D3D11: Fix blit from out-of-bounds. Do not copy pixels in a negative read region. Also make sure we clamp the boundaries so the dEQP tests are mostly pixel-perfect. We can't yet fix some default framebuffer tests because of issues with blitting RGBA8 (default FBO) to floating point framebuffers. BUG=angleproject:1241 TEST=dEQP-GLES3.functional.fbo.blit.* Change-Id: I16ee264b0b1a7e6b9121dde5ae4f96cfd27ea53e Reviewed-on: https://chromium-review.googlesource.com/315670 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
063d9e78 2015-11-19 17:24:47 Add support for EGL_EXT_platform_device This allows an application to use EGLDeviceEXT to initialize EGL. For example, if an application wants to initialize EGL using an existing D3D11 device (instead of ANGLE creating its D3D device), then the app may create an EGLDeviceEXT using EGL_ANGLE_device_creation_d3d11, and use this device to initialize EGL via EGL_EXT_platform_device. BUG=angleproject:1190 Change-Id: Ife91ce95a63e29eb2b3f05aedfb668e4cac8f5ce Reviewed-on: https://chromium-review.googlesource.com/313444 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
fc1a44a1 2015-12-02 12:37:10 Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"" This reverts commit dd5c5b79333fdde7858a77d39e91cc3d30b74c9e. BUG=angleproject:1190 Change-Id: I1bc1b232b6a916da6d18b546baf20e0854a2768f Reviewed-on: https://chromium-review.googlesource.com/315169 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
15ede106 2015-11-26 15:20:34 D3D11: Disable stencil buffer when not attached. Similarly to the D24S8 attachment getting confused when we use only the stencil portion, ANGLE could write to the stencil portion when we were only using the depth. Fix this by internally disabling stencil test and writes when using this type of configuration. BUG=angleproject:1237 Change-Id: Ib7868d5e9f8aea73304a132005541dab947aa619 Reviewed-on: https://chromium-review.googlesource.com/314032 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
0df8fe44 2015-11-24 16:10:24 D3D11: Don't read or write to the unused depth buffer. When using STENCIL8, we emulate it on D3D11 with D24S8, since there is no native stencil-only format. However in many places we would write to the depth part of this format, and confuse the D3D runtime when it would use the depth test. Fix this by never modifying the depth portion of the buffer, or reading from it. BUG=angleproject:1232 Change-Id: Ifd2e54eceae84e8deea85f439c132d07981b2286 Reviewed-on: https://chromium-review.googlesource.com/313996 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
dd5c5b79 2015-12-02 08:41:28 Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]" Causes failures on Windows/GN: e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(108) : error C3861: 'eglCreateDeviceANGLE': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(113) : error C3861: 'eglQueryDeviceAttribEXT': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(119) : error C3861: 'eglReleaseDeviceANGLE': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(143) : error C3861: 'eglQueryDeviceAttribEXT': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(162) : error C3861: 'eglCreateDeviceANGLE': identifier not found e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(178) : error C3861: 'eglCreateDeviceANGLE': identifier not found This reverts commit 4029ad42d5ffe94a0a744532ab3577b982f847b8. BUG=angleproject:1190 Change-Id: Ibcdfd8cea7ba275cd67c0220f8d7a1069ec1cf97 Reviewed-on: https://chromium-review.googlesource.com/315480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
5bbc9438 2015-12-01 19:49:54 Revert "Disable RTTI in VS release builds" Fails compile on the Windows Debug GPU bot: c:\b\build\slave\gpu_win_builder__dbg_\build\src\third_party\deqp\src\framework\opengl\simplereference\sglrreferencecontext.cpp(2342) : warning C4541: 'dynamic_cast' used on polymorphic type 'sglr::rc::Texture' with /GR-; unpredictable behavior may result c:\b\build\slave\gpu_win_builder__dbg_\build\src\third_party\deqp\src\framework\opengl\simplereference\sglrreferencecontext.cpp(2344) : warning C4541: 'dynamic_cast' used on polymorphic type 'sglr::rc::Texture' with /GR-; unpredictable behavior may result Many other similar errors. BUG=angleproject:1239 This reverts commit aca86045d9aae4d41939a3953103304b7ba9e3a2. Change-Id: I523e12b32665bcc74a6437582be82db8174e42ac Reviewed-on: https://chromium-review.googlesource.com/315170 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
3d677ea6 2015-11-16 13:38:47 Implement EGL_ANGLE_x11_visual Reland with a fixed tests on AMD. This extension will be used by Chrome to advertise the visual it will use for its windows. Having ANGLE use the same visual will bring several benefits: - A blit will be avoided, and the content of the window might be rendered on the system framebuffer directly. - There will be less latency when resizing windows which will make it much less likely to see a black border when resizing. BUG=522149 Change-Id: I66004b6ac45453330af7c4c810ddf2c26941be42 Reviewed-on: https://chromium-review.googlesource.com/314661 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
aca86045 2015-11-30 13:36:28 Disable RTTI in VS release builds Chrome forbids RTTI, but standalone ANGLE currently allows it. Disallowing RTTI in standalone release builds brings ANGLE and Chrome closer, and prevents accidental use of dynamic_cast in ANGLE. It also reduces binary size. Win10 libGLESv2 is 47KB smaller after this. BUG=angleproject:1239 Change-Id: Ib5fb50df66c3a94042e2d9bbb062c0d025cf3eef Reviewed-on: https://chromium-review.googlesource.com/314831 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
81176780 2015-11-24 16:10:23 Return correct error in Framebuffer::checkStatus. UNSUPPORTED is a specific error meaning an implementation-specific incompatibility. For cases where the attachments are invalid according to the spec, we should be returning INCOMPLETE_ATTACHMENT. BUG=angleproject:1231 Change-Id: I4b4332ee5661738374e93c825a53d66d7ba1fad5 Reviewed-on: https://chromium-review.googlesource.com/313995 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
f06e607f 2015-12-01 10:44:16 Add support for GL_OES_depth32. This will allow ANGLE to be more conformant when it accepts 32-bit depth as a Renderbuffer format. BUG=angleproject:1230 Change-Id: I9336c6f951d280b2332fc3e6d2e640852473aa03 Reviewed-on: https://chromium-review.googlesource.com/313994 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
0b200680 2015-12-01 09:27:57 Suppress failing dEQP tests. With the suppression changes from 5111a06, a few were removed that seem to fail only on certain configurations. Reinstate the failure expectations for the dEQP bots. BUG=angleproject:1236 Change-Id: Ib642c60a7871f7994ae1f0082f22533e6650f082 Reviewed-on: https://chromium-review.googlesource.com/315090 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
ab831f04 2015-12-01 09:39:10 Add queries for GL_RASTERIZER_DISCARD. BUG=angleproject:1238 Change-Id: Id3b219dfcc758cf19d61b7dc7eeabd8c2159d212 Reviewed-on: https://chromium-review.googlesource.com/315100 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
5111a062 2015-11-30 10:31:36 Update dEQP integration. Intead of generating a case list from a build dEQP executable and packing it into a gzip file, we can use the Android CTS mustpass list. This has the benefit of allowing us to remove some failure expectations for broken tests. It also means we don't need to ever regenerate our case list files. Also remove the old dEQP test integration, since it is no longer supported or possibly even working. And update our test expectations to match the new Android CTS must-pass lists. This change will likely need to be landed simulatanously with a Chromium-side CL, due to the nature of the gyp/DEPS configuration. BUG=angleproject:1236 Change-Id: I352e4a651dfb88193a1c4991974502dee1edb67b Reviewed-on: https://chromium-review.googlesource.com/313792 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
984ef41a 2015-11-24 16:10:21 Ignore clear commands if rasterizer discard is enabled. From the 3.0 spec (Section 3.1): "When enabled, RASTERIZER_DISCARD also causes the Clear and ClearBuffer* commands to be ignored." BUG=angleproject:1227 Change-Id: I0316103827927e8af9732d7b4565d787b881ccb8 Reviewed-on: https://chromium-review.googlesource.com/313993 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
8d9f35f1 2015-11-24 16:10:20 Re-land "D3D11: Fix Integer Texture Cube mip mapping." We were missing both the correct SRV parameter, as well as the full computation of the mip level in the HLSL. Re-land makes the mip computation only happen with implicit sampling. Before it would confuse the LOD0 computation. BUG=angleproject:1208 TEST=dEQP-GLES3.functional.texture.* Change-Id: I4b579033afe5cd1aca1f2d017e48a74c7fc324cc Reviewed-on: https://chromium-review.googlesource.com/314330 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
4029ad42 2015-10-29 10:14:47 Add and implement EGL_ANGLE_device_creation[_d3d11] BUG=angleproject:1190 Change-Id: I248935ef81803062cf9ba5776512cda456331f51 Reviewed-on: https://chromium-review.googlesource.com/309634 Tryjob-Request: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
5ac60fc2 2015-11-27 13:42:02 Revert "Implement EGL_ANGLE_x11_visual" Fails on Linux AMD: http://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28ATI%29/builds/43819 EGLX11VisualHintTest.InvalidWindowVisualID: ../../third_party/angle/src/tests/egl_tests/EGLX11VisualTest.cpp:183: Failure Value of: EGL_TRUE == eglInitialize(display, nullptr, nullptr) Actual: false Expected: true BUG=522149 This reverts commit b28e010aa10b3e4aec3207e767be10ee5ffb25fd. Change-Id: I9a02f2aa3caadd787eb0099c0ddf9d781084fa1c Reviewed-on: https://chromium-review.googlesource.com/314660 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
b28e010a 2015-11-16 13:38:47 Implement EGL_ANGLE_x11_visual This extension will be used by Chrome to advertise the visual it will use for its windows. Having ANGLE use the same visual will bring several benefits: - A blit will be avoided, and the content of the window might be rendered on the system framebuffer directly. - There will be less latency when resizing windows which will make it much less likely to see a black border when resizing. BUG=522149 Change-Id: Icd484c9a948ed5b5b9116247bb50560bffa30667 Reviewed-on: https://chromium-review.googlesource.com/312323 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
47ac69c1 2015-11-24 11:15:57 Update gpu_test_expectations to support OSX 10.11 On the Chromium side there was also a large refactor of SplitString. This patch includes a replication of that refactor in string_utils and adds the Chromium unittests to string_utils_unittests.cpp BUG=angleproject:1234 Change-Id: I4f71064fbf325c204e98a7b36ead118913d90f2c Reviewed-on: https://chromium-review.googlesource.com/314101 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org>
faaa84ac 2015-11-24 13:29:23 Hide libpci pkg-config request behind use_libpci==1 This allows platforms that don't have libpci to configure the code without error. BUG=560948 Change-Id: I155f35108d9be193afed5304b443a6afdf33b077 Reviewed-on: https://chromium-review.googlesource.com/314300 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Stephen Mcgruer <smcgruer@google.com> Tested-by: Jamie Madill <jmadill@chromium.org>
183d7e24 2015-11-20 15:59:09 Remove predefined precision qualifiers from ESSL3 samplers New sampler types in ESSL3 should not have default precision qualifiers. This is specified in ESSL 3.00.4 section 4.5.4. BUG=angleproject:1222 TEST=angle_unittests Change-Id: I9c8e7a5fbb4278db80de79bcaeebaf23e64242a0 Reviewed-on: https://chromium-review.googlesource.com/312048 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
6328667d 2015-11-24 13:00:08 Add gl_FragDepth support for D3D11/ES3. An incorrect check was blocking existing support we added for the extension. BUG=angleproject:1226 Change-Id: I335053b1bebb37fd9296b36702031bd34c1bb59e Reviewed-on: https://chromium-review.googlesource.com/313992 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
6b120b9f 2015-11-24 13:00:07 Add checks for FBO attachment layer. We would allow the app to attach layers that were out-of-bounds. Fix this by checking against the underlying resource dimensions. Also rework the code a bit to clean up the texture size query, which is available from the ImageDesc. BUG=angleproject:869 Change-Id: I984f1db16daea6ca650d795884d8ec2cb8f05ebb Reviewed-on: https://chromium-review.googlesource.com/313991 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
ee322723 2015-11-24 20:42:48 Revert "D3D11: Fix Integer Texture Cube mip mapping." 2 tests failed: dEQP_GLES3.Default/functional_shaders_texture_functions_texture_isamplercube_vertex (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234) dEQP_GLES3.Default/functional_shaders_texture_functions_texture_usamplercube_vertex (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234) BUG=angleproject:1208 This reverts commit 5778557fe99e300f245a7bfc2200f6b0179e3fbf. Change-Id: I6f7441bdbfbf937680b0d572645edee8ece649a1 Reviewed-on: https://chromium-review.googlesource.com/314301 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
cc86d64e 2015-11-24 13:00:07 Make Framebuffer size check ES2-only. This is an ES2-only incompleteness check. We also need to require matching dimensions in D3D11, but make this an implementation specific check. Also make all implementation specific errors 'UNSUPPORTED' since that catches all "non-ES" framebuffer restrictions. Note that we can't be conformant here in D3D11 currently, since the spec only makes an exception for mismatching formats for UNSUPPORTED, not for size checks. However, we don't have an easy solution. BUG=angleproject:1225 Change-Id: Ic80a04bce397fc12643b010c874f432033babc5d Reviewed-on: https://chromium-review.googlesource.com/313990 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
5778557f 2015-11-23 09:37:44 D3D11: Fix Integer Texture Cube mip mapping. We were missing both the correct SRV parameter, as well as the full computation of the mip level in the HLSL. BUG=angleproject:1208 Change-Id: I345b1e0895495654de3863c4ebcc395d9b7371b9 Reviewed-on: https://chromium-review.googlesource.com/312060 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
0980e29d 2015-11-20 14:57:34 Don't accept default precision for uint Default precision can only be specified for float, int and sampler types. Default precision for int also applies to uint and uvec declarations. BUG=angleproject:1221 TEST=angle_unittests Change-Id: I31fdcde80da16e2ea8771838f7c1a6ab4e478194 Reviewed-on: https://chromium-review.googlesource.com/313314 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
ccb001b4 2015-11-18 13:14:05 Roll dEQP 92f7752da8..cc0ded6c. https://android.googlesource.com/platform/external/deqp/+log/92f7752da8..cc0ded6c BUG=angleproject:1092 Change-Id: Ie891d4d12eeaabb367e105e2e5e2f6823fb816f7 Reviewed-on: https://chromium-review.googlesource.com/313021 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
04c66234 2015-11-20 12:10:36 Mark crashing dEQP-GLES3 TF Feedback test as SKIP. This test was previously passing, but adding the new enum support has somehow uncovered a crashing bug. Mark it as skipped. BUG=angleproject:1150 BUG=angleproject:1151 Change-Id: Ieb0254606eab716a1628168433069ff8016e47a3 Reviewed-on: https://chromium-review.googlesource.com/313570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
c22fef94 2015-11-19 13:55:27 D3D11: Fix instancing draw with line loops. We were missing the implementation for the instanced draw for these. Implement them in the same way as for triangle fan. BUG=angleproject:1101 Change-Id: I444f3a23383c63b8df6f9ebe25b255c8890632a1 Reviewed-on: https://chromium-review.googlesource.com/313007 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
a0537333 2015-11-19 13:55:26 D3D: Fix incorrect instanced vertex offsets. The spec says that DrawElements is equivalent to the instanced call with an instance ID of zero. This patch fixes a bug in our VertexDataManager where we would sometimes ignore the attribute divisor for DrawElements, and stream the wrong amount of data/wrong start offset. BUG=angleproject:1213 TEST=dEQP-GLES3.functional.draw.draw_elements.* TEST=dEQP-GLES3.functional.draw.draw_range_elements.* TEST=dEQP-GLES3.functional.draw.random.* Change-Id: I1c430a14ab3be68a24e233e9cdd1e4fd88c920a0 Reviewed-on: https://chromium-review.googlesource.com/312062 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
e1a94c67 2015-11-16 17:35:25 Check that texture offset is constant and valid Offset passed to textureOffset and similar functions must be constant. See ESSL 3.00 spec section 8.8. It must also be in the valid range between MIN_PROGRAM_TEXEL_OFFSET and MAX_PROGRAM_TEXEL_OFFSET. Using values outside the valid range makes the results of the texture lookup undefined, as specified in GLES 3.0.4 section 3.8.10. We generate a compiler error if an offset is outside the valid range. BUG=angleproject:1215 TEST=angle_unittests Change-Id: Ida28361444d2f4050d516160f1491674c31868a1 Reviewed-on: https://chromium-review.googlesource.com/312223 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
8ca1351a 2015-11-19 20:01:50 Remove incorrect comment from expectations files. BUG=none TEST=none Change-Id: I80283b825d4c9fe8c672c1efc9d6bc016b81ecc9 Reviewed-on: https://chromium-review.googlesource.com/312482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
22581ff1 2015-11-06 14:25:54 Support glGet GL_TRANSFORM_FEEDBACK_BINDING. BUG=angleproject:1150 Change-Id: If11bb2df6407248812d6dfa415395bbe315fa58c Reviewed-on: https://chromium-review.googlesource.com/311152 Tryjob-Request: Shannon Woods <shannonwoods@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Frank Henigman <fjhenigman@chromium.org>
84b0c3b7 2015-11-05 15:15:28 Re-land "In D3D, cache static vertex buffers to prevent wasteful recreation" BUG=angleproject:197 Changes since first failed patch: - Optimized BufferD3D::getStaticVertexBuffer() - Removed loop to commit static buffers - Out-of-date static buffers (which are much rarer anyway after this patch) are marked for deletion at the *next* draw call, rather than searched for before each draw call. That search was expensive. The change should see a net improvement to DrawCallPerfBenchmark for D3D null. Change-Id: If4942e0afd9e8fefadce8820a1305e13636547ef Reviewed-on: https://chromium-review.googlesource.com/311115 Tested-by: Austin Kinross <aukinros@microsoft.com> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
e8e4debc 2015-11-18 17:15:38 Fix invalid generated sampling functions in HLSL output In some generated shaders, "levels" would be read before it is assigned by GetDimensions when clamping mip level to valid range. Fix these cases. BUG=angleproject:1092 TEST=dEQP-GLES3.functional.shaders.texture_functions.* (12 tests start passing) Change-Id: I9fce8d378606738e5172673d222bce7968e26789 Reviewed-on: https://chromium-review.googlesource.com/312022 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
3e960463 2015-11-12 15:58:39 Detect when gl_FragData is indexed with != 0 in WebGL 2.0 WebGL 2.0 explicitly specifies it to be an error when gl_FragData is indexed with anything else than constant zero in spec section 'GLSL ES 1.00 Fragment Shader Output'. This doesn't apply to WebGL 1.0 or GLES. dEQP-GLES2.functional.shaders.fragdata* test that dynamic indexing of gl_FragData is allowed. TEST=angle_unittests BUG=angleproject:1210 Change-Id: Ib401242e7867f5e7943456b059dd8e24dc404098 Reviewed-on: https://chromium-review.googlesource.com/312045 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
bd163f6a 2015-11-13 12:15:38 Fix parsing structure definitions in place of constructors The shader parser used to accept structure definitions in place of constructors, which is invalid GLSL. This patch fixes that. BUG=angleproject:939 TEST=angle_unittests Change-Id: Ibcf502160e91c19e693e9427b548a399d83e2a71 Reviewed-on: https://chromium-review.googlesource.com/312032 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
40d9edf1 2015-11-12 17:30:34 Fix structure comparison constant folding objectSize() will return the size of all data in the structure, and simply iterating over the data will work for determining whether two structures are equal. The earlier complex and broken approach where the structure was traversed recursively is not needed. BUG=angleproject:1211 TEST=angle_unittests Change-Id: I0e5c5ccbb767d44ef6acb0f1f25f27dfc42866e1 Reviewed-on: https://chromium-review.googlesource.com/312490 Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
36b0514a 2015-11-12 13:10:42 Fix ESSL3 indexing corner cases Indexing interface blocks or fragment outputs with a non-constant expression is not valid even if ANGLE has been able to constant fold the expression. BUG=angleproject:1210 TEST=angle_unittests Change-Id: I2ccb67871b682976a31b8de306053b9b28c06437 Reviewed-on: https://chromium-review.googlesource.com/312044 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
55c25d0c 2015-11-18 13:08:08 D3D11: Fix varying packing with structs. Previously we would try to pass an entire struct through HLSL's shader interface. Instead, split this off as if each field was its own variable, which seems to be spec compliant (see ESSL 3.10). In the future we may want to fix register packing to use specific components of float4/int4/uint4 HLSL registers. This could also fix the remaining bugs in the SM3 packing. TEST=dEQP-GLES3.functional.shaders.linkage.varying.* BUG=angleproject:910 BUG=angleproject:1202 Change-Id: I1fd8b4505abc39bd2385ed5c088c316d55d0bc2c Reviewed-on: https://chromium-review.googlesource.com/311242 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
9fc3682c 2015-11-18 13:08:07 D3D: Rework varying packing code. In D3D we pack varyings by making a register map, and using the recommended GLSL ES algorithm to reserve register space. We use this map to assign row and column slots to each varying and then produce a semantic index value. The existing scheme had a number of bugs, and was failing several angle_end2end_tests. The new design cleans up the code somewhat and uses a different counting scheme for the semantic indexes: just sort the varyings in packing order and use a simple incrementing semantic index per varying. In SM4+, the HLSL compiler sorts and packs the varyings correctly itself, and in SM3, handle the cases we don't support by returning an error instead of a D3D compiler link error. Also refactor how we store varying information for TF Feedback/ StreamOut. Only store the necessary D3D information, instead of extra information like the name and type. This fixes several tests in GLSLTest/*. This also will allow us to fix interpolation qualifier packing and the structure packing in HLSL, which seems to work differently than the rest of the varying types. BUG=angleproject:1202 TEST=bots,dEQP-GLES3.functional.transform_feedback.* Change-Id: Ie5bfbb4f71d8bf97f39115fc46d2e61b131df639 Reviewed-on: https://chromium-review.googlesource.com/311241 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
15c2ac30 2015-11-09 15:51:43 Fix constructor parsing issues After this patch, ANGLE no longer accepts constructors where any of multiple parameters is sampler or void. Also, structure array constructors with just one parameter are now accepted. Error message for a constructor with no parameters is also more informative than before. BUG=angleproject:1193 TEST=angle_unittests Change-Id: I6b897973448cf500096f612b3b95dcc23aebc716 Reviewed-on: https://chromium-review.googlesource.com/311590 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>