src/tests


Log

Author Commit Date CI Message
Min Zhang e56f227d 2022-05-13T08:50:12 Vulkan: Add case: TextureSampleByDrawDispatchDraw This case is used to verify the implicit synchronization when GL executables switch from draw to dispatch. Besides, suppress a VVL on it. Bug: angleproject:7031 Change-Id: Idab68cfd0d4b17685f5eb5b3eec7f2cad12e5877 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646927 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 03ccd9cc 2022-05-13T16:12:11 Revert "Vulkan: Flush texture updates more often" This reverts commit 8bb7c35c2159de2fa9e9a008679c692edd4402a6. Reason for revert: crashes tests in linux-rel Example: https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1012030/overview Also possible flakiness https://anglebug.com/7308 Repro: out/Debug/bin/run_blink_web_tests fast/canvas/OffscreenCanvas-2d-drawImage.html Original change's description: > Vulkan: Flush texture updates more often > > * Added a pointer to the previous texture in ShareGroupVk so we can > flush the texture updates once we switch to a new texture. > > * We check if mip levels 0 and 1 are conformant in terms of > size, format and number of samples. > > * As a part of size check, we also check depths if the texture > target is either 3D, 2D array, or cube map array. For the former > two, they have to conform to mip scaling similar to width and > height. For the latter, the depth represents layer-faces and does > not change for mipmaps. > > * Added a test to ensure the pointer to the previous texture is > deleted when the corresponding texture is deleted, so the old value > is not accessed by a future mutable texture. > > * Added tests to make sure the mutable texture is uploaded with > the appropriate mip level attributes, and not uploaded in cases of > size/format inconsistencies, incompleteness, and no base level. > > Bug: b/202744914 > Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: b/202744914 Change-Id: Id51fd4c76d058aa5100ec58ba618098c8f614253 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645493 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
Jamie Madill 21ad9b3c 2022-04-07T09:57:26 Vulkan: Add generic descriptors for DS cache. With the new design, the descriptor set cache keys include all identifying information needed to reconstruct the update descriptor sets calls except the specific resource handles. The places for the resource handles are held by serials intead. When we miss the cache, we no longer need a second step to then construct the update calls, and can build the update calls directly from the key structures in combination with a list of resource handles. Bug: angleproject:6776 Change-Id: If1660a557585a75e9aa2560d6a38c56b62f555c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484981 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d8d396db 2022-04-07T09:57:25 Vulkan: Add shared descriptor set caches. This allows programs with the same sets of descriptors to share descriptor sets. Currently there is no cache eviction. This CL adds a new "Meta" class to manage the descriptor set caches. Each shared descriptor pool is unique to a descriptor set layout. The descriptor set cache is moved into the pool class. Now every instance of a descriptor pool in ANGLE has easy access to a descriptor set cache as well. Bug: angleproject:6776 Change-Id: I06982e0349f5a87e4578e769fa356ce8e7ab49f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424660 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 0f2fc766 2022-05-04T12:51:15 TracePerfTest: Add ability to screenshot after reset. This patch makes --screenshot-frame take frame arguments that are greater than the frame range of the test. This makes it possible to capture screenshots after reset. E.g. the trace has 100 frames, the argument 1 and 101 should give the same result, but will differ if reset fails. Bug: angleproject:7307 Change-Id: Ie149e6046d0384d93341c677a7b391b5342917d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644577 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 8bb7c35c 2022-03-23T19:14:54 Vulkan: Flush texture updates more often * Added a pointer to the previous texture in ShareGroupVk so we can flush the texture updates once we switch to a new texture. * We check if mip levels 0 and 1 are conformant in terms of size, format and number of samples. * As a part of size check, we also check depths if the texture target is either 3D, 2D array, or cube map array. For the former two, they have to conform to mip scaling similar to width and height. For the latter, the depth represents layer-faces and does not change for mipmaps. * Added a test to ensure the pointer to the previous texture is deleted when the corresponding texture is deleted, so the old value is not accessed by a future mutable texture. * Added tests to make sure the mutable texture is uploaded with the appropriate mip level attributes, and not uploaded in cases of size/format inconsistencies, incompleteness, and no base level. Bug: b/202744914 Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Lubosz Sarnecki 8e844d0f 2022-05-10T15:24:32 Tests: Add Black Desert Mobile trace. Test: angle_perftests --gtest_filter="*black_desert_mobile*" Bug: angleproject:7139 Change-Id: Ia456b3e8266049970f0201f9c2041d0e7cdcac3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645269 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 389ae6b9 2022-05-09T08:44:50 Add extension for read-only DS feedback loops. This will facilitate testing. Also moves some feedback loop tests from FramebufferTest to a specialized test class. Bug: angleproject:4778 Bug: angleproject:4969 Change-Id: I61235f2663a58644bf506254a869f550f1706de3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634726 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 40583b0f 2022-05-12T09:09:37 Tests: Skip pubg_mobile_skydive on Nvidia Test: angle_perftests --gtest_filter="*pubg_mobile_skydive*" Bug: angleproject:7283 Change-Id: Iba6c7c9caa2f887b0c5016869416ec4897975e1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645587 Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4df8ca04 2022-05-11T09:03:33 Remove angle_util from restricted traces. This target is not needed because the traces use a custom GL/EGL loader. This way we can be sure we don't call the wrong entry points. Bug: angleproject:4964 Change-Id: I5bfa29f087d47ab598ae0ae5ac2ddf9aa04806b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3641924 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 580f90c7 2022-05-12T09:53:17 Test Runner: Accept Chromium bot mode flag. This is for compatiblity with Chrome's windowed test launcher. Bug: angleproject:5417 Change-Id: I3a366b2b8aa895ab996fbcab68a777514038a206 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644854 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 4ffab3bf 2022-05-10T16:17:54 Vulkan: Dynamic state for stencil reference Bug: angleproject:5906 Change-Id: I1aaf54208b173ca58ff1afd2900eca7ee78726cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638990 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Min Zhang 3d55cf0c 2021-12-30T11:27:26 Vulkan: Optimize the vkImage layout when used as GL_image If one vkImage has been used as GL_image in compute shader and as a GL_texture in fragment shader, no dependencies are needed for the fragment shader and other pre-fragment graphics shaders, like vertex/tess/geom. If we only assign the vkImage layout as writable when running GL executables that have Image Textures, we can specify more precise read-only barriers when running read-only GL executables. Bug: angleproject:6862 Change-Id: Iff37fdce13fea637751899253e535bf3f6663200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366014 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 1d8227da 2022-05-10T16:00:39 Vulkan: Dynamic state for stencil write mask Bug: angleproject:5906 Change-Id: I74adf56ec0b7b251ab3c5204b68b062d5fbc91eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638989 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi c3def6fa 2022-05-10T14:28:04 Vulkan: Dynamic state for stencil compare mask Bug: angleproject:5906 Change-Id: Ie581c6e9fe15c90c7a6d0c7c246dd5b1b30b6507 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638988 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Stephen White e9dc0f86 2022-05-10T12:44:28 Cleanup from glBlitFramebuffer() 3D texture fix. Some minor refactoring. Move skips to test expectations and add a bug ID. Bug: angleproject:7291 Change-Id: I8d900a26508a28f6202a009c770cffb0e623dc5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638985 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi dcaa18b9 2022-05-10T12:27:15 Vulkan: Dynamic state for blend color Bug: angleproject:5906 Change-Id: If450e0d84410069126027142414586181fd5f0de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638986 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 536d6f57 2022-05-10T11:44:58 Vulkan: Dynamic state for depth bias Bug: angleproject:5906 Change-Id: I8fd7e3262fddf3aec855afdd3e4c1b9801040da1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638983 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 42789b63 2022-05-11T11:56:43 Use GLTexture in TextureTest for RAII goodness. Change-Id: I2a9fd5ddeacb9f7947a8090748b2e1cbbabb4fe6 Bug: angleproject:7266 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3623862 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 780f1a41 2022-05-10T00:30:35 Vulkan: Dynamic state for line width Bug: angleproject:5906 Change-Id: Iacf9c14d9d255c8048c71c725173e4764bcfe166 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634733 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Stephen White 9b15e1c2 2022-05-11T11:47:52 D3D11: clean up ES31 test expectations. Remove expectations for now-passing tests. Make some expectations more precise. Bug: angleproject:1442, angleproject:1729 Change-Id: I9843b7ef438599d121d3dd028273ae50fcf89e2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3641181 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f6610106 2022-05-10T12:05:52 Add a draw call perf test for changing a single uniform. Bug: angleproject:6776 Change-Id: I0621c813a654b3378b48d03219620627605b24a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638984 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi e73121b1 2022-05-10T22:47:20 Vulkan: Fix VulkanPipelineCachePerfTest Bug: angleproject:5906 Change-Id: Ide86708df10679309cc2aca0df088e8595d2a8c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3641142 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 089f2871 2022-05-10T13:05:18 PerfTests: Add support for eglCreateImage and eglDestroyImage Bug: angleproject:4964 Change-Id: I7a028b72cf7a44230f8d129753daef8c04f2fac5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636061 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuxin Hu a8ebdf2b 2022-05-05T19:01:22 Basis Universal Texture Experiment Adding ETC1 image decoder code to decompress the ETC1 data into RGBA data, so that we can compare the pixel values in the test Bug: angleproject:7250 Change-Id: I0b8d6143473c38818407c42db3227d1f93e1c0a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3631572 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev 52904367 2022-05-10T00:00:00 D3D: Mark images clean after syncing from storage Bug: angleproject:2192 Change-Id: I114da8962f6f7aec3134d39bc51c62455e4a62ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3637565 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Stephen White 8e121571 2022-05-06T13:27:06 D3D11: fix 3D texture blits. Change-Id: Icf8b061bb8f5d3e1cdd03f75fdecf16157abc0e5 Bug: angleproject:7272 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3631348 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 31321cb7 2022-05-09T16:17:25 Vulkan: Remove suppressions and workarounds for old AMD/Windows The old AMD/Windows bots are decomissioned. This change removes suppressions and workarounds that were added for that bot. Bug: angleproject:2463 Bug: angleproject:2809 Bug: angleproject:2847 Bug: angleproject:3243 Bug: angleproject:4720 Bug: angleproject:6123 Bug: angleproject:6652 Bug: angleproject:7144 Bug: angleproject:7227 Bug: chromium:1224996 Change-Id: I333ed6d76dfa2916b713ccb49127deceb5b1b551 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634728 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 0b0744f3 2022-05-05T16:22:28 Vulkan: Fix VVL error for black desert mobile When a depth stencil attachment is sampled in fragment shader and followed by sample from vertex shader, we are not hitting the readOnly to readOnly but with different shader stage code path. This is because IsShaderReadOnlyLayout is not counting VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL as shader read only, even though we are picking this layout for depth texture texture sampling just to avoid renderpass break when transit depth texture from read only depth attachment to shader read. Bug: angleproject:7186 Change-Id: I98c782ce85125a2ade953440145d6cc71d2c1dc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3629953 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev b51bbe24 2022-05-06T00:00:00 Add CopyTextureTest.ClearAfterCopySubTexture Bug: angleproject:2192 Change-Id: I75d13e089e6e47f1fd3ce62eba48e531c24abcff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634704 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang c8c4109c 2022-05-02T11:29:24 HLSL: Disambiguate functions that have int/uint parameters. If a bit-shift expression is passed as a function parameter in HLSL, the compiler cannot tell if it is intended as a uint or int when doing overload resolution. Explicitly disambiguate functions that have int and uint parameters when generating the HLSL. Bug: chromium:1319332 Change-Id: I11c9518e060e9940550bbb04dd7cb953d99c2bb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 225d8f83 2022-05-04T11:34:56 Tests: Add Mortal Kombat App Trace Test: angle_perftests --gtest_filter="*mortal_kombat*" Bug: angleproject:6997 Bug: b/218515707 Change-Id: Ie1d4ab498239308761aab55a92f1280cb52dd0a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3627126 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 1d073482 2022-05-04T23:25:23 Tests: Add Basemark GPU trace Test: angle_perftests --gtest_filter="*basemark_gpu*" Bug: angleproject:7274 Change-Id: I5adbc16ab7a6f5d3b51de3b31614fb1acb75a9f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3628950 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 5f2ad153 2022-05-06T09:42:00 Tests: Add Puzzles and Survival trace Test: angle_perftests --gtest_filter="*puzzles_and_survival*" Bug: angleproject:7285 Change-Id: If09e3bdc60f71e7b8610731251fc0c6e8e4642cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630168 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop dbbfac65 2022-05-05T23:07:09 Tests: Add Monument Valley trace Test: angle_perftests --gtest_filter="*monument_valley*" Bug: angleproject:7284 Change-Id: I673624f259e281354260b90a45e4236af476631b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630485 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop b365a606 2022-05-05T22:28:26 Tests: Add Dead Cells trace Test: angle_perftests --gtest_filter="*dead_cells*" Bug: angleproject:7282 Change-Id: I96b3a5e3499e71c9ecf482cb43aebf0ae56d1052 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3631998 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao d075dfe2 2022-05-03T16:25:26 Vulkan: Reduce kMaxBufferToImageCopySize to 64M Bug: b/230538246 Change-Id: Id2ef9c35f74fb6f526744903402562f9354bfcdb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3625834 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 98488a19 2022-04-28T11:53:21 FramebufferTest: Add FramebufferChangeTest test. Add an end2end test that reproduces VVL error seen in Black Desert Mobile that states "Render pass closed due to framebuffer change". The test passes on OpenGL/ES. Add Vulkan test to expectations. Test: angle_end2end_tests --gtest_filter="FramebufferTest_ES3.FramebufferChangeTest/*" Bug: angleproject:7139 Bug: angleproject:7186 Bug: b/181797364 Change-Id: I661a55a5d9322c51cbed20de1ffcc477cb6a4dc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3560601 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 0afa5b9f 2022-05-03T12:27:56 Tests: Add Alto's Odyssey trace. Test: angle_perftests --gtest_filter="*altos_odyssey*" Bug: angleproject:7275 Change-Id: Ibd5c5517ccde8e18e2b5cc39535605be428512fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3629543 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peter Kasting 2ce60b52 2022-05-05T08:23:07 Fixes for C++20 support. * The compiler grew smart enough to warn about value changes due to casting to float inside floatToNormalized(). Make it smart enough to realize this isn't a problem by using constexpr if. * Types on both sides of a comparison operator should be the same. * Structs with user-declared constructors are no longer aggregates. Provide a constructor and call it. * std::result_of<F(x)> is gone, use std::invoke_result<F, x> instead. Bug: chromium:1284275 Change-Id: I6487bb18c65837a6d7d2661f65e097dc6a7605b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630478 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org>
Amirali Abdolrashidi 3f216ee7 2022-05-04T19:37:13 Vulkan: Set timeout for MultiContextDrawWithSwap* Bug: angleproject:7270 Change-Id: Ie36a6a8eb796cd49c32a21a9bace8f9b0efa5a90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3627484 Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 77cd0b5a 2022-04-14T13:32:07 Re-land: "Vulkan: Cache ImageView serials on texture changes." Re-land fixes BindTexImage serial caching. This significantly reduces overhead when changing textures before draw calls in the Vulkan back-end. Bug: angleproject:6776 Change-Id: I2cc03cb8a70e8c181f7658ab45df780e412bfc57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3623860 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi edd331eb 2022-04-28T09:47:51 Traces: Add a device arg to restricted_trace_perf In case of multiple available devices, we can use either this argument or setting $ANDROID_SERIAL to select the device to run tests on. * Added the option to run restricted_trace_perf with more than one connected device. * The device serial can be entered either by using the --device arg or setting $ANDROID_SERIAL. If both are used at the same time, the former has more priority. * Neither is required if there is only one connected device. Bug: angleproject:6970 Change-Id: Id80398b82ea5b905f3dbfa4651d5f5246a3ccbe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615082 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 9ab47074 2022-05-02T11:51:31 D3D11: fix BufferToTexture copy when UNPACK_ROW_LENGTH is set. The BufferToTexture fast path rasterizes a point per pixel when copying buffer to texture, and uses the vertexID to determine the buffer location. However, the math is wrong if UNPACK_ROW_LENGTH is set. The fix is to use UNPACK_ROW_LENGTH (if specified) rather than the width in the Draw() call. Bug: angleproject:5542 Change-Id: If0bbc0d7ae3ecbb2211cfb27263324d23c5ff0af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621319 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Antonio Caggiano 9ad43bdd 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes: - link failure in systems with no libwayland installed. - XCB display availability check. Bug: angleproject:6902 Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuxin Hu 5c9f676d 2022-04-28T18:43:38 Basis Universal Texture Experiment Adding a test to read KTX image data. Adding the inlined image data adapted from KTX file with ETC1_RGB compressed format. Bug: angleproject:7250 Change-Id: I96d704f27875fc01bcd31ac8657627f4e3a71755 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616109 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Chris Forbes <chrisforbes@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 84e42c3b 2022-05-02T15:42:23 Fix validation cache when deleting a Transform Feedback. Bug: chromium:1320024 Change-Id: I76ef85a3c65c663c138d8caebd4ef2c0da53cd4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621780 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov b5f0fd1b 2022-05-03T09:03:59 Skip flaky tests on Win ASAN MemoryBarrierBufferTest.VertexAtrribArrayBitWriteThenVertexRead flaky timeout TimerQueriesTest.TimeElapsed flaky failure Bug: angleproject:7261, angleproject:7262 Change-Id: Ibd6e80bf71a7fe1702248f995d9d07851018a916 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621058 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov 4bbc55f4 2022-05-03T08:19:55 Revert "Re-land: "Vulkan: Support Wayland"" This reverts commit e0dd196a0e0aace17dfaa204163d798f504ea94e. Reason for revert: blocks ANGLE roll into Chromium Original change's description: > Re-land: "Vulkan: Support Wayland" > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. An EGL wayland > test is added for testing rendering and buffers swapping. > > Re-land fixes link failure in systems with no libwayland installed. > > Bug: angleproject:6902 > Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902, angleproject:7260 Change-Id: I7e92bf811b191eee6679d577006cddc0e1286fad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621057 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 5113ae8e 2022-04-29T22:42:59 Vulkan: Explicitly enable per-sample shading if `sample` used The Vulkan spec is not explicit about the `Sample` decoration implicitly enabling per-sample shading. While this is being corrected in the spec, the ARM Vulkan driver does not have this implicit behavior. A workaround is added such that the usage of the `sample` qualifier is reported, and used to explicitly enable per-sample shading through the API. Bug: angleproject:6876 Change-Id: Idb8345aacdcfa45cb37fefcd30aa5405168d21e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615738 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 3e05b93a 2022-04-12T19:39:19 Vulkan: MSAA swapchain resolve based on renderArea * Updated the MSAA resolve subpass so it can only be performed if the render pass is covering the entire area (e.g., not scissored). * Added test to make sure that the subpass resolve does not occur when the render pass does not cover the entire area. Bug: angleproject:6762 Bug: angleproject:7196 Change-Id: Iac3ab4b655dfeb7bff1348cc5e289a77a4dc0b83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584942 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop b953bc13 2022-04-01T09:14:28 Tests: Add GFXBench Tessellation trace Test: angle_perftests --gtest_filter="*tessellation*" Bug: angleproject:7154 Change-Id: I8b5284dc32aff2631b8d3c6b726c174738cf1a5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3564075 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Brian Osman df163d71 2022-05-02T11:02:52 Test both MSL translators in APPLEClipDistanceTest This test failed with the SPIRV translator disabled (the ifdef being checked didn't match up with the requested compiler output). Bug: angleproject:7155 Change-Id: Ic89bf4035b0ada43ec249dbbca4626ae2eab2006 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621314 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano e0dd196a 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes link failure in systems with no libwayland installed. Bug: angleproject:6902 Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny ea9a2dbe 2022-05-01T17:30:55 Capture/Replay: handle glGetVertexAttrib parameter value Bug: angleproject:7153 Change-Id: I56cbe833268a6d1f6d184c90b7fbe1a345e5f012 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3614518 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Roman Lavrov 41adabc4 2022-04-29T15:04:27 Use app data dir instead of /sdcard for writing qpa file Appears to drastically reduce runtime variability. Example: Max shard runtime (28m 15s) + overhead (10s): 28m 24s (shard #8) Min shard runtime (3m 5s) + overhead (20s): 3m 24s (shard #6) --> Max shard runtime (4m 6s) + overhead (11s): 4m 17s (shard #0) Min shard runtime (3m 7s) + overhead (10s): 3m 17s (shard #6) --deqp-log-flush is enabled by default (only disabled for multi-process execution http://anglebug.com/5157) and together with --deqp-log-shader-sources which is also enabled by default results in a huge number of line-by-line flushes degradng filesystem performance. Example strace capture in a degraded state: [pid 21208] 10:55:51.194033 write(77, "</ShaderSource>\n <InfoLog>", 28) = 28 <0.181028> [pid 21208] 10:55:51.375879 write(77, "</InfoLog>\n</FragmentShader>\n</S"..., 78) = 78 <0.179196> [pid 21208] 10:55:51.555790 write(77, "\" Description=\"Vertex shader com"..., 41) = 41 <0.177602> ~180ms *per line written* !!! (28, 78, 41 characters...) Under normal conditions these are way down in the microsecond range: [pid 11412] 10:55:56.689894 write(72, "</ShaderSource>\n <InfoLog>", 28) = 28 <0.000020> [pid 11412] 10:55:56.689957 write(72, "</InfoLog>\n</FragmentShader>\n</S"..., 78) = 78 <0.000026> I think that the reason for this is some peculiarity of the /sdcard filesystem which uses fuse: % df -h /sdcard/chromium_tests_root/ /dev/fuse 50G 3.7G 46G 8% /mnt/user/0/emulated As opposed to block/dm-N of the (non-app accessible) temp directory: % df -h /data/local/tmp/ /dev/block/dm-9 50G 3.7G 46G 8% /data_mirror/cur_profiles And the app data directory appears to be using the same filesystem: % df -h /data/data/com.android.angle.test/ /dev/block/dm-9 50G 3.7G 46G 8% /data_mirror/cur_profiles As far as I can tell the degradation of performance does not happen on this filesystem despite the huge amount of small writes. Disabling deqp log flushes when running on bots probably makes sense too but I'd like to first confirm the impact of this CL separately. Bug: chromium:1217662 Bug: angleproject:7242 Change-Id: I507e4c330fd4e1f4ce05f9768506f905e142f835 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615081 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Antonio Caggiano 5b4f180c 2022-04-29T16:56:34 Fix formatting Unrelated changes created by running "git cl format" Bug: None Change-Id: I880c7d50aead70353f22502d953efa7aa60ff5d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616882 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny e55990e3 2021-10-20T19:32:59 Capture/Replay: Handle arrays with uniform block indices When we update the uniform block indices we have to take into accountg that there may be arrays and that the indices of array elements can be retrived by querying with an index. Consider a layout layout(std140) uniform Data { vec4 plainData; vec4 arrayData[3]; } buffers; Then the loop for updating the uniform block indices will see [ "plainData", "arrayData", "arrayData", "arrayData" ] and we have to take care to add the array indices if they are greaten than zero, otherwise we would always query the index of the first array element. Bug: angleproject:6180 Change-Id: I21f96ab49c1c33bc4024711b72df961377afea4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198881 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 1aa4c120 2022-04-29T09:36:37 gl_tests: Fix formatting "git cl format" updated some formatting in code unrelated to the change set. Bug: None Change-Id: I4f63db03328356964c2e7c3a9785affa1078a82b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613919 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 3eb2bcf7 2022-04-27T16:13:04 Vulkan: Fix syncval errors with DONT_CARE for unused attachments DONT_CARE is a write operation for synchronization purposes. ANGLE doesn't synchronize depth/stencil attachments that are not written to, as it uses the read-only layout. This change makes sure LOAD/STORE_OP_NONE are used instead of DONT_CARE for attachments that are not used, even if they don't have defined contents. This allows ANGLE to continue to not do additional synchronization. Bug: angleproject:5371 Bug: angleproject:5962 Bug: angleproject:6411 Bug: angleproject:6584 Change-Id: I539379aa34f6655f00e798e8c4a5c57f40f7a12d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3612182 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 5e4c141c 2022-04-28T15:59:25 Tests: Add GFXBench Driver Overhead 2 trace Bug: angleproject:7249 Test: angle_perftests --gtest_filter="*driver_overhead_2*" Change-Id: I29af5cd4afa442b223968f68ec24cd72a7b5bf90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615612 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 7184fe38 2022-04-27T10:58:39 Tests: Add Jetpack Joyride trace. Test: angle_perftests --gtest_filter="*jetpack_joyride*" Bug: angleproject:7253 Change-Id: I4823e13ba4543ed19d91631de2cef21a320b813f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613925 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 3b65b803 2022-04-27T11:04:22 Vulkan: Work around Qualcomm imprecision with dithering On qualcomm, sometimes the output is ceil()ed instead of round()ed. With ditering emulation affecting values, some dEQP tests fail due to the excessive change in value when dithering bumps the value slightly over to the next quantum. In this change, a workaround is added to round() the value before outputting it. Bug: angleproject:6953 Change-Id: Iae7df5ca20055b4db3185c6153f3c0bf4ba07f68 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611064 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil 6c248691 2022-04-21T10:10:03 Enable SINGLE_BUFFER with eglCreateWindowSurface Enable core EGL feature for Vulkan using: VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest Bug: angleproject:7224 Change-Id: I3e85f932471f7b3c97bbc5c2f5314f25eb9b2867 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3610975 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov c9794d6c 2022-04-27T14:20:47 Run a smoke test in each shard and crash on timeouts. The smoke test (words_with_friends_2) typically takes only a few seconds to run. Run it first to check that everything is working as intended. As we know it's a short test, we can set a small timeout (60s) and fail early in case something goes wrong. This will speed up tests failures when something is completely broken. I also changed the main shard run to crash when timeout is detected instead of just dumping debug info as if the tests didn't finish in 10 minutes they're also unlikely to finish in the 20 minutes after which swarming times out the shard. Bug: angleproject:7242 Change-Id: Ia99ca4b2e1676d09b9ff7d67ab116aba94f66512 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611446 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 80d50b99 2022-04-26T17:29:08 Add build arg to automatically attach renderdoc Macro ANGLE_TEST_ENABLE_RENDERDOC_CAPTURE was defined only for files under src/libANGLE, however, we need to use this Macro in filed under src/tests/. Move the Macro config from BUILD.gn to src/tests/BUILD.gn. Also add a new gn arg angle_enable_renderdoc to control enable/disable the Macro. Bug: angleproject:6072 Change-Id: I3879015e9bdfe2530012ea39729a31c47129ce4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609024 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7d31a47f 2022-04-23T00:19:15 Vulkan: Optimize away eglSwapBuffers for single buffer surfaces For single buffer surfaces, eglSwapBuffers serves two purposes: - Switch to/from single buffer mode - Implicitly issue a glFlush Simultaneously, for single buffer surfaces, glFlush serves three purposes: - Submit the commands - Call queue present (if necessary) - Throttle the CPU In this mode, ContextVk::flush() already redirects to the surface, calling WindowSurfaceVk::swapImpl() which calls back to ContextVk::flushImpl() (to submit the commands), calls queue present and throttles the CPU. If the application calls eglSwapBuffers(), the exact same thing happens (i.e. WindowSurfaceVk::swapImpl() is called to the same effect). Calling swapImpl() leads to an addition of the corresponding submit serial to the "swap history". The CPU throttling code always throttles the CPU to the serial of two swaps ago. Unnecessary calls to eglSwapBuffers() (when there is no command to be flushed) in single buffer mode would thus lead to the CPU throttled to the end of the last submission, effectively turning into a glFinish(). In this change, eglSwapBuffers() in single buffer mode, when not switching to/from this mode, is redirected to glFlush() as it's functionally equivalent. Simultaneously, ContextVk now tracks whether it has any pending commands for submission at all, and skips glFlush() altogether if there are none. Together, this results in the unnecessary eglSwapBuffers() to become no-op. Bug: b/229908040 Change-Id: I0e3b4a8b7eb4f6b0e0ed22260644825fc67dd330 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603841 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 5c756bc1 2022-04-26T14:31:47 Perf Tests: Compute GPU time periodically If you specify `--fixed-test-time 30` while running app perftest and watch for GPU memory allocation, you see GPU memory keeps growing. This is due to we generate timestamp query for every frame, but don't calculate the GPU time at the end of run. We accumulate all these queries over the entire test run. Even though this is technically not a leak, it does grow monotonically while test is running. This CL calls computeGPUTime every 16 frames (steps) and changed the mTimestampQueries to a queue structure and clean up the completed query as GPU time is computed. Bug: angleproject:7243 Change-Id: I283ee24c4835fe0fb4d15f8d1975c85b64e16443 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609011 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov 6930184e 2022-04-27T10:34:28 Log runTests so that it shows up in logcat dumps. 04-27 14:41:32.303 11507 11538 I NativeTest: runTests: --list-tests 04-27 14:41:32.321 11507 11538 I NativeTest: runTests finished ... 04-27 14:41:34.742 11585 11615 I NativeTest: runTests: --gtest_filter=TracePerfTest.Run/native_trex_200 --verbose --calibration-time 2 --calibration --warmup-loops 2 --isolated-script-test-output=/sdcard/Download/temp_file-cbce720a15e62e25 04-27 14:41:56.628 11585 11615 I NativeTest: runTests finished Bug: angleproject:7242 Change-Id: I5c03501982d6b268c0dd83d71ce82080fb3c551a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611063 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeff Vigil 95c1ff52 2022-02-24T08:31:52 EGL: Fix EGL_KHR_mutable_render_buffer Fixes for eglSurfaceAttrib error cases. Improve query for render buffer Add test case to EGLSurfaceTest Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest Bug: angleproject:7134 Change-Id: I4fa568c9530312003dc17111be212bf5b66d97fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556088 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 0c59b5d9 2022-04-26T19:20:49 Log debuggerd $PID output when instrumentation gets stuck. Bug: angleproject:7242 Change-Id: I2b12e94177bce65acf68e4420fd1fcabffdb993e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3607499 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu fe2c82ad 2022-04-26T12:39:44 check integer overflow in Texture copyImage The code that checks forceCopySubImage could run into integer overflow error for these values: sourceArea.x + sourceArea.width sourceArea.y + sourceArea.height With gn arg is_ubsan=true, these two equations lead to crash. Add the code to check integer overflow Bug: chromium:1314268 Bug: angleproject:5246 Change-Id: I6dee98457a44797ffb806ef8bd05f052c9aaa733 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597713 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov cdcf1715 2022-04-26T14:48:10 Add missing result_skip and result_fail. Missing result_skip results in tests missing from json.output in perf CI builders. Not sure if the missing result_fail actually happens. Bug: angleproject:6854 Change-Id: I0d70a93be0d595c45e23558345481e749ba128bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov d0c8363e 2022-04-26T11:51:47 Dump logcat if instrumentation doesn't finish in 10 minutes. Let's see if this helps us understand stuckness as described in https://anglebug.com/6854#c46 Normally each instrumentation call takes way less than 10 minutes as we run tests individually or in small batches. When stuck, runner times out after 20 minutes. Bug: angleproject:6854 Change-Id: I20074db0fb3e783555a530b9ecef3765f1911fd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605763 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Roman Lavrov ebfb9b9f 2022-04-26T10:37:52 Configure logging in perf and gold tests to include time. Currently no timestamp is logged: [I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd} INFO:root:adb --version ... Before switching to android_helper relative timestamps in seconds were printed, set up by catapult. Timestamps proposed in this CL are more consistent with outer logging but keep prefix short. Example: [I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd} I18:45:14.999999Z adb --version ... Bug: angleproject:6854 Change-Id: I8ef7c9ae44eb5dba564a41456ce9417e3fe0f06c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606913 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi fc828287 2022-04-24T00:12:11 Tests for Nvidia/Vulkan bugs with tessellation control Bug: angleproject:7236 Change-Id: I9fec5ef0fe03e1bb5e11067d6d3cf2e7c0b560fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3604077 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4aae5815 2022-04-22T13:21:03 Vulkan: Overlay widgets for submission statistics Bug: angleproject:7084 Change-Id: I68e69bda43862f9f2711c25a28dbe4745c19a45c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602832 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 02b96848 2022-04-21T16:32:31 Vulkan: Add support for GL_QCOM_shading_rate Layer GL_QCOM_shading_rate over VK_KHR_fragment_shading_rate Test: ShadingRateQcomTest* Bug: angleproject:7172 Change-Id: I3f040dbfad3906facd4349937fed2ce9a464b824 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599874 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov c0ac374f 2022-04-25T14:06:58 Replace `adb exec-out cat` with pull to temp location. Flaked here: https://chromium-swarm.appspot.com/task?id=5a7a6cbff20e8510 File "/b/swarming/w/ir/src/tests/py_utils/android_helper.py", line 86, in _ReadDeviceFile assert len(out) == expected_size, 'exec-out mismatch' AssertionError: exec-out mismatch Bug: angleproject:6854 Change-Id: I846474cb64c436a67bbc559839d41967108be8c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606328 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya ea76cb0f 2022-04-21T15:52:39 Vulkan: Add entry points for GL_QCOM_shading_rate Bug: angleproject:7172 Change-Id: I837d2697d95c44f47a2fab7411cfd87a4ec65e90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599873 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov d1788614 2022-04-22T15:52:16 Use adb instead of catapult to run perf tests on Android. Add support for replacing flags: --isolated-script-test-output --isolated-script-test-perf-output --render-test-output-dir Always set --isolated-script-test-output to check for test failures using num_failures_by_type, interrupted, is_unexpected fields. Bug: angleproject:6854 Change-Id: Ia701f4d4d5d1adc9a24c057bb5c58fd5457cbd65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602834 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop e0183a42 2022-04-25T09:07:55 Revert "Mark contexts as shared when importing EGL images." This reverts commit e18240d136d15e5cdfa4fa4a6355ca21c8d807b6. Reason for revert: Applications not responding in AOSP: https://buganizer.corp.google.com/issues/229807074 Original change's description: > Mark contexts as shared when importing EGL images. > > Once a context references an EGL image, it can share resources with > contexts in other share groups. Marking the context as shared ensures > that locks are held by all contexts referencing EGL images for GL > functions. > > Bug: angleproject:6957 > Change-Id: Ic3901c458f388306c59f6bb01560a7c66d0574c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424659 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: mohan maiya <m.maiya@samsung.com> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Test: CtsWindowManagerDeviceTestCases Bug: b/229807074 Change-Id: I5b7050bd68f67925f77242e483e2aa970ed0ca17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602954 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Shahbaz Youssefi 400d9fe4 2022-04-23T01:08:19 Rename feature files to *_autogen.h To clarify further that they are not to be edited by hand. Bug: angleproject:6435 Change-Id: Iaf79706d2b688a43b3ebb65700cfbdd71a49a742 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603842 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
SeongHwan Park a8cac005 2022-04-25T16:27:33 Remove observer when element array buffer is detached Fix an issue where the observer is not removed when the element array buffer is detached from the vertex array. This fixes use-after-free vulnerability. Bug: angleproject:7237 Change-Id: I7cf30322740edffccdba89d40c0d02cd351dad78 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603007 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 2db718ed 2022-04-21T23:13:02 Vulkan: Skip empty submissions A number of places in ANGLE perform an implicit flush; eglSwapBuffers(), glFenceSync() etc. Sometimes these flushes are unnecessary because there is nothing to submit. Additionally, an application may unnecessarily issue glFlush() with nothing recorded. In this change, empty command buffers are automatically not submitted, optimizing these unnecessary flushes away. Bug: angleproject:7084 Change-Id: Iecb865b6b9ef8045dfecda7b5221874f7031b42e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600837 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott ad93a708 2022-04-22T13:03:25 Further expand Vulkan end2end_test skip This test also fails in other contexts: https://chromium-review.googlesource.com/c/angle/angle/+/3600154 Bug: angleproject:7204 Change-Id: Ic7f051c8072f916083772afcc34147405cd1fe50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602945 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Roman Lavrov e6fc5e62 2022-04-22T12:45:33 Use _FindAdb (cached) directly instead of Adb wrapper. A little simpler, no need to pass around an additional `apk` arg. Also fix missed _GetAdbRoot() call. Bug: angleproject:6854 Change-Id: Id64e5f35fb21a6aef7d99e614dc0eae753c24317 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600912 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 4ac3ec13 2022-04-22T12:15:51 Switch py_utils import to pathlib. os.stat path before adding just to catch future copy-paste mistakes. Bug: angleproject:6854 Change-Id: If58c46f99aca93e6aeda90a987ceebbbb1b66955 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600911 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 3b38b379 2022-04-20T10:44:24 Vulkan: Add feature avoid HOST_VISIBLE and DEVICE_LOCAL combination Discrete GPUs device local memory usually is not CPU accessible. This adds a feature flag to control that. Fixed bug in BufferVk that when mapRangeImpl is called from angle internal, unmapImpl was using front end mapping parameters that is incorrect. We have to cache the mapping parameters in the backend to hangle the mapRangeImpl/unmapImpl calls from internal. Fixed the test bug in ComputeShaderTest.BufferImageBufferMapWrite that we are calling glMapBufferRange with GL_MAP_READ_BIT but are actually writing to the map pointer. This should result in undefined behavior per spec. Fixed the test bug in GLSLTest.* that VerifyBuffer calls glMapBufferRange, but was giving incorrect length which result in data only been partially copied. This bug was hidden due to previously all buffers are CPU accessible and there is no copy needed. Fixed the test bug in ReadPixelsPBOTest.* and ReadPixelsPBONVTest.* that calls glMapBufferRangeEXT, but was giving incorrect length which result in data only been partially copied. This bug was hidden due to previously all buffers are CPU accessible and there is no copy needed. Added new skipped syncval messages. Because this CL triggers a copyToBuffer call for some of the buffers and that changes the syncval message signature for the same reasons (i.e, feedback loop or synval does not know the exact range of buffer been used for vertex buffers etc). Bug: angleproject:7047 Change-Id: I28c96ae0f23db8e5b51af8259e5b97e12e8b91f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597711 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov d988db39 2022-04-22T11:14:44 Fall back to adb on PATH if platform-tools not present. Log adb --version. Example: INFO:root:adb --version: Android Debug Bridge version 1.0.41 Version 31.0.3-7562133 Installed as /{snip}/third_party/android_sdk/public/platform-tools/adb When not found -> "Installed as /usr/bin/adb" Bug: angleproject:6854 Change-Id: I3c19c4eda2211480f2c93b7d14f72f5641b3bfc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602821 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill 768c7d47 2022-04-21T16:55:05 Revert "Re-land: "Vulkan: Support Wayland"" This reverts commit f6cdd02fb4bceb4072430e3dbcb1e945809471e0. Reason for revert: Still warns about extra dependency on wayland. https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/990820/overview Original change's description: > Re-land: "Vulkan: Support Wayland" > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. An EGL wayland > test is added for testing rendering and buffers swapping. > > Re-land fixes link failure in systems with no libwayland installed. > > Bug: angleproject:6902 > Change-Id: I706af14620d6298275009f5caf93b0e60339219b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765 > Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902 Change-Id: I11b1fe473fceb2fddb85bd562b769d18426ce07b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600378 Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 47b9a97b 2022-04-21T13:43:53 Expand Vulkan end2end_test skip. This test also fails in ES2. Bug: angleproject:7204 Change-Id: I7ccf1f3d53c565b6005cd9aa8be0679d42ec6f7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599596 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Guoxing Wu 13784ebe 2022-04-21T10:38:23 Vulkan: use "undefined" for layerProvokingVertex Use "undefined" for layerProvokingVertex because different platforms has different behavior on this. APP would have to set gl_Layer identically. Bug: angleproject:7185 Change-Id: Ia5c31f617c2441c1a6ac8d682c9ce98f464045e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3592274 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 1d67951e 2022-04-20T15:58:35 Avoid IOError in capture_replay_tests.py On macOS, psutil iterator may return a zombie process that causes IOError when accessing its name. Bug: angleproject:6102 Change-Id: I44692982c8dd78b4c5153077b5d7dccc7f87883a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3596040 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Steven Noonan dd493b5c 2022-04-11T17:49:36 EGL: allow eglQueryString(EGL_NO_DISPLAY, EGL_VERSION) According to the EGL 1.5 specification, this should be okay: If dpy is EGL_NO_DISPLAY, then the EGL_VERSION string describes the supported client version. If dpy is a valid, initialized display, then the EGL_VERSION string describes the supported EGL version for dpy. Bug: angleproject:7194 Change-Id: I0d851742695293d553465175ce4b59ce7f5d5336 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583143 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Steven Noonan <steven@valvesoftware.com> Auto-Submit: Steven Noonan <steven@valvesoftware.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 6cbedc98 2022-04-20T00:03:05 Add a test for backwards mip generation with draw A test similar to mipmap generation with draw (mip0->mip1->etc) where a small mip is upscaled to lower mips with draw (mip2->mip1->mip0). Bug: angleproject:6977 Bug: b/229764351 Change-Id: Iff29f0e02af085c817c41f713644238edfcb22e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3594803 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 5097d10c 2022-04-20T17:15:51 D3D: unsuppress some now-passing tests. Change-Id: I59efec02edddd876e962512c2690563b6efd18d2 Bug: angleproject:1951, angleproject:1442 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3598015 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi cb1ee485 2022-04-08T12:58:12 Vulkan: Add perf test for MSAA swapchain resolve * Added a perf test for the swap time of the MSAA swapchain resolve * Average wall time results on Pixel 6: ~ 296992 ns using the subpass ~3163355 ns with the subpass disabled * Average wall time results on Pixel 6 Pro: ~ 225089 ns using the subpass ~2975449 ns with the subpass disabled Bug: angleproject:6762 Change-Id: I95f8c4350c5da136afd7f1b28b8c00d6707574ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3586181 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 19c6a856 2022-04-15T17:39:14 Tests: Add Free Fire Max trace Test: angle_perftests --gtest_filter="*free_fire_max*" Bug: angleproject:7212 Change-Id: I326f998a537435da1a8a02badc66d2aa8c5bdebf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3588961 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 7c091cb3 2022-04-19T21:12:35 Use adb directly (instead of catapult) in gold tests. Android detected by angle_perftests apk presence relative to pwd. All of the restricted_traces/*/*.json files are copied but those are small. Only the necessary .angledata.gz files are copied. angle_system_info_test is also handled via adb. Bug: angleproject:6854 Change-Id: I7a89ff57fcdd8ce5dc63a5e3a8f5c0132f766894 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3595241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>