Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| ee0498b9 | 2020-02-15 09:24:03 | GN: Update trace tests build. Includes two small fixes: - add .gitignore for trace tests. - fix path for restricted traces, should fix bots. Bug: angleproject:4386 Change-Id: I51c657c4f2e772411e95faa76188d43c8b6981f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057350 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 1f5f7ea3 | 2020-02-14 23:39:11 | Vulkan: Fix SPIR-V transformation name-info association Prior to this commit, when "OpName %id name" was encountered, the info corresponding to "name" was immediately associated with %id. This is not necessarily correct because there could be multiple ids with the same name. For example a sampler declaration and an unrelated function argument could have the same name. In this case, the sampler declaration and function argument name don't even need to be in the same shader stage. This change modifies the SPIR-V transformation such that the name-id mapping is tracked until the OpVariable instruction that actually declares the variable is visited. The mapping to variable info is only done if the storage class specified in this instruction corresponds to a shader interface variable. Bug: angleproject:3394 Change-Id: I35a1f6f8278e4b1ad81c9955a55e1b72d6f2e4ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057248 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 2e0661d7 | 2020-02-17 20:19:13 | Vulkan: Update ES 3.1 test expectations Split off shader compilation failure to a new bug. Bug: angleproject:3596 Bug: angleproject:4402 Change-Id: Iac054e469440cfa2b84289e08c5b21e3fbdf5410 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2061448 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 3a3e7d4d | 2020-02-14 14:08:07 | Don't skip functional.layout_binding.ubo.vertex_binding_max on NV/D3D11 This test no longer fails with any recent drivers. Bug: angleproject:4276 Change-Id: I7a20ee66f1da82d0f378848ccc9faa327a4ed63a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057065 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| d5861a68 | 2020-02-13 15:46:49 | Fix ASAN errors in end2end tests. 2 minor issues of reading from uninitialized memory in tests. Removes the suppressions from the fixed tests. Bug: chromium:1029378 Change-Id: I466ce231cfed1ce53a60732706c05b778b096805 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2055649 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> | ||
| 4f9608ca | 2020-02-13 09:26:52 | Vulkan: Update more bug numbers for ES 3.1 This reflects the most recent conformance run on Android with SwiftShader. Bug: angleproject:4106 Bug: angleproject:4108 Bug: angleproject:4188 Bug: angleproject:4190 Bug: angleproject:4240 Bug: angleproject:4300 Bug: angleproject:4312 Change-Id: I0107262eecc963a8d5343a53806bb0483b5af3be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2054068 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> | ||
| 74ab0bff | 2020-02-12 17:29:27 | Vulkan: Disable command graph by default. Also removes the angle_end2end_tests feature override. Bug: angleproject:4029 Change-Id: I0d0bd087fc2143360185592d9fa1238a9bafc55d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046054 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> | ||
| 593706bc | 2020-02-10 16:46:52 | Test Runner: Increase default timeouts. In particular the Debug timeout was not generous enough. Increase the test timeout to 20 seconds in Release and 60 seconds in Debug. Increase the batch timeout to 240 seconds in Release and 600 seconds in Debug. Bug: angleproject:3162 Change-Id: I0bd0ea18cb5cdab005143b8deed9500d9d2e8ea1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047415 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> | ||
| 3b82506a | 2020-02-11 09:35:38 | Vulkan: Command graph linearization (Step 5). Implements ES 3.1 support. Bug: angleproject:4029 Change-Id: I3c08602cf4ec64621bfdb40cd40d142b666e6edf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046052 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> | ||
| 72e9f4d7 | 2020-02-11 11:14:35 | Vulkan: Update bug number in KHR ES 3.1 expectations It was pointing to general ES 3.1 bug. Bug: angleproject:4107 Change-Id: Ief726c57d5a853d633df705eb30e8cdad3f6c9ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050030 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> | ||
| 1a8b7758 | 2020-02-11 10:34:00 | Fix assignment of CacheOpResult::EnumCount The special enum value 'EnumCount' is used by EnumSize() to determine how large to make the PackedEnumMap::mPrivateData array. However, that enum entry was being assigned an incorrect value, leading to the array being constructed too small and causing a crash in PackedEnumMap's std::initializer_list constructor when it went beyond the size of the array to assign each of the necessary values. The fix is to remove the assignment of CacheOpResult::EnumCount and let it indicate the real number of entries in the enum. Bug: angleproject:4393 Test: end2end Change-Id: If9635c61e72aadc6527d416f83be18add8b24572 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050026 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| cd8167fb | 2020-02-10 14:17:09 | Vulkan: Fix EGLBlobCacheTest. Several runs of the same test in a row would cause a failure if the cache would get hit. Fix the flakiness by resetting the cache between runs. Also cleans up some of the variable naming and adds a stream output for pretty test errors. Fixed while working on the standalone test harness. Bug: angleproject:3162 Change-Id: I64da8a37eedf562860e3e5409cbf6fb08e81dfa4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047417 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 3c066404 | 2020-02-05 12:43:12 | Vulkan: Command graph linearization (Step 4). Implements GLES 3.0 functionality for the new command recording style. Tested with angle_end2end_tests. dEQP/CTS testing will come later. Bug: angleproject:4029 Change-Id: Ibdc4f1355a7b880946699ec227fd9807f4a27af9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040197 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 041ebfed | 2020-02-10 13:39:34 | Speed up InstancingTest.LineLoop. This test was taking 14-20 seconds in release mode. Likely because of the way we were issuing a ReadPixels and "std::endl" to a stream for every pixel of a 256x256 Framebuffer. Instead issue a single ReadPixels call and no stream flushes. Now runs in less than 500ms. Helps prevent timeouts when running tests multi-process. Also enables the test on D3D9. Bug: angleproject:3162 Change-Id: I27aad773040d6b6668cbde003802345e01044a7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047414 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 8257ac30 | 2020-02-07 14:17:08 | Vulkan: Defer RenderPass image barriers. We accumulate image barriers in two places: * for GL sampler textures * for GL framebuffer attachments (Render Targets) Then we issue the barriers together in a single call before the RP. This fixes a bug where we were missing a layout transition in some cases when transitioning between a sampler and a render target. It should also be faster to issue a single barrier before a RP than issue several smaller barriers. Bug: angleproject:3539 Bug: angleproject:4029 Change-Id: I180b770f0df6b44d209e5c618ba36bcc1c6372e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044236 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> | ||
| 788fa360 | 2020-02-10 14:07:12 | Suppress two failing NVIDIA D3D11 tests. Bug: angleproject:4391 Bug: angleproject:4392 Change-Id: I81cbf261cf206cd2d38cff93d16056c21bf78557 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047416 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| a8e6a463 | 2020-02-09 13:10:24 | Suppress Vulkan RobustResourceInit tests. These tests are flaky because of a bug in ANGLE's Vulkan robust resource init. Mark them as failing until we can resolve the bug. Bug: angleproject:4255 Bug: angleproject:4384 Change-Id: I8e18a8532850848fc7a25e137dce27dd0d19fa55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046053 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| c3854ebc | 2020-02-07 11:11:26 | Vulkan: Clamp vertex buffer offsets. Vulkan mandates that vertex buffer offsets are within the size of the buffer even if robust buffer access is enabled. Do a check in VertexArrayVk::syncDirtyAttrib to guard against this. Bug: angleproject:3350 Change-Id: Ia01deb9b7335dd8f632f2cf9b32d2908ba55645c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044491 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> | ||
| e02f4996 | 2020-02-06 12:26:07 | Vulkan: Pass correct level count in getLevelDrawImageView This bug was hit by a KHR ES 3.1 test. This CL just applies the obvious fix already noted by jmadill@. Test: KHR-GLES31.core.shader_image_size.*-nonMS-* Bug: angleproject:4008 Bug: angleproject:4108 Change-Id: I5d05c0a7432f7b70d2b995fd8b11224c119ece5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042491 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> | ||
| 3a2522de | 2020-02-06 10:05:23 | Make TransformFeedbackTest deterministic. Instead of using rand(), use a fixed seed RNG. This can ensure runs use the same draw call counts no matter the time of day. Note: there may have been a setting somewhere that was seeding the RNG because I wasn't seeing variation between test runs locally. This change makes it explicit. Bug: angleproject:4029 Change-Id: Ic51bf2a6779da3b96a3357eed99c0f7fa9d81648 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042210 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| e9dc0201 | 2020-02-04 12:04:28 | GL: Mark unused uniform locations that were explicitly bound as ignored If a uniform location is unused, but a call to glBindUniformLocation has explicitly bound the uniform, ANGLE validation still treated the uniform as unused and returned errors. The correct behavior is to ignore the uniform and silently fail. Bug: angleproject:4374 Change-Id: Ic7b97f23cf8bc2d5380129322595e51b3d4a9fcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036676 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| e5385ea9 | 2020-01-27 13:40:18 | Vulkan: Compile shaders at link time Since line raster emulation was changed to use specialization constants, it has been possible to compile shaders at link time. However, program pipeline objects would have required keeping the shader sources around for recompilation. Now that all necessary decorations are modified directly in SPIR-V, it's possible to compile the shaders at link time and forget about their sources. Program pipeline objects then simply "reconfigure" the generated SPIR-V. A next step could be to also create the Vulkan pipeline object at link time. A number of failures due to gaps in CTS testing prevent that work currently. In particular, in some situations the generated SPIR-V is not per spec, for example it may contain vertex attributes with aliasing locations, or have transform feedback capture of array elements misconfigured. Bug: angleproject:3394 Bug: angleproject:4253 Change-Id: I54c0884cf056b511a4a306225cc6ed2cef84d257 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023186 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 20b1259a | 2020-02-05 17:08:05 | Vulkan: Command graph linearization (Step 2). ES 2.0 is feature complete. Passes all of the angle_end2end_tests with the new linear command recording method. Also runs the T-Rex benchmark without any obvious glitches. Likely has issues with creating too many RenderPasses. ES3 is mostly untouched. Bug: angleproject:4029 Change-Id: Ic5acf3d768495fbffd07b07bf0a6f2b5787c51f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012900 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 806ba566 | 2019-12-12 13:02:01 | Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle Implement an IOSurface-backed pBuffer surface for the Vulkan backend on Mac, through SwANGLE. ANGLE will pass a raw pointer to Swiftshader and handle locking/unlocking the IOSurface. Bug: chromium:1015454 Change-Id: Ia3ead55334736003d405b54ba8dcc7701706fbb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965434 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| f764fc02 | 2020-02-03 10:33:58 | Fix varying linking by location This change breaks the assumption everywhere that varyings can be identified uniquely by name throughout all stages of the pipeline. It further implements linking of varyings by location, if specified. Bug: angleproject:4355 Change-Id: Ie45e48879008c3f0c22d1da3d0d26f37c655e54e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2030026 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> | ||
| 4546c5ce | 2020-01-31 15:05:35 | Skip failing end2end tests on Windows on ARM There are multiple failing tests on Windows on ARM which are related to drawing differences. They seem to be similar to an already reported issue (anglebug.com/3748). Bug: angleproject:4356 Bug: angleproject:4357 Change-Id: Ide5cc2e6f42d4c4b6fb88352833d20e517005c14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033067 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 07795d47 | 2020-01-31 16:08:52 | Disable rewriteRowMajorMatrices workaround. It's causing flaky crashes in tests. Leave the revised code in place so it's easier to debug. Disable test which required the workaround. Bug: angleproject:2273 Bug: angleproject:3843 Change-Id: Iebb682bd3c6282031cc57eda5d3d4d5636be7294 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033870 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| f63fbcd5 | 2020-01-29 16:13:56 | Fuchsia: Limit number of concurrent presents in ScenicWindow The test suite occasionally runs into the following error: [02036.794449][326733][326738][klog] INFO: [ERROR:src/ui/scenic/lib/scenic/session.cc(412)] Scenic session error (session_id: 1): Present2() called with no more present calls allowed. Terminating session. This is actually a problem with the test harness as resetting the window triggers a present with no fences and no OnFramePresentedCallback which means there is no way to know if we will exceed the limit. Add an OnFramePresentedCallback and count presents to stay under the limit. This blocks if there's more than 2 in flight presents. A dedicated async loop is used to avoid re-entering other code while waiting to present (there is no such case in the ANGLE test suite currently, but better safe than sorry). Typically if we run the whole suite there will be a failure in the middle, but re-trying the test that failed won't repro the issue. Add a test that reliably exhausts the limit by calling resetNativeWindow() in a loop. Bug: angleproject:4360 Change-Id: I24eb01fd72fc0be57c36e49b5875023a80d6ab91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027934 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 71153201 | 2020-01-29 14:42:30 | Vulkan: Disable restartRenderPassAfterLoadOpClear workaround This workaround was added due to qualcomm driver bug b/129281932. But this has been fixed with recent drivers. Removing the WR here so that it will not negatively affect performance. Bug: angleproject:4344 Change-Id: Iea2ec86082a0ced64bfe843bf916c6bdb2aea60b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029210 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> | ||
| c73475fb | 2020-01-29 11:37:05 | Vulkan: Fix UtilsVk dirtying driver uniforms descriptor set binding Most UtilsVk functions bind a descriptor set to index 0 (same as driver uniforms). If that happens to close a render pass, all is well as starting a new render pass ensures all descriptor sets are rebound. However, if the render pass is not closed, or if a dispatch call is issued (which never rebinds descriptor sets if not explicitly necessary), then the driver uniforms descriptor set may end up never rebound, causing a validation error (and possible crash or corruption). This change makes sure that UtilsVk notifies the context when it binds a descriptor set. The context then dirties the driver uniforms binding as appropriate. Bug: angleproject:4272 Change-Id: Ief20c7884fbe39712f844247489812afc70b30a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027938 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| e196bc85 | 2020-01-17 13:11:20 | Add driver bug workaround for rewriting row major matrices. Joint work with syoussefi@, who wrote the RewriteRowMajorMatrices pass, and revised it for this CL to not rely on the NameNamelessUniformBuffers pass - which was breaking it on the GL backend. Hook up previously written RewriteRowMajorMatrices transformation, and enable on all GPU types on macOS. It is needed at least for AMD and Intel GPUs. Add a new test which verifies the behavior of dynamically-indexed arrays of row-major matrices. Bug: angleproject:2273 Bug: angleproject:3843 Change-Id: Id582f9cf6b9b1a59091aab1786539174f360b705 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008717 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| ee07cb31 | 2020-01-29 18:02:50 | Test Harness: Allow filter with sharding params. Some tweaks to when we call gtest initialization allows this to work. Bug: angleproject:3162 Change-Id: I75159108d3f746f666e57c1a6495a8c8616ef1cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024335 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> | ||
| e4859ae5 | 2020-01-27 15:21:58 | Fix re-enabling ARB_texture_rectangle My earlier change https://crrev.com/c/1991969 had a bug. If ARB_texture_rectangle is disabled once, it can't be re-enabled because the extension behavior entry is deleted. ResetExtensionBehavior needs to restore it. Bug: angleproject:3770 Change-Id: Icf96acece8ea8d17287c8d09fb4849b61c9c2a36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023398 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org> | ||
| 33027d3e | 2020-01-28 16:08:02 | Enable GL_OES_depth_texture_cube_map with Vulkan backend GL_OES_depth_texture_cube_map depends on depthTextureOES, but adds the same new texture format/type requirements as GL_OES_packed_depth_stencil, so instead of adding a specific check for GL_OES_depth_texture_cube_map, the Vulkan backend checks for a combination of GL_OES_depth_texture and GL_OES_depth_texture_cube_map to enable GL_OES_depth_texture_cube_map. ANGLE has no specific checks for whether a format is "cubemappable", but Vulkan has no restrictions of the format of cubemaps, so if the proper formats are supported, creating a cube of any of these formats should be implicitly supported. Bug: angleproject:4293 Change-Id: I968dbe8869ba0f50de18dd41f1195e847c06b520 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026027 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 09d51a57 | 2020-01-24 17:28:24 | Fuchsia: Skip PointSpriteAlternatingDrawTypes on ARM Fuchsia This is not passing currently, skip it for now. Bug: angleproject:4349 Change-Id: If36a144e8d17cc94c2186a7a794358b14223349e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023913 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| cb2b5136 | 2020-01-10 11:04:38 | Vulkan: Simplify format table generation Remove the "override" table. That gets in the way of some solutions. If a format cannot be supported by a native Vulkan format as indicated in the "map" table, then check fallbacks. Also add support for native RGBA4 and R5G5B5A1 support. Previously those formats would be emulated with RGBA8 due to the override, but now code will check if the native format is available and use it. Bug: angleproject:4282 Change-Id: Ib33ea40543d91a2c2a95075b277f825a8822037c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1994538 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> | ||
| f1f082e1 | 2020-01-17 14:53:38 | Vulkan: Set varying location & xfb decorations in SPIR-V The shader translator outputs arbitrary location indices. Once compiled by glslang, the SPIR-V transformer modifies these decorations. If the transform feedback extension is used, it will also add the relevant decorations to the varyings that are captured. Bug: angleproject:3394 Change-Id: I5ecafd0536408612a5d4b920dbabbfabe650657c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008468 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 05e08edf | 2019-12-26 20:58:48 | Disable skipValidation when context is lost. Lost no-error contexts should gracefully handle GetProgramiv, etc. Includes test that a lost no-error context doesn't crash on getProgramiv. Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1601703 Bug: angleproject:4244 Change-Id: I8c37df37e83308ab85ad958df6dab46b0ab348e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003239 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 71e6afb1 | 2020-01-14 14:12:31 | Vulkan: Set set/binding in SPIR-V This change introduces a SPIR-V transformer that modifies shader interface variable decorations directly in SPIR-V instead of manipulating the input GLSL. Currently, descriptor set and binding indices are set by the transformer. The shader translator outputs arbitrary set and binding indices. Once compiled by glslang, the SPIR-V transformer modifies these decorations. The ultimate goal is to be able to modify the SPIR-V again when program pipeline objects decide a different set/binding is necessary. Bug: angleproject:3394 Change-Id: If358265a72bf1fe9f5676562b39a632cb2e05dc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001477 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 2bc9cc12 | 2020-01-24 16:40:46 | Fuchsia: Blacklist swiftshader on Fuchsia This doesn't work and is highly misleading as the tests run with the real GPU. Bug: angleproject:4353 Change-Id: Id9139436e39d5e8e063bcc679b7c63f589d3b748 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023912 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 44c75073 | 2020-01-20 19:59:55 | Fuchsia: Disable GLES3 testing on Fuchsia ARM The vulkan driver is missing required extensions so these tests are all failing. Bug: angleproject:4352 Change-Id: Id1af7c40798d8844fbf832c6066260fe3a8bfeda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023911 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| e28883de | 2020-01-25 23:25:43 | Vulkan: Fix handling of inactive fragment outputs These were never assigned a location. They are now removed by the translator similar to other inactive variables. Bug: angleproject:4313 Change-Id: I3398d06e1dea3f43b84f206cca07cde5b44b21a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021734 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| e3ba0d7d | 2020-01-28 13:46:13 | Disable 'nodiscard' warning on MSVC for dEQP. Bug: angleproject:4358 Change-Id: I774b4ba442e27935a676f2ce82356e8c77a0db27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024334 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 4a8fa19f | 2020-01-27 17:19:57 | Fuchsia: Switch to gfx_tests sandbox configuration The default sandbox config for tests built in chromium doesn't allow access to the GPU or display. Switch to the gfx_tests sandbox config to allow the tests to run. Bug: angleproject:4350 Change-Id: Ib80db196ef55df694369cfc7a3cf18327ce7c952 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023908 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| a6dfa11f | 2020-01-28 09:09:47 | Vulkan: SwiftShader now getting correct sample positions This was fixed in SwiftShader and I verified it Bug: angleproject:4213 Change-Id: I6f591b81a62ec4c586d4abb7e6a2345794602833 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2025066 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com> | ||
| 7488a096 | 2020-01-27 22:17:59 | Add a test to expose location'ed varying link bug Bug: angleproject:4355 Change-Id: I2b914d3e6bf74ccf5d3f42d7bd010e44e45645ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 086aded3 | 2020-01-26 13:40:02 | Return the correct location count for matrices in structs GetLocationCount() returned secondary size for fields of a struct. For matrices however, the correct value would be the primary size. This is a similar fix to 6423b7fc7ded02a702d24feb0730731ab9f6c061. Bug: angleproject:4200 Change-Id: I2c69b9454729993010766fcde0cabec986b7429d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021738 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 2d1d9d35 | 2020-01-27 12:09:41 | Fix atomicAdd validation w.r.t to swizzles Bug: angleproject:4150 Change-Id: I22c0c0382a2b208dd983fa1981ffc75f1b1945e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022359 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| a1f1cce6 | 2020-01-27 11:34:58 | Vulkan: updateActiveImages: process each image once There are two issues with processing the images multiple times: - The graph trips up because on the first addWriteDependency, the current writer pointer of the image will be set to the recorder, and which on the next addWriteDependency creates a self-dependency. - We transition the layout of the whole of the image, so doing that multiple times is inefficient. Bug: angleproject:4312 Change-Id: Ibae72e8698edf5db97139f48d68624d3e9a1d5db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022355 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 080d711b | 2020-01-08 13:04:44 | Tests: Add a perf test using traces This test will load traces and cycle through a set of frames. The new tests are: TracePerfTest.Run/gl_trex_200_210 TracePerfTest.Run/gl_trex_800_810 TracePerfTest.Run/gl_trex_900_910 TracePerfTest.Run/gl_trex_1300_1310 To download the traces, you must be granted access and authenticate with the cloud. See the steps in RestrictedTraces.md for this. Then add the following to the end of your .gclient file: "custom_vars": { "checkout_angle_internal":"True" }, And run `glcient runhooks`. To enable building the test, add the following GN arg: build_angle_trace_perf_tests = true See the new markdown document for ways to execute the tests. Bug: angleproject:3630 Change-Id: Ic25cd94fb36b35fcf187e88d3bf9548c65f59755 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949605 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 3712b2e4 | 2020-01-24 17:08:30 | Vulkan: Command graph linearization (Step 1). This initial prototype introduces a new feature to the Vulkan back-end that disables the deferred command recording. The intent is to have a lower CPU overhead during submission calls which currently walk a DAG. The feature is not complete. Currently it only passes the ANGLE SimpleOperationTests. Moreover it is extremely simple and only allows use of one command buffer at a time. In the future we'll allow open command buffers for recording outside and inside render pass commands at the same time. We'll also support collapsing RenderPasses together for some use cases. Currently the prototype only passes "SimpleOperationTest". There are quite a few unimplemented features like queries, XFB, etc. Bug: angleproject:4029 Change-Id: I82760986683f55e37ac4ea559de6f4cffb6ef84e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953485 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> | ||
| d5d8ffa8 | 2020-01-17 14:59:34 | Disable ANGLE GL and Vulkan on Windows on ARM Currently Windows on ARM doesn't support OpenGL but it is enabled in ANGLE by default. Vulkan is only supported via Swiftshader so we should not test native Vulkan. Therefore it causes crashes and fails on Windows on ARM when running angle_end2end_tests. Bug: angleproject:4318 Change-Id: I70349ed53a2248df2dc8e7a0c0b3a6a5537a1110 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007414 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| e93a438b | 2020-01-10 01:48:24 | GL_OVR_multiview shouldn't be defined for WebGL spec'ed shaders According to the latest change in WebGL's OVR_multiview2 spec, the GL_OVR_multiview should NOT be defined. Refer to https://www.khronos.org/registry/webgl/extensions/OVR_multiview2/ I.e. this shader should NOT fail compilation: #version 300 es #extension GL_OVR_multiview2 : require #ifdef GL_OVR_multiview #error legacy GL_OVR_multiview support must be forbidden #endif .... Bug: angleproject:4279 Change-Id: Ic94cba6785ea3a1fa14d5131dc0960214aa574be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1994830 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> | ||
| 0a3f58f1 | 2020-01-24 09:54:31 | Fix undefined behaviour in ClearTest. We were expecting an uninitialized texture to contain black. However the contents of the texture data may be undefined. Discovered when working with the Vulkan command stream refactor. Bug: angleproject:4029 Change-Id: Ia5d24707746819b116ac0053fabb48033574569a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2017978 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 1d480fcc | 2020-01-23 16:08:53 | Fix image linking not verifying same format Bug: angleproject:4316 Change-Id: I7508c0f9b0546bf3a23f819de49e7a91a74b6bc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2018046 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 24627fa4 | 2020-01-21 11:39:56 | Row-major test: switch to compute Based on Nvidia's recommendation that the following: all(lessThan(gl_FragCoord.xy, vec2(1.0, 1.0))) isn't necessarily true for only a single FS invocation, even when not multisampling. The tests that do the above are changed to compute instead. Bug: angleproject:3831 Change-Id: I22d935f797c2e385218bc6af31e98a7f672a7707 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012743 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| abaeb415 | 2020-01-20 20:33:23 | Vulkan: Fix setupDraw when VK_EXT_transform_feedback is not enabled There's no dirty bit handler if VK_EXT_transform_feedback disabled, but we're setting that dirty bit in syncState. This results in calling a null method pointer. Skip the invalidate if the extension is not enabled. gl::LogMessage::~LogMessage() at ./../../third_party/angle/src/common/debug.cpp:0 rx::ContextVk::setupDraw(gl::Context const*, gl::PrimitiveMode, int, int, int, gl::DrawElementsType, void const*, angle::BitSetT<11ul, unsigned long, unsigned long>, rx::vk::priv::SecondaryCommandBuffer**) at ./../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.cpp:844 rx::ContextVk::drawArrays(gl::Context const*, gl::PrimitiveMode, int, int) at ./../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.cpp:1698 gl::Context::drawArrays(gl::PrimitiveMode, int, int) at ./../../third_party/angle/src/libANGLE/Context.inl.h:112 gl::DrawArrays(unsigned int, int, int) at ./../../third_party/angle/src/libGLESv2/entry_points_gles_2_0_autogen.cpp:926 (anonymous namespace)::AttributeLayoutNonIndexed::Draw(int, unsigned int, unsigned short const*) at ./../../third_party/angle/src/tests/gl_tests/AttributeLayoutTest.cpp:431 (anonymous namespace)::AttributeLayoutTest::Run(bool) at ./../../third_party/angle/src/tests/gl_tests/AttributeLayoutTest.cpp:305 [This stack is from the added assert; calling a null function pointer crashes without producing a useful stack trace.] Bug: angleproject:4326 Change-Id: I036ae322bddc4865229fa3fe7ea72a4344b99f83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011408 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 13881af3 | 2020-01-21 12:52:56 | Vulkan: Fix cast of float to unsigned int for ARM ARM devices cast float to unsigned int differently than Intel devices. Need to do additional work to ensure consistent behavior. This was causing negative API tests to fail because the invalid parameter was being turned into a 0 which is valid, but not what was intended (should have been 0xffffffff). Bug: angleproject:4323 Change-Id: I7447842d0f56362d9eb2db4d04b5416c78e51d27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012746 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| b36e46ab | 2020-01-08 15:49:18 | Vulkan: Line raster emulation through specialization constant In preparation for compiling shaders early at link time, this change reworks line raster emulation such that it uses specialization constants instead of a preprocessor condition. This means drawing both triangles and lines with this program will still result in a one-time shader compilation. The compilation is still done at draw time in this change. Bug: angleproject:3394 Change-Id: I0bf91398868d7f7147456533b728906b505192b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1992365 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> | ||
| 230e14dd | 2020-01-21 23:32:06 | Add support for layout(early_fragment_tests) in; Bug: angleproject:4314 Change-Id: I37b228f37201cc4188834e68459cd7294727c3ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2014240 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 01e28144 | 2020-01-21 13:15:18 | Row-major test: Clarify std140's stride calculation Bug: angleproject:3830 Change-Id: I5fa213927b609ef33c729ded5d42add8f148dcb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012622 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 5a7356ae | 2020-01-16 23:22:31 | Add support for non-float mix The non-float variations of the mix builtin were conditioned to desktop GLSL, but they are present in ESSL 3.1+. This change also implements constant folding of these builtins as exercised by dEQP. Bug: angleproject:4300 Change-Id: Iec34de4cf370e00d67fd605148cd7848f9e122f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2006809 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> | ||
| a8614528 | 2020-01-17 15:48:19 | Update expectations after dEQP test fixes Latest dEQP roll included some test fixes for GLES 3.1 Remove those exclusions from expectations file. Bug: angleproject:3590 Bug: angleproject:4323 Change-Id: If08c474490c24f63d2f8cc198ee7e3dc85d7f999 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008128 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com> | ||
| f6506799 | 2020-01-22 11:50:08 | Reduce fail expectations dEQP-GLES31.functional.program_interface_query.buffer_variable.* There are still a subset of failing tests, but the failures mentioned in angle bug 2277 are no longer expected. Bug: angleproject:2277 Change-Id: I6c55283911bb7be4208b41e9bcd1a4960ed5fc5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012948 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 681c707e | 2020-01-21 10:48:31 | Reduce D3D11 skips in dEQP-GLES31.functional.program_interface_query.buffer_variable.* There is still a failing subset, which is partially investigated in angle bugs 4329 and 4330. Bug: angleproject:4329 Bug: angleproject:4330 Change-Id: I286bb42f521e00b3687bf327feaed47444deafc5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2010114 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 7f8b6e3f | 2020-01-20 13:59:32 | Vulkan: Add support for GL_IMAGE_FORMAT_COMPATIBILITY_TYPE For some reason, this wasn't implemented when texture image load and store was implemented. Bug: angleproject:4311 Change-Id: I24c508660ad7eb3aa944601175803751b54ce0ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011324 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com> | ||
| 845a09b8 | 2020-01-20 12:57:18 | Vulkan: glDeleteTexture unbind all image texture units The old code only unbound one image unit when a texture was deleted. The GLES specification is clear that the texture should be unbound from all units: If a texture object bound to one or more image units is deleted by DeleteTextures, it is detached from each such image unit, as though BindImageTexture were called with unit identifying the image unit and texture set to zero. Bug: angleproject:4310 Change-Id: I24c508660ad7eb3aa944601175803751b54ce0dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011322 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com> | ||
| 62475e95 | 2020-01-20 11:16:24 | Allow tests to pick ANGLE features. This uses the EGL_ANGLE_feature_control extension through the test harness to control feature selection via a test config. This obviates the need for the hacky platform methods table override. Also adds a command graph feature that will be used to prototype the command graph linearization for Vulkan. Bug: angleproject:4029 Change-Id: Id37fadd5d2c317c9d9dd90dfab1fdc8e4ac3701f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007612 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 3cbeaba4 | 2020-01-17 12:28:45 | Remove suppression of passing test Fixed in https://chromium-review.googlesource.com/c/angle/angle/+/2006813, but suppression was not removed. Bug: angleproject:4309 Change-Id: I430501c0d977a8c5999390f2ad895290e2301dc5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008129 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 33a2c43d | 2020-01-16 15:24:47 | Sort GLES 3.1 expectations to show conformance blockers Sorted by group (i.e. blocking conformance, desktop, general Vulkan, Android). Bug: angleproject:3520 Change-Id: I6f7c702460b3d1908838796d88e5448d4f83b242 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2006018 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> | ||
| 5860f84a | 2020-01-17 00:58:48 | Vulkan: Narrow KHR-GLES31 image failures Bug: angleproject:4309 Bug: angleproject:4310 Bug: angleproject:4311 Bug: angleproject:4312 Bug: angleproject:4313 Bug: angleproject:4314 Bug: angleproject:4315 Bug: angleproject:4316 Change-Id: Ibda4eac6a49ad7a8fcf0ec68b6dd199a3f66ebb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2006812 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| d9689725 | 2020-01-16 14:46:46 | Suppress UniformsBenchmark perftest on Win/NVIDIA/Vulkan Started failing on Jan 11, 2020 Bug: chromium:1041672 Change-Id: Ie51c0d363b49025c607c32a1858cdaf8c38ebf87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003013 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> | ||
| df0203a9 | 2020-01-15 14:05:33 | EGL: Add support for EGL_EXT_pixel_format_float extension Add support for floating point configs. On backends that support rendering to floating point formats, add them to EGL's frambuffer config list Bug: angleproject:3958 Tests: dEQP-EGL.functional.wide_color.*fp16* angle_end2end_tests --gtest_filter=EGLFloatSurfaceTest* Change-Id: Ie65f63013483267985c2b308567bf5025acf750e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993686 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| a7b91502 | 2020-01-15 13:35:08 | Vulkan: Updated expectations after recent fixes Bug: angleproject:3569 Bug: angleproject:3596 Bug: angleproject:4106 Bug: angleproject:4108 Bug: angleproject:4300 Change-Id: Iab88bf5db19af802ad41ef8bf68f643420857989 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003233 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com> | ||
| ffdd58f5 | 2019-12-28 15:34:41 | Fixing OVR_multiview and OVR_multiview2 issues Found two issues when native OVR_multiview and OVR_multiview2 extensions are generated. 1. OVR_multiview got replaced by the OVR_multiview2 in the translated shader (ESSL & GLSL) 2. Duplicate #extension OVR_multiview2 (for Fragment & Vertex) and 'layout (num_views=x)' (for Vertex) got generated into the translated shader. Bug: angleproject:4247 Change-Id: I9a550883eeb326d95af4557578f8202a9493f4ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1983802 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> | ||
| 2e1beb40 | 2020-01-14 12:08:02 | Add a test to expose translator bug w.r.t short circuiting Bug: angleproject:3829 Change-Id: I872118f145886eecaed1680268e95419385b9d9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001237 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| feb3b6cc | 2020-01-13 22:58:59 | Vulkan: Remove row->col major shader transformation This was done based on the incorrect assumption that Vulkan GLSL doesn't allow layout qualifiers on interface block fields. This was due to glslang compile failures in some shaders that included mixed row- and column-major fields in interface blocks. However, the failures were only in the case the interface block is inactive, in which case glslang wrapper previously replaced the layout/qualifier of the interface block with |struct|, which left the shader with an unused struct definition with fields that have layout qualifiers; an invalid shader. The change introduced in https://chromium-review.googlesource.com/c/angle/angle/+/1951523 removes inactive shader interface declarations. The above scenario thus never occurs, rendering the row- to column-major transformation unnecessary. Bug: angleproject:3443 Change-Id: Ice34a0fc6e047b79a4d44f04b730ec59bdfafe33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1961098 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| b09d46cc | 2020-01-13 10:56:46 | Add P010 stream test Makes sure P010 stream can work correctly. Bug: chromium:1033416 Change-Id: I1b49568cd667697337335a0eca74504bd0e36f5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1996912 Reviewed-by: Jie A Chen <jie.a.chen@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> | ||
| 740c4ea7 | 2020-01-13 17:21:54 | Invoke the standalone test harness runner. Previously we were still calling GoogleTest directly. This change switches the test main funtions to call the standalone harness. Only affects standalone and shouldn't affect the tests in Chromium or on the current test setup. Bug: angleproject:3162 Change-Id: Ia5a5a73d47c0b47b4df8f54cd6df71da2d878847 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998661 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> | ||
| 238adb7a | 2020-01-13 17:21:53 | Fix test harness running disabled tests. Adds special handling for the DISABLED_ GTest test name. Fixes the test for the test suite harness itself when run with the new "--bot-mode" flag. Bug: angleproject:3162 Change-Id: Idf34098d2d6bcb78263773be7b01c55df9ec624b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998660 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> | ||
| 680a7d3b | 2019-12-09 16:07:43 | Vulkan: Add test that exposes sampler refactor bug Bug: angleproject:4211 Change-Id: I9e9cdacd4f24131101029d17932625e2e3c7d7e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1957836 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> | ||
| 683dd1d6 | 2020-01-13 17:21:52 | GN: Move util build code into util/BUILD.gn. Prepratory clean up for WinUWP support. Bug: angleproject:4182 Change-Id: I97cc6cb42a50c6b57ca7d375d1e0a6b3da7aa9d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998673 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> | ||
| 8b3a0fa8 | 2020-01-13 15:57:27 | Vulkan: Update expectations SwS change fixes 2 tests Changing SwiftShader to return: VK_SAMPLE_COUNT_1_BIT | VK_SAMPLE_COUNT_4_BIT for for VkPhysicalDeviceLimits::sampledImageIntegerSampleCounts fixes two tests that were failing with SwS. This also fixes the expectations file for another test. Bug: angleproject:4260 Bug: angleproject:4259 Bug: angleproject:3565 Change-Id: I698468ff8421b1c8556c8671b173e1cfde6b7f6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1999484 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com> | ||
| ed074852 | 2020-01-07 13:26:27 | Add a perf test for drawing with alternating programs The programs have a different shader interface, to force rebinding descriptor sets in the Vulkan backend. Bug: angleproject:4261 Change-Id: I7a18a441483dfe34bd40b5a30ca34b7fd0dc3219 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1990085 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| f0be7c81 | 2019-12-02 15:42:33 | Fix GLSLTest_ES3.MixedRowAndColumnMajorMatrices_ReadSideEffect The test had two array sizes swapped, causing failure on vendors that statically verified index-out-of-bound accesses. Bug: angleproject:3831 Change-Id: I8ec32e9c11b38b69f03b1a22e60dfb6c6e82c2a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947123 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 6b275406 | 2020-01-09 11:14:47 | Vulkan: Workaround vertex attributes vs stride issue on AMD Under robustBufferAccess, Vulkan states that: Vertex input attributes are considered out of bounds if the offset of the attribute in the bound vertex buffer range plus the size of the attribute is greater than either: - vertexBufferRangeSize, if bindingStride == 0; or - (vertexBufferRangeSize - (vertexBufferRangeSize % bindingStride)) The latter implies that if the buffer size is not a multiple of the vertex attribute stride, what lies beyond the last multiple of stride is considered out of bounds. It also says: Out-of-bounds buffer loads will return any of the following values: - Values from anywhere within the memory range(s) bound to the buffer (possibly including bytes of memory past the end of the buffer, up to the end of the bound range). - Zero values, or (0,0,0,x) vectors for vector reads where x is a valid value represented in the type of the vector components and may be any of ... The first bullet point indicates that the driver is allowed to load the attribute values from the buffer if its range still lies within the buffer size. Take the following example: - Buffer size = 12 - Attribute stride = 8 - Attribute offset = 0 - Attribute size = 4 Basically the buffer is thus laid out as follows: attr stride _________/\_________ / \ +----------+----------+----------+ | vertex 0 | padding | vertex 1 | +----------+----------+----------+ \___ ____/ V attr size In the above example, the attribute for vertex 1 is considered out of bounds, but the driver is allowed to either read it correctly, or return (0, 0, 0, 1) for it. Most drivers implement the former, while AMD implements the latter. This change introduces a workaround for AMD where GL_MAX_VERTEX_ATTRIB_STRIDE is limited to 2048 (the common value for it according to gpuinfo.org) and conservatively rounds up every buffer allocation to that size. While technically, this workaround should be applied on any device with the robustBufferAccess feature enabled, it is currently limited to AMD to avoid the inefficiency. A possible future revision of Vulkan may relax the above restrictions. Bug: angleproject:2848 Change-Id: Ida5ae5d777da10f22ce8be5a09a7644b5bbd778e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1991709 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 8fde1151 | 2020-01-09 14:22:35 | Vulkan: fix default uniform descriptor rebind on program change When the program binding changes, we set the descriptor sets binding dirty bit if the program had any textures, UBOs, SSBOs, images or atomic counters. The check for default uniforms was missing. So if the two programs had no resources and were only using default uniforms, then drawing with one after the other didn't update the descriptor set binding of the default uniforms for the second draw. Bug: angleproject:4277 Change-Id: I631a1619658ee713484cfaee99fe1e39987e16e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993408 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> | ||
| 4ffc254e | 2020-01-08 09:58:24 | Only initialize the timestamp query pools if the extension is available. Also added a few assertions to ensure that timestamp queries aren't attempted when support is missing. Bug: angleproject:4114 Change-Id: Ie6d7d5face59f9bc137aebd86c9d0e965773e6e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1992184 Commit-Queue: Eric Binet <ericbinet@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 7a37d3ac | 2020-01-05 13:52:03 | Work around Intel driver bug with CopyTex{Sub}Image2D/DeleteTextures. Dependencies seem to be incorrectly tracked in some Intel OpenGL drivers (on macOS specifically), causing crashes in glDeleteTextures if a GL command buffer is being constructed where those textures are destinations of CopyTexImage2D/CopyTexSubImage2D. Work around this bug by flushing before texture deletion if CopyTex{Sub}Image have been called recently. The tracking is only done on a per-context rather than a per-device basis, but seems sufficient to work around the problem as identified. Tested both with new ANGLE test on affected hardware, and in WebKit's ANGLE backend for WebGL. Works around the crash reported in https://bugs.webkit.org/show_bug.cgi?id=205707 . Bug: angleproject:4267 Change-Id: I2266a5590759f6a3f19080def08710ef4b66d463 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987932 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| b84cdffe | 2020-01-06 14:59:44 | Fix colored indexed point tests not using color in vertex buffer. In the previous version, the IndexedPointsTestUInt tests named VertexWithColorUnsignedIntOffset* were redundant with UnsignedIntOffset*. Bug: angleproject:3923 Change-Id: I6b9b8f2bd78882bcac7c3b89e798291ee94eea70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1988998 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| c8d7f047 | 2020-01-07 10:06:07 | Vulkan: Update number of samples when changing draw framebuffer This fixes a crash (preceeded by Vulkan validation errors) when running the following test: --gtest_filter=dEQP.KHR_GLES31/core_texture_storage_multisample_FunctionalTests_blitting_multisampled_depth_attachment* --use-angle=vulkan The problem is that GraphicsPipelineDesc::updateRasterizationSamples() is rarely called (e.g. glBindFramebuffer). The above dEQP test changes between draw attachments that do and don't have multisampling enabled. The number of samples is set (the first time) to have multisampling enabled, and never changed, even though other attachments don't have multisampling. FramebufferVk::syncState() now calls updateRasterizationSamples(). That fix uncovered a latent problem: when an application destroys all framebuffers (including the draw framebuffer), the ContextVk still points at the old draw framebuffer's FramebufferVk (now freed). This is fixed with new plubming to clean-up ContextVk::mDrawFramebuffer. Bug: angleproject:4240 Change-Id: I151ec40ab821efc07c26323c34275c9165ad2ed5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1983393 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com> | ||
| cbbb3aaf | 2020-01-07 15:03:20 | Suppress VertexAttributeTest.DrawArraysWithBufferOffset on Mac NVIDIA The test fails with the following at a very low flake rate: ../../third_party/angle/src/tests/gl_tests/VertexAttributeTest.cpp:230: Failure Expected equality of these values: angle::MakeGLColor(255, 255, 255, 255) Which is: White angle::ReadColor((midPixelX + viewportSize[2]) / 2, midPixelY) Which is: Transparent Black TBR=jmadill@chromium.org Bug: angleproject:4269 Change-Id: I82752acfbcb2a067ccb35a7a456def03299c359f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987258 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> | ||
| 806d812e | 2020-01-03 13:48:30 | Vulkan: Reorder descriptor sets This change moves driver uniforms to a set with a lower id than the one that includes (emulation) transform feedback buffers. Imagine the following: - Program 1 with xfb: UniformsSet: 1 VS uniforms buffer, 1 FS uniforms buffer, 1 xfb buffer - Program 2 without xfb: UniformsSet: 1 VS uniforms bufer, 1 FS uniforms buffer. Previously, UniformsSet was index 0, and DriverUniformsSet was index 3. When switching from Program 1 to Program 2, the layout of UniformsSet changes, which means every subsequent set needs to be rebound. This is a Vulkan pipeline layout compatibility rule. This is done with invalidateCurrentTextures() and invalidateCurrentShaderResources() already when handling gl::State::DIRTY_BIT_PROGRAM_EXECUTABLE. The bug is that the driver uniforms are not invalidated. This is normally not an issue, because usually when switching from Program 1 to Program 2, transform feedback is paused, and this state change does invalidate driver uniforms. However, the following scenario doesn't do this: - Begin Xfb - Pause Xfb - Use Program 1 - Draw - Use Program 2 - Draw - End Xfb There is no driver state change between the two draw calls, which means the second draw will attempt to draw using the driver uniforms bound for the first draw call. There is a Vulkan validation error here due to the above pipeline layout validation rule. The issue manifests itself only when the second draw call actually uses driver uniforms, as otherwise that set is inactive and not validated; i.e. when line raster emulation is used. In summary, the validation error manifests itself when: - Transform feedback and line raster both use emulation - Transform feedback is paused - A draw with an xfb program is followed by a non-xfb program - The second draw is a line draw A test is added for this. The solution is to reorder the sets so that DriverUniformsSet is placed before UniformsSet. This way, changes to the layout of UniformsSet don't invalidate DriverUniformsSet. In fact, based on the above, any change in the layout of the program should have required an invalidation of the driver uniforms. This bug is probably masked by the fact that ContextVk::handleDirtyDescriptorSetsImpl() always rebinds the graphics driver every time any descriptor set needs rebinding. That should be removed in a follow up change. Bug: angleproject:4261 Change-Id: I21ad4152b454a1fe70554be02e18a9c94fb3e7a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1986927 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 51e653f0 | 2020-01-02 13:53:03 | Suppress flaky failure with MacOS/NVIDIA/OPENGL Seeing intermittent failure on this test only on MacOS/NVIDIA/OPENGL. Suppress for now. Bug: angleproject:4258 Change-Id: Ibda30954019410e3b6d069986b2cd0ad26533c00 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1984850 Reviewed-by: Shrek Shao <shrekshao@google.com> Commit-Queue: Shrek Shao <shrekshao@google.com> | ||
| 8c0bbfbb | 2019-11-25 14:48:11 | EGL: Implement EGL_ANDROID_framebuffer_target Add attribute to configs. Add attribute matching logic. Does not set attribute in Vulkan configs, need solution to query Android for which formats are valid. anglebug.com/4208 New end2end test. Bug: angleproject:3961 Test: angle_end2end_tests --gtest_filter=EGLAndroidFramebufferTargetTest* Change-Id: I7e14c47b39e9539f6181c3c1d75c76fe63ca0f8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1960508 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com> | ||
| 7dfc99e5 | 2019-12-18 16:37:20 | Vulkan: Update dEQP source for test fixes Also fix scripts/gen_vk_gl_cts_build.py to always use '/' as file separator. Otherwise, running the script on Windows uses '\' which Linux doesn't like. Test: angle_deqp_gles31_tests --use-angle=swiftshader --gtest_filter=dEQP.GLES31/functional_debug_negative_coverage_get_error_vertex_array_draw_range_elements Bug: angleproject:2324 Bug: angleproject:4234 Change-Id: I3b212e0d0ba97996f1d86f7fc81e58c3b03a9cbb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1975020 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| ab42afa6 | 2019-11-21 10:13:44 | Metal: fix vertex attribute's conversion lost after changing buffer binding. After vertex buffer's attribute is converted and stored in conversion buffer. Binding the same attribute to another buffer, then binding it back to previous buffer will result in previous conversion information lost. The conversion method would skip the conversion due to buffer's content hadn't been changed, however it didn't reuse the old conversion result. This CL also changed the way binding offset is used in Metal backend. - Previous, the offset would be assigned to the offset field of MTLVertexAttributeDescriptor, then the buffer would simply be bound to the command encoder with offset=0 i.e. setVertexBuffer(buffer, index, 0) - However this approach has several disadvantages. Since Metal doesn't allow MTLVertexAttributeDescriptor's offset to be larger than the vertex attribute's stride, the old approach would force the back-end to convert the attribute and store in conversion buffer. New approach: - MTLVertexAttributeDescriptor's offset will be zero. The offset will be used to bind the buffer itself to the render command encoder. i.e. setVertexBuffer(buffer, index, offset) This way the "offset <= stride" restriction no longer exists. The only restriction is the offset must be multiple of attribute's size. Added 3 new tests: - SimpleStateChangeTest.RebindTranslatedAttribute - VertexAttributeTest.DrawWithLargeBufferOffset - VertexAttributeTest.DrawWithLargeBufferOffsetAndLessComponents Bug: angleproject:2634 Change-Id: I6c2fa8091436e4a24405d791f86d17d97df02d64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940009 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> | ||
| 81ee4d29 | 2019-12-04 17:05:11 | Workaround EXT_texture_norm16 for OpenGL ES drivers Implement a workaround for widespread bugs calling glReadPixels with RGBA/UNSIGNED_SHORT against R16/RG16 color attachments. Read back the data using the GL_IMPLEMENTATION_COLOR_READ_FORMAT, and then rearrange the read back pixels to fit the RGBA layout. Also skip RGB16/RGB16_SNORM texture sample test on Nexus 5X/Nexus 6P due to a another driver bug. Bug: chromium:1000354, angleproject:4214, angleproject:4215, angleproject:4245 Change-Id: Iedea6f4136878cac5ad0dec3757c77b73502e1cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1952166 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com> | ||
| 1fdf6ca5 | 2019-12-31 14:25:35 | D3D11: Restrict to translate uniform block to StructuredBuffer Only translate uniform block to StructuredBuffer when system is Windows 10 and later. Bug: angleproject:3682 Change-Id: I27e3f4503392791883a44e1d486ffe9512e04bd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1984863 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | ||
| 942d9152 | 2019-12-23 15:31:52 | EGL: Add support for EGL_KHR_gl_colorspace extension If the Vulkan backend supports VK_EXT_swapchain_colorspace extension, enable the option for applications to create surfaces with non-linear formats. Not all formats have non-linear versions and is platform specific. Tests: dEQP-EGL.functional.wide_color.* angle_deqp_egl_tests --use-angle=vulkan --deqp-gl-context-type=egl --deqp-case=dEQP-EGL.functional.wide_color.* Bug: angleproject:2514 Change-Id: I441ee797cceef92c84473bfa18605c4fd8180de1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1951963 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> |