src/tests/perf_tests


Log

Author Commit Date CI Message
Jamie Madill 61517a16 2021-08-02T16:49:32 Remove extra angle:: uses from ANGLEPestTest.cpp. Bug: None Change-Id: I7101398504c547b97b9184c56b252bef5198cecb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067510 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2b86e2d6 2021-07-19T10:30:57 GN: Update dcheck/assert conditions. In preparation for a Chromium change that makes dchecks enabled by default in Release builds, we'll keep ASSERT disabled in Release by default. We add a new flag 'angle_assert_always_on' for controlling ANGLE ASSERT behaviour. Also slightly refactors the direct SPIR-V generation GN. Chromium CL: https://crrev.com/c/2893204 Bug: chromium:1225701 Change-Id: I01a6def28d7c21e771e9800889a6b9c274972de2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035447 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Dirk Pranke <dpranke@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 48da1c35 2021-07-16T13:24:34 Vulkan: Prefer the local vulkan loader over the system one. Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to volk. This allows us to always prefer loading from the current module directory instead of using the platform-specific ordering. Refactor angle::Library loading to use ModuleDir instead of ApplicationDir. CL originally authored by Geoff Lang. Bug: chromium:1219969 Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 634d156f 2021-07-08T12:42:21 TracePerfTests: Add ScreenShotFrame option Allows the user to specify a frame to capture instead of defaulting to the first one. Usage: --screenshot-frame <frame> Bug: angleproject:4615 Change-Id: I000ee17aa9b3019188816aa6203f3266b39155b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016356 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill dc2d76cd 2021-07-08T10:04:15 Trace Tests: Clean up mock ICD skip condition. Bug: angleproject:6090 Change-Id: I943eb35da56a24c5a2c9961eb458b9b6e27ea83a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015515 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51937ab3 2021-06-25T09:10:42 Re-land "Add SearchType to OpenSharedLibraryWithExtension." This fixes a bug in SystemInfo_vulkan where we were using the System search path for the Vulkan loader when we prefer using the custom ANGLE loader. Re-land fixes a bug where we would try to load the custom libVulkan on Android and other platforms where we should be using the system version. Bug: chromium:1219969 Change-Id: I34b592fb87cbddfd02c837a17942cac54c85d9d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007265 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov f8d5d5ed 2021-07-05T21:11:23 Revert "Add SearchType to OpenSharedLibraryWithExtension." This reverts commit 18e99f4a2b37468b103da4a56c5b0fff25458062. Reason for revert: breaks Mac, e.g. https://ci.chromium.org/ui/p/chromium/builders/ci/mac-arm64-rel-tests/2197/overview Original change's description: > Add SearchType to OpenSharedLibraryWithExtension. > > This fixes a bug in SystemInfo_vulkan where we were using the > System search path for the Vulkan loader when we prefer using the > custom ANGLE loader. > > Bug: chromium:1219969 > Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: chromium:1219969, chromium:1225040, chromium:1226675 Change-Id: I7a7e329181b69b0fb546e5245d8842723077126f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3006320 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Peter Kasting 1bffabe8 2021-06-29T18:13:39 Fix -Wunreachable-code-aggressive. Bug: chromium:1066980 Change-Id: I1fa08a40dbf223d60a10681af33ca8a29b12bf8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2991094 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 69c2d820 2021-06-29T11:58:41 Perf Tests: Register trace tests programatically. Using testing::RegisterTests lets us filter out the disabled configs. This helps sharding the tests because some shards were getting a very uneven distribution of real tests vs skipped tests. A couple shards were running 20 minutes, while most were about 6 minutes. More work might be needed to even that out. Bug: angleproject:6090 Change-Id: Ibdf35677cfea86dfc374a2b18bb57cd9f289ddee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2994726 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5f869b74 2021-06-28T18:02:42 Revert "Vulkan: Load custom Vk Loader." This reverts commit e6e99c5472d2fe9beaa12840fa4a71191667b9a4. Reason for revert: Seems to be flaking on linux-clang-rel: https://ci.chromium.org/ui/p/angle/builders/try/linux-clang-rel/22602/overview Original change's description: > Vulkan: Load custom Vk Loader. > > Uses a GN copy rule to duplicate the loader. Also updates volk to > load using the new custom loader. Once both are in place we can > go back and remove the copy. > > Bug: chromium:1219969 > Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1219969 Change-Id: Ib29014e728c1ce63c5e5bf7136ce19de7692964d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987874 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e6e99c54 2021-06-23T08:25:58 Vulkan: Load custom Vk Loader. Uses a GN copy rule to duplicate the loader. Also updates volk to load using the new custom loader. Once both are in place we can go back and remove the copy. Bug: chromium:1219969 Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 18e99f4a 2021-06-25T09:10:42 Add SearchType to OpenSharedLibraryWithExtension. This fixes a bug in SystemInfo_vulkan where we were using the System search path for the Vulkan loader when we prefer using the custom ANGLE loader. Bug: chromium:1219969 Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 72d2bd0c 2021-06-21T09:59:21 Allow capturing process stdout and stderr interleaved The test utils are enhanced to allow redirecting stderr to stdout. This is in preparation for a change that makes the test runner capture stderr together with stdout. Currently, on failure logs originating from UNIMPLEMENTED() and other such macros are not captured. Bug: angleproject:6077 Change-Id: I7a3c6c4732a59dac3ff0cc20a7835d5ed6f0f22e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976183 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 7231c705 2021-06-07T14:03:45 Tests: Skip genshin_impact on Intel Linux Bug: angleproject:6029 Change-Id: I2f25dcedf36d9f341d134baeb9752fb3e3aada6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944621 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9193a909 2021-05-26T15:07:54 Tests: Add Genshin Impact trace Test: angle_perftests --gtest_filter="*genshin_impact*" Bug: b/181794064 Bug: angleproject:6023 Bug: angleproject:6024 Change-Id: Ic0debb1e284d672b8ab179ac24cd711c9e5d7e9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921069 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 3c1b02b5 2021-06-01T16:22:47 Tests: Turn lineage_m on for Nvidia Linux The test is no longer failing. Test: angle_perftests --gtest_filter="*lineage_m*" Bug: angleproject:5748 Change-Id: Ic25471c1628d99b6e305c6b4ce6fa4b1e3558514 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930820 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 1e832ad6 2021-06-01T13:47:53 Tests: Require cube_map_array for cookie_run_kingdom Tbr: jmadill@google.com Bug: angleproject:6018 Change-Id: Ie27b82b4716aaf5164c65e890cd2d6fad3f2b836 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930817 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop eeeeed39 2021-05-31T20:48:29 Tests: Add Cookie Run: Kingdom trace Test: angle_perftests --gtest_filter="*cookie_run_kingdom*" Tbr: jmadill@google.com,timvp@google.com Bug: b/189788024 Bug: angleproject:6017 Change-Id: I5cd9912d099d1749b5677cf43e25fe73ee38d17c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927509 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill fad9053f 2021-05-20T15:52:38 infra: Add isolated script tests to Pixel 4. This includes angle_perftests and angle_restricted_trace_gold_tests. Bug: angleproject:5941 Change-Id: I6f24d2c2752086ae6f7abba26880070c4a4f0472 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911034 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 0a086375 2021-05-20T13:13:49 Tests: Skip pokemon_go on Intel Windows Vulkan Timing out periodically. See the bug for examples. Bug: angleproject:5994 Change-Id: I717e6c66746a611bb7996c838fa0575b5210aae4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909759 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3b97452a 2021-05-18T09:29:29 Tests: Skip pokemon_go on Intel Linux Vulkan Crashing on teardown. Bug: angleproject:5989 Change-Id: Ie5560f4e1dee310f5f08a7bca83a0506c20f6920 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904126 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 848d8ddc 2021-05-13T15:52:14 Tests: Add Pokemon Go trace Test: angle_perftest --gtest_filter="*pokemon_go*" Tbr: jmadill@chromium.org,timvp@google.com Bug: b/188091629 Bug: angleproject:5968 Change-Id: I3f48957a3063fbe5a443c235b6cabf87319b17c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895329 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 6f35e366 2021-05-12T18:10:20 TracePerfTests: Don't call framebuffer functions on GLES1. Skip unbinding the framebuffer on GLES1, where the function does not exist. This caused a crash when recording screenshots on native GLES1 implementations on Android. Bug: angleproject:5961 Change-Id: I7a35474154a4a8d56b36df02629944de7660dcd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891567 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 8af704bd 2021-05-11T11:27:17 Tests: Add Summoners War trace. Skip the trace on Windows/Intel since it produces GL_INVALID_ENUM. Test: angle_perftests --gtest_filter="*summoners_war*" Bug: b/181870341 Bug: angleproject:5943 Change-Id: I99b551294eeb267311728fd6f566cd549f97e90d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2887285 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Cody Northrop 913bc473 2021-05-07T11:37:01 Tests: Add --fixed-test-time option Similar to --max-steps-performed, don't do any calibration and just run flat out for a fixed amount of time. Also rename --test-time to --max-trial-time to reflect what the parameter actually does, limiting each trial to a ceiling. Also remove a redundant check in doRunLoop. Test: angle_perftests --fixed-test-time 20 Test: angle_perftests --max-trial-time 2 Bug: angleproject:5935 Change-Id: I854799a734cd6c019399f5a1444b4ef5f659ddf4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2878937 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki c0d42fd9 2021-05-06T14:44:24 TracePerfTest: Delete offscreen objects only when initialized. Delete Textures, Renderbuffers and Framebuffers that were created in the SurfaceType::Offscreen case, when they were initialized. This caused a crash when replaying traces using GLES 1 contexts on native GLES Android implementations. Bug: angleproject:5932 Change-Id: Ice4bcec620a6c3530044986ce39230b030a901ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2877234 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao fdb376ea 2021-05-03T14:58:09 Vulkan: minimize-gpu-work: Skip blit from offscreen fbo Since we only care about driver state tracking logic, blit is unrelated here. This further reduce the noise of test result. Instead of blit and swap every N frame, we will issue glFlush for offscreen rendering. The onscreen will still issue swap every frame. Bug: b/186881553 Change-Id: Id048eaafa6dcef26d851fd19f069331d240e1bf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846527 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 3fc83291 2021-04-29T19:03:27 Vulkan: offscreen perftests: use two FBOs and call glFlush every frame For offscreen variant of perf tests, we blit from offscreen to onscreen for every frame and then every N frames we call swap. Right now we never call glFlush. This causes test accumulate many frames rendering without a flush, which changes the behavior. For example, gfxbench does issue glFlush for every frame. This CL adds glFlush call for every frame when swap is not called. Also ARM native GLES driver and ANGLE skip glFlush call if it is issued within the same FBO. For some traces that does not use any FBO, there is no frame boundary for drivers to detect, versus for onscreen there is actual frame boundary. To solve this mismatch problem, this CL also uses two offscreen FBOs and ping pong between them so that it will still have the frame boundary but not goes to screen. This allows drivers that try to detect frame boundary still function properly. Bug: b/184766477 Change-Id: I23edda66fdf391930afd3f6b1d955b41ec6ad019 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861844 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao a766ab14 2021-04-20T09:29:29 Vulkan: minimize-gpu-work: Use 1x1 offscreen When minimize-gpu-work is requested, the idea is to have GPU work reduced to minimum. Without shrink the offscreen window to 1x1, the driver load/store op may still have to load entire surface which could be costly. This CL reduces the offscreen surface size to 1x1 when --minimize-gpu-work is specified. Bug: b/184766477 Change-Id: Ic8d9d4c2fe8295a0a5808dcee35120fdd20e0f56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2840963 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 939dc8d9 2021-04-21T18:33:00 Vulkan: minimize-gpu-work: Skip synchronization for glMapBufferRange glMapBufferRange call requires CPU and GPU synchronization. Different drivers implement this differently. Some may choose to keep multiple copies of data to reduce the synchronization overhead while others may choose to wait for GPU access to finish to save memory. While this behavior is important, it should be looked under the scope of overall game performance and we can write a standalone test for this. When --minimize-gpu-work is specified, we mainly care about CPU overhead of driver logic of state tracking. For this purpose, we should get this out of picture in order to expose the true picture of what we intended to see. This CL always adds GL_MAP_UNSYNCHRONIZED_BIT to the access bit to avoid driver to do synchronization or make COW. Bug: b/184766477 Change-Id: I36228a4ed9913e26aa9ad4e8446fb42ee0182c18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2847101 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 7b77dc5b 2021-04-22T09:58:33 Vulkan: minimize-gpu-work: Skip data copy when possible When --minimize-gpu-work is specified while replaying app traces, the goal is to avoid any GPU work when possible and focus on driver cpu logic overhead. Data copy can be lengthy and each driver optimize it differently for some real world usage scenario. This should be looked along with normal app trace playback performance. When --minimize-gpu-work is specified, we want to leave this out of picture. Previously I have fixed TexImage2D by overwriting pixel pointer with null. But there is a hole here when PBO is used. This CL fix the case that when data is sourced from PBO, we ensure to skip data copy as well. This CL also noops TexSubImage call instead of doing 1x1 copy. Again depends on driver implementation, some may use CPU others use GPU which will have different overhead. We can easily write a test to cover these performance optimizations. By skipping the subImage call here we will have less noise to deal with for CPU overhead investigation. Bug: b/184766477 Change-Id: I84a5d26d2f25f8f0a6c5c9da72737906d6356a53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2847100 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 1800d1d9 2021-04-22T12:09:31 Tests: Add Ludo King trace Test: angle_perftests --gtest_filter="*ludo_king*" Tbr: jmadill@google.com,timvp@google.com Bug: b/186121782 Bug: angleproject:5888 Change-Id: I41cd5924c109e4d9448227c535a9fb92a5b52cb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2845374 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 6d8e2f87 2021-04-17T02:03:03 Suppress fifa mobile on intel/windows Flakily renders black. Bug: angleproject:5875 Change-Id: I16805278e00d431bf81e531d5b0b17868ee8f476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2833011 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop da0a1ee9 2021-04-16T22:55:00 Tests: Add 3DMark Slingshot Test 2 trace This trace is ES 3.0 based and shader heavy. Test: angle_perftests --gtest_filter="*slingshot_test2*" Tbr: jmadill@google.com,timvp@google.com Bug: b/185595371 Bug: angleproject:5877 Change-Id: I3d66a5f818b33581b4237e8a9efc56af5666d98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2832657 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop fc136cf8 2021-04-15T18:06:31 Tests: Add 3DMark Slingshot Test 1 trace This trace is ES 3.0 based and geometry heavy. Test: angle_perftests --gtest_filter="*slingshot_test1*" Tbr: jmadill@google.com,timvp@google.com Bug: b/185595371 Bug: angleproject:5877 Change-Id: I8528d399fedbe6ea3a07297a869f33de4605c946 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2832672 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c782ef19 2021-04-15T10:08:34 Skip TracePerfTest.Run/*_idle_heroes on Pixel 2 The test crashes both with the native and Vulkan drivers. Bug: angleproject:5867 Change-Id: I6fe3acd7050b0cb2d6f735de684b897aca0a6bb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826402 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 5902753b 2021-04-09T15:40:53 Skip TracePerfTest.Run/native_real_gangster_crime on Linux AMD Bug: angleproject:5822 Change-Id: Id4dc458dc71fcd20f8982052fa789fb04e420c8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818241 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao 4340fcfa 2021-04-02T13:59:17 Vulkan: Add command option to run app traces with minimum GPU work This CL interposes the draw call API entries. If enabled by command line option "--minimize-gpu-work", it will override all draw calls to render a single GL_POINT instead. It forces view port and scissor size to 1x1. It forces all data copy to 1 texel or 1 byte. It ignores glGenerateMipmap call. The goal is to make the frame time reflect the driver CPU performance as much as possible so that we can use it to compare ANGLE vs native GLES on the driver overhead, as well as identifying CPU hot spot. Bug: b/184766477 Change-Id: Ie8b5b585e0ed55320fed7863da37cce419acc65f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802858 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop c2075d81 2021-04-08T13:10:29 Tests: Add Call Break: Offline Card Game trace Test: angle_perftests --gtest_filter="*call_break_offline_card_game*" Tbr: jmadill@google.com,timvp@google.com Bug: b/184866238 Bug: angleproject:5837 Change-Id: I39035e62559d6a28fd1ae62ee6ffe6323d94931f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815780 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki b604f843 2021-04-07T17:30:17 Tests: Add Professional Baseball Spirits trace. Skip the test on Vulkan+AMD+Linux, as it produces OpenGL errors on Mesa/RADV. Also skip the test on Vulkan+Intel+Linux, as it requires a Mesa version of 20.3.5 or higher to work. Test: angle_perftests --gtest_filter="*professional_baseball_spirits*" Bug: b/181870336 Bug: angleproject:5827 Change-Id: Ic9c5e3767cb6cf7e925cfbcd2ae5dda0d736b87c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810788 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Jamie Madill 68f06888 2021-03-23T16:38:50 Perf Tests: Trigger test failure on API errors. A prior refactor had broken the method we used to cause test steps to fail on API errors. This CL restores the path. We detected this when analyzing a particular GLES trace that contained invalid GLES calls. Bug: angleproject:5788 Change-Id: I26940e49cf73ce6050ea6ee274d5c5748835a167 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2782008 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b4cb63a5 2021-04-06T19:22:32 Handle trace prerequisites. real_gangster_crime: external images avakin_life: external images hill_climb_racing: skip on Adreno Bug: angleproject:5822 Bug: angleproject:5823 Change-Id: I7c6a27eab72ba69464748928c93dda57fa8094f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809653 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 78dde332 2021-03-29T17:31:52 Move restricted traces to CIPD. All traces are now stored as DEPS entries in CIPD. The auto-generation script generates the DEPS entries. Note that we don't include DEPS in the list of generated outputs to simplify other rollers. Also we update auto-generation to include full sources list to allow 'gn analyze' to work successfully. Usees a trace fixture for common code. This will enable a more compact trace without as much repeated code. We must land a set of re-trace traces to avoid breakage. Also includes a python script for uploading new traces to CIPD. The script first checks if traces are already present in the cloud, and if so it skips the upload. It will take a while to complete as the number of traces grows larger as it takes a few seconds per trace. The traces in this patch are also re-traced to use the common fixture code instead of including duplicated code in each trace. They now form a simple common interface and the autogenerated cpp is now simply a list of properties. I've also updated the capture/replay tests to use the simpler common entry point integration. There is less auto-generated glue code now. We now use a new serialized string query extension instead of calling directly into ANGLE's internals. Also includes a docs update. The capture/replay sample is broken and we'll need to update it in a follow-up CL. Also includes a few necessary fixes to the retracing script. Bug: angleproject:5811 Change-Id: I977bc6dc56843c8966377fc445ae97e91e17319a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797833 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 7a699140 2021-03-30T08:49:41 Tests: Add Dragon Raja trace Bug: b/184105957 Bug: angleproject:5807 Change-Id: I2a6d20a872311fb8b2c601c9a796b4f582ba5144 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796403 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 811568a9 2021-04-01T21:29:17 Tests: Add Aztec Ruins trace Test: angle_perftests --gtest_filter="*aztec_ruins*" Tbr: jmadill@google.com,timvp@google.com Bug: b/160808198 Bug: angleproject:5553 Change-Id: I24e3ae44698c5347fa5b9412d6a3ab16fb4f5c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634206 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 2a0f4251 2021-04-01T15:12:55 Tests: Add League of Legends: Wild Rift trace Test: angle_perftests --gtest_filter=*league_of_legends_wild_rift* Tbr: jmadill@google.com,timvp@google.com Bug: b/184290779 Bug: angleproject:5813 Bug: angleproject:5815 Change-Id: I0e3754c88ded31234658af373449e4a90a51c2a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800426 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 259ead0d 2021-03-30T19:41:33 Enable messenger_lite trace on SwiftShader. For re-tracing. Bug: angleproject:5811 Change-Id: I1b58b33e0641cbd6a6aba10f936b76b5a9eca589 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797831 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 48560f67 2021-03-19T16:56:44 Tests: Add Real Cricket 20 trace Test: angle_perftests --gtest_filter="*real_cricket_20*" Bug: b/183165790 Bug: angleproject:5777 Change-Id: I1f350e3ea458a599396412e2c5ca80d6c7887d73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776554 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 02acc5ee 2021-03-18T16:08:59 Vulkan: More cleanups to perf counters. This refactors the pipeline type in the ContextVk class to also use a packed enum map. It also expands the object perf counters to store both a specific and cumulative version for use in different cases. Bug: angleproject:5736 Change-Id: I6ff78e38065eb577f2b95b1d9c4f9cc31d7f325f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774184 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 9b3b5733 2021-03-17T15:38:42 Tests: Add Ragnarok M: Eternal Love trace Test: angle_perftests --gtest_filter="*ragnarok_m_eternal_love*" TBR: timvp@google.com,jmadill@google.com Bug: b/181800519 Bug: angleproject:5772 Change-Id: I1dcde486e909f7c2b5d59132e5f673c7e8ab1d01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774264 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop f6eccc20 2021-03-12T09:17:27 Tests: Add June's Journey trace Test: angle_perftests --gtest_filter="*junes_journey*" TBR: jmadill@google.com,timvp@google.com Bug: b/182566407 Bug: angleproject:5752 Change-Id: I083507949c9bc16bf701028a678540df9a3531dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2755840 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peng Huang c99e405c 2021-03-12T12:39:27 Disable timestamp queries for some GPUs on Android Copy some workaround from chromium. Bug: chromium:702980,chromium:477514,chromium:462553,chromium:1178333 Change-Id: I9acb6ef49c91193a9e6bb03c6fc5eabf336cba9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2756728 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Tim Van Patten 687d3153 2021-03-15T16:55:26 Skip plants_vs_zombies_2 on Windows+AMD Step "angle_restricted_trace_gold_tests on ATI GPU on Windows on Windows-10" failing on builder "Win10 FYI x64 Release (AMD RX 5500 XT)" Bug: chromium:1187752 Change-Id: Ia48dd06c3e3aca66ff3194fc945e3c235fde85df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2762645 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop d98e436a 2021-03-11T13:32:07 Tests: Add Lineage M trace Test: angle_perftests --gtest_filter="*lineage_m*" TBR: jmadill@google.com,timvp@google.com Bug: b/182491024 Bug: angleproject:5748 Change-Id: I901b68eef1ddac98ce6e1a4640e2b034d1027a45 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752894 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 14152cf4 2021-03-09T11:53:41 Tests: Add Extreme Car Driving Simulator trace Test: angle_perftests --gtest_filter="*extreme_car_driving_simulator*" TBR: jmadill@google.com, timvp@google.com Bug: b/180419767 Bug: angleproject:5735 Change-Id: I5c197a71354a0cb3b907718b7ae7161037f7266f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743806 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov a1f86b4d 2021-03-05T16:55:47 Skip vulkan_car_parking_multiplayer on Win Intel Internal Vulkan error (-4): The logical or physical device has been lost. Bug: angleproject:5724 Change-Id: I80eb21d087341fac23393d7365bd5ea4c5ac6e05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739387 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya fe2efefa 2021-02-27T08:28:03 Add FramebufferAttachmentPerfTest Two tests are added to measure the overhead involved in the Observer/Subject interface - 1. FramebufferAttachmentBenchmark - stresses repeated attach/detach of observers to subjects. 2. FramebufferAttachmentStateUpdateBenchmark - stresses state updates to subjects and their propagation to observers. Bug: angleproject:5692 Change-Id: I6e573f3a948ef2b20c56091e549eb871051e0103 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2725740 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 71c7e346 2021-03-02T21:52:35 Tests: Add Rope Hero: Vice Town trace Test: angle_perftests --gtest_filter="*rope_hero_vice_town*" TBR: jmadill@google.com,timvp@google.com Bug: b/181727986 Bug: angleproject:5711 Change-Id: I11021ae91f968bd453b98a35c60cab90d71e5ed6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2731288 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 18314bce 2021-03-03T10:28:07 Tests: Skip car_parking_multiplayer on Nvidia The trace doesn't cause any errors, which would have blocked landing it. But it does spew undefined behavior warnings which fills the log. See the bug for details, skipping for now. Test: angle_perftests --gtest_filter="*car_parking_multiplayer*" Bug: angleproject:5613 Change-Id: I54bf63eeb7c5212b6ce40cf2b45354822e8456e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2733089 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 87b1875c 2021-03-01T19:17:35 Tests: Add Among Us trace Test: angle_perftests --gtest_filter="*among_us*" TBR: jmadill@google.com,timvp@google.com Bug: b/181616715 Bug: angleproject:5698 Change-Id: If52ee0e989c6b4a3c21b4a2bc0b77dbbea2a3d6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2728564 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3e017cfe 2021-02-26T15:37:41 Tests: Use context version from trace Test: Capture and replay ES 3.2 apps Bug: angleproject:5652 Change-Id: Ib46250acd8a50390f0cbd40853623cdf31bd0203 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2698392 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Yuly Novikov 5b82fa2e 2021-02-28T11:11:34 Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Win AMD GTest complains that we don't run some tests on D3D/Vulkan backends. They only run on GL backend, which is disabled on Win AMD per http://anglebug.com/5123 Bug: chromium:1183147 Change-Id: I95fdd9a24aff69aa60e2f60613d8300ae1019a27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2726576 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov d3cde02d 2021-02-24T16:50:35 Cleanup EGLMakeCurrentPerfTest instantiation Bug: angleproject:2735, chromium:1180570 Change-Id: Iddf97121c36a0e27bda5676212690574efe8a83d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2716613 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov c03a4235 2021-02-20T16:14:37 Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Nexus 5X GTest complains that we don't run some tests on GLES backend. Bug: chromium:1180570 Change-Id: I9427ac25c3b6f06f3c042caa3c0afc7000cf1599 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2710783 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 4b608a6c 2021-02-17T22:14:18 Tests: Add Messenger Lite trace Test: angle_perftests --gtest_filter="*messenger_lite*" Bug: b/180562361 Bug: angleproject:5659 Bug: angleproject:5663 Change-Id: I9938b925962ea13fd626f2b82676655d07d78c0d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2703733 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Austin Sullivan fd132e4e 2021-02-18T18:21:32 testing: Mark uninstantiated perftests googletest CL 315255779 causes test binaries to fail when they include test suites / parametrized tests that are not instantiated, and when they include empty test suites. This CL uses the GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST() macro to annotate the suites / tests that are causing test failures. This is necessary to get googletest rolled past CL 315255779. Bug: chromium:1163396 Change-Id: I13ffa09c4263a6dc8baf1749c3df5d2c54904e68 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704800 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Corentin Wallez 65f2f302 2021-02-16T12:59:57 Suppress Bus Simulator Indonesia on Linux AMD GLES too. Bug: angleproject:5629 TBR=ynovikov@chromium.org Change-Id: Iafae8a8022b1c3de7b6ff52be9889ba96a1fc865 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697069 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Mohan Maiya 12990d73 2021-02-11T11:37:03 GetBitSet now uses BitSetArray instead of IterableBitSet Remove the now unused IterableBitSet class. Bug: angleproject:3877 Change-Id: I161e5d062c8183e30a7eb9040f3018116fe6e69e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683494 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 60c3f404 2021-02-03T18:12:06 Tests: Add Bus Simulator Indonesia trace Bug: angleproject:5612 Test: angle_perftests --gtest_filter=TracePerfTest.Run/*bus_simulator_indonesia* Change-Id: I067795b237fc32406d63785e347324b423978768 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2674305 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 224e3c14 2021-02-08T13:00:16 Support optimized bitsets that need more than 64bits For usecases that needed more than 64bits we were using std::bitset container. This has slower perf compared to the BitSetT container. Add a new class that can support large bitsets by wrapping an array of BitSet32/BitSet64 objects, depending on CPU bitness, as the container. Bug: angleproject:3877 Tests: angle_unittests.exe --gtest_filter=BitSetArrayTest* angle_white_box_perftests.exe --gtest_filter=BitSetIteratorPerfTest* Change-Id: I3f4a635f9e6974a99db7a4b592ab206aad754760 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2664733 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang ab1f516d 2021-02-05T21:13:25 Skip happy_color trace on Windows AMD Vulkan Bug: angleproject:5623 Change-Id: I75338183c5c1321efd2516ac3a27a83d47c8d29b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2679246 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop d3c00f95 2021-02-05T11:09:27 Tests: Add Rise of Kingdoms trace Test: angle_perftests --gtest_filter="*rise_of_kingdoms*" TBR: jmadill@google.com,timvp@google.com Bug: angleproject:5621 Change-Id: I148d7ae0c23e0ce8ecf75d12affb4c8dfdc04e1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2679221 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 4e8a848d 2021-02-03T14:59:16 Tests: Add Shadow Fight 2 trace TBR: jmadill@google.com,timvp@google.com Test: angle_perftests --gtest_filter="*shadow_fight_2*" Bug: angleproject:5610 Change-Id: I80c6c44e19d77124096ed5970f99fbb6157bf03b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2674482 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 2c685a41 2021-02-03T11:20:20 Fix the perf test runner calibration. This path was broken for the white box unit tests. Also adds argparse handling to the runner so we can more flexibly override command line arguments. Previously the broken calibration was causing some of the tests to run only a single test iteration when measuring. This could lead to low quality measurements. Bug: angleproject:5573 Change-Id: Ic1cb2b2553774a361325f290440c40b2ff90db5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2672702 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 43e39e1e 2021-01-29T13:41:56 Tests: Add Manhattan 3.1 trace Note: This trace is longer than most at 100 frames. This is to help get more accurate data on how transform feedback is behaving. It also allows us the opportunity to trim to smaller sections if we wish, and get more reliable results on unstable systems. Test: angle_perftests --gtest_filter="*manhattan_31*" Bug: angleproject:5589 Bug: angleproject:5591 Change-Id: I76db8a56832d04ea4d335bd81ff98ba1679add5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2659850 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 0d175f30 2021-01-20T16:34:40 Tests: Add eFootball PES 2021 trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*efootball_pes_2021* Bug: angleproject:5564 Bug: angleproject:5517 Change-Id: I9738876b6a6c365984cecce01f2f09e0260b41cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2656989 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Mohan Maiya 74f7be6d 2021-01-28T14:04:47 Vulkan: Rectify typo in EXT_texture_format_sRGB_override The extension string for EXT_texture_format_sRGB_override was missing the "format" substring. Bug: angleproject:4561 Change-Id: I19788191b589b64639b036d2bb54508077fca7e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2658355 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi c38413f8 2021-01-26T15:04:38 Make glmark2 benchmark output parsing more resilient On Linux, the following info messages are being output which are seemingly harmless: INFO: EGL CRITICAL: eglQueryString: display is not initialized. INFO: EGL ERROR: eglGetPlatformDisplayEXT: Bad platform type. These lines are now parsed and forwarded to output. Bug: angleproject:3139 Change-Id: Ia9feb2aef4c1809283588d6e5fc1b6a51ae8812b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2648641 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 3c3b82ab 2021-01-21T20:21:34 Tests: Add Hearthstone trace Test: angle_perftests --gtest_filter="*hearthstone*" Bug: angleproject:5571 Change-Id: Idc6535bbf817cd62d34aa9e684604be068455520 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2644143 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b912eec5 2020-11-27T11:08:41 Vulkan: Support GL_EXT_tessellation_shader. Shader translator changes done in http://crrev.com/c/2633936 Adds a new DIRTY_BIT_PATCH_VERTICES state to Context. Supportes state query and transform feedback. 4 test suppressions remain as follow-up fixes. Adds a new varying packing mode for a simple Vulkan rule set. Based on work by Mohan Maiya (m.maiya@samsung.com). Test: dEQP-GLES31.functional.tessellation.* Bug: angleproject:3572 Change-Id: I4cad2cca30adb754fd12c83027673906541f566a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568234 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop dd6ac664 2021-01-18T16:30:18 Tests: Add Asphalt 8 trace Test: angle_perftests --gtest_filter="*asphalt_8*" Bug: b/150484427 Change-Id: I6a5f1feec61466eae55c1a2464272aba797ed56c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636602 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten ff170c6f 2021-01-12T10:16:43 Tests: Add Real Gangster Crime trace Note: Hand edits required to capture this trace: CaptureMidExecutionSetup(): // Check for supported textures ASSERT(index.getType() == gl::TextureType::_2D || index.getType() == gl::TextureType::_3D || index.getType() == gl::TextureType::_2DArray || index.getType() == gl::TextureType::CubeMap || index.getType() == gl::TextureType::External); <<--- add Test: angle_perftests --gtest_filter=TracePerfTest.Run/*real_gangster_crime* Bug: angleproject:5550 Change-Id: I32391cc8de0b4307334bb873af4f3c5899b584f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2626357 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 861378be 2021-01-12T11:12:56 Tests: Add Magic Tile 3 trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*magic_tiles_3* Bug: angleproject:5540 Change-Id: I6d6f144d4c2a38cfc55724f7e454f756a162d054 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622611 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 6e909d94 2020-12-30T19:40:21 Tests: Add Saint Seiya Awakening: Knights of the Zodiac trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*saint_seiya_awakening* Bug: angleproject:4048 Change-Id: Idf187b9c9298d184f1e0dd13f8a9aa0de7c2beb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2612523 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 7cdda2dc 2021-01-07T16:46:54 Vulkan: Add a perf test for pre-rotation code injection A test is added that dispatches a large number of vertex shaders, generating primitives that are all culled. The vertex shaders are simple so that code injected for pre-rotation would make up the majority of the shader code. Bug: angleproject:5478 Change-Id: I75092cb25e6427449251985f56e54f89813dec32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615821 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 767af74e 2021-01-06T17:30:21 Tests: Add World War Doh trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*world_war_doh* Bug: angleproject:4048 Change-Id: I047ed1ccd06cd3707065fe8afed3ad7af5cd7dcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606645 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 00643e7d 2020-07-22T20:58:49 Use Android API to get storage path. This pipes through to a system call via JNI. This will allow Chromium changes to land that were prevented because ANGLE hard-coded some parts of this path. This in turn will allow us to more easily override these paths for changes needed for Android R support. Bug: chromium:1094062 Change-Id: I20d75b8ee40d418ba5c057f618640ef896248299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315483 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya 46eaba7f 2020-12-12T10:31:26 Vulkan: Add support for internal cache hit and miss counts Add a CacheStats class that provides cache hit and miss bookkeeping. All internal caches make use of this class to keep track of its stats. This provides a means to profile cache hit ratios a.k.a Vulkan object reuse for any application. Bug: angleproject:5447 Test: Manual verification with angle_end2end_tests Change-Id: I44eeb0c2b9b291ec1cdd156fb2be4a5fe80d2848 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580111 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 35df41da 2020-11-23T21:34:13 Skip more tests on Linux AMD RX 5500 XT Remove EGLFeatureControlTest suppression, which crashed due to calling IsVulkan() without an initialized context. angle_perftests: MultisampledRenderToTextureBenchmark.Run/vulkan_multipass_ds angle_white_box_tests: VulkanPerformanceCounterTest.RenderToTextureDepthStencilRenderbufferShouldNotLoad Bug: chromium:1004356, angleproject:5380, chromium:1097750 Change-Id: I38819374242b71fb57c54a9d0fb47b1547dda895 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556445 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 565f1b16 2020-11-18T14:49:52 Tests: Add LEGO Legacy trace Requires GL_EXT_shadow_samplers which is not exposed by Qualcomm's native driver on Pixel 4 XL. Test: angle_perftests --gtest_filter="*lego_legacy*" Bug: b/161716126 Bug: angleproject:5373 Bug: angleproject:5374 Change-Id: Ifff9c5e878b7fe9a3ade684ae5f8e57167f01a25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477441 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill ae5a2047 2020-11-20T16:31:32 Trace Tests: Screenshot within the render loop. Previously we were using a separate mechanism to capture screen shots. This would cause very long traces to replay the entire trace before normal execution. The Maps trace used hundreds of frames and this was timing out the test step. Instead we can capture a screenshot after the first time we run a trace. This will normally not interfere with performance work because we don't usually capture screenshots and do performance work at the same time. Bug: b/172977194 Change-Id: I12cfe2d051d41f1e000a98ac8aef16eb153879c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552925 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 202304e7 2020-11-17T17:33:47 Trace Tests: Add renderer string logging. This outputs the GL_RENDERER string in each test when using the --verbose-logging command-line flag. Bug: b/173518650 Change-Id: Id966294d50aaba0c8a1f3e010f76d5560e6f1288 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2545403 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8b76d37f 2020-11-17T17:33:47 Trace Tests: Run one step per frame. Instead of trying to make one step take one sequence of frames, one run step per frame always. This will scale better for traces that are very long and cannot complete in the short times we use on the bots. Adds an explicit step round-up feature so that we can always run chunks of full trace sequences when we are not running with a fixed maximum number of steps. Bug: b/172977194 Change-Id: I0f069a66a86d8c4a698ebffb66782d13843539a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2545884 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fb34c93d 2020-11-09T19:30:17 Perf Tests: Add mutex around trace events. This prevents a race where two threads try to write events simultaneously. Bug: b/172704839 Change-Id: Idd2f3b1c2a393488ea2270b91d579dc8630e59d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533496 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao b22f8e8e 2020-10-29T15:50:39 Vulkan: Add specialization constants for surface rotation This plumbing through the specialization constant for surface rotation from ContextVk to pipeline program creation. It has not been used yet, so expecting no real functional change. This CL also converts lineRasterEmulation to use the same specialization constant path as surface rotation. Bug: b/171750979 Change-Id: Ic08c4f8bb576424d1752015e874d0977a58d78bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508837 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 489f2c83 2020-11-06T17:24:28 Perf Tests: Trace multiple threads. This uses a little helper list to map thread IDs into simple serials that we output as 'tid' in our trace JSON file. We can use this to analyze the behaviour of the command processor thread. Bug: b/172704839 Change-Id: Ic1b5f3ec8427cb310833d1f589503daec4812681 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2524542 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 06eaaac5 2020-11-06T16:33:13 Fix trace writing in angle_perftests. We can use this to produce AGI-like reports in standalone desktop. Bug: b/172704839 Change-Id: Ifc510232e3da81210e22429b6cea9800e2723e06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2524540 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4323ed0c 2020-11-06T12:45:12 Perf Tests: Fix test time with max steps performed. This lets the default test time be 10 minutes when using a maximum steps value. This will prevent the current 10 second limit from kicking in and aborting. Also changes the --test-time override to be more clearly a calibration time, and adds a new --test-time that lets the user override the actual trial test time. Bug: b/172480147 Change-Id: I630aa8d3c9e118bb5f0100b38f37e717e12f3538 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2523371 Reviewed-by: Paul Thomson <paulthomson@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill af16c638 2020-11-06T09:50:51 Perf Tests: Add --max-steps-performed argument. This will limit the total number of steps run in the test. When using this argument we skip warmp & calibration. Renames the prior --steps argument to --steps-per-trial. Bug: b/172480147 Change-Id: Iae7cce26d66ca0bbdb21c1f511a6bfa246bd204e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519404 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 3e5b6f81 2020-10-31T12:33:28 Enable writing histogram-set-json-format. This uses the protobuf histogram functionality to build up a histogram set. The test suites then output the histograms to JSON. This is only implemented for angle_perftests. Bug: angleproject:5161 Change-Id: Ia5a7868e8d8dcf4f13d83115ae622828c63ef0d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482295 Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>