src/tests/perf_tests


Log

Author Commit Date CI Message
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>
Shahbaz Youssefi 257b9ad9 2020-10-29T12:40:33 Add a perf test for scissored draw calls Bug: angleproject:4988 Change-Id: I59facc66aaa2af216d3a6c6ef1e4efa934a45cb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506779 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 77defeb0 2020-10-27T18:31:53 Add the ability to re-trace existing traces. This new script runs the ANGLE trace tests with capture enabled to generate updated replay cpp files. This allows us to update our traces files to a new file format in one step. Trace metadata (currently only the default FBO format) is preserved between re-traces. Currently only desktop-based retracing is supported. This means a couple traces that require specific extensions don't run on all platforms. Bug: angleproject:5134 Change-Id: I7c923d89e33c18285ab36a7cee91f2fb735758eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488130 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 626a4185 2020-10-27T18:31:52 Trace Tests: Allow runs against SwiftShader. SwiftShader can allow for a platform-indendent replay. This is useful for re-tracing. By default disable the SwiftShader test configs unless we pass in --enable-all-trace-tests. Also disable the mock ICD trace tests by default. Bug: angleproject:5134 Change-Id: Ibf1f3ebd6c17f15123705b7d4d9ddd6308f873f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2502311 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 85782968 2020-10-27T08:16:58 Fix extension requirement for "World of Tanks". GL_EXT_disjoint_timer_query was missing the "GL_". Bug: b/171446929 Change-Id: I6e11f18bfa3da18efc65691a94a6290fbcf16777 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2502309 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 5cbf54da 2020-10-18T10:42:07 Vulkan: Fix exposure requirements for EXT_texture_format_sRGB_override Previously we were not checking for the correct format support to expose this extension. This change fixes that, and disables the extension if we do not support the formats we need for our implementation to function. This also adds an end2end test to check each possible format that can be used with this extension. Update GLES major version to 3 for TextureSampling perf benchmark Bug: angleproject:4561 Change-Id: Ic81bb28f02f9f36e1bc83a8eea376169de9e7735 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Cody Northrop 29ca7186 2020-10-25T11:16:29 Tests: Add Dragon Ball Legends trace TBR: jmadill@chromium.org,courtneygo@google.com Test: angle_perftests --gtest_filter="*dragon_ball_legends*" Bug: b/171652453 Change-Id: I668232f3a1e7ca9663f481fb4246b44fb9333b4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2497104 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 258f17d6 2020-10-23T10:39:25 Tests: Add World of Tanks Blitz trace Test: angle_perftests --gtest_filter="*world_of_tanks_blitz*" Bug: b/171446929 Change-Id: I028bfde50baa583f1ff7bf30ad77fe40026c7ca7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495486 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 8feb5c82 2020-10-20T15:49:13 Tests: Add Marvel Contest of Champions trace Test: angle_perftests --gtest_filter="*marvel_contest_of_champions*" Bug: b/171334313 Change-Id: Ia1195a5647ad2805e3cabd23c15719eb1ebc3534 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2487764 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop d591ddff 2020-10-08T10:36:21 Tests: Add Free Fire trace Test: angle_perftests --gtest_filter="*free_fire*" Bug: b/168049517 Change-Id: Ide772454fe5c602d92bf9c476d33da420b9dfa14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461350 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop 9d160b0b 2020-10-16T08:31:18 Tests: Add Brawl Stars trace Test: angle_perftests --gtest_filter="*brawl_stars*" Bug: b/171043467 Change-Id: Ide04fbbfd69145554c6dbb544d6ee4daa51df9cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481154 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8061002b 2020-10-16T11:24:04 Perf tests: Bump replay ES version to 3.1 Required to run traces of newer apps. Test: LEGO MEC Bug: b/161716126 Bug: angleproject:4048 Change-Id: Ie135fc1ce461460e1bc0978ceca4ba8c9cff68e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481153 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 5eebf3a7 2020-10-18T11:44:27 Perf Tests: Call finish every step in calibration. Calibration is only supposed to take one second of warmup time. Instead we were queuing up a large amount of GPU work and then janking on the finish call at the end of calibration. Fix this by calling glFinish repeatedly during calibration. Bug: chromium:1136900 Change-Id: Idb2fefe17fcb9acbe688cff5a36f051732fc5b59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483462 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51ff0d05 2020-10-16T11:54:04 Trace Tests: Add vsync-limited mode with a GPU timer. Local testing on Linux shows that ANGLE and native have the same wall-time, and ANGLE has a 10 ms vs native 6 ms GPU time. Bug: angleproject:5183 Change-Id: I26da678b984af916bfb40e1db6416f5df4f85c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2480782 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill ecbac31c 2020-10-16T10:36:06 Perf Tests: Add offscreen mode. This lets the trace perf tests run configurable number of frames within a single swap. The offscreen config is similar to how gfxbench works. It renders to a user FBO (by overriding calls to BindFramebuffer) and then composits multiple frames into the real backbuffer. This allows us to get a perf measurement with less overhead from composition and display. Adds emulation for some APIs that operate on Framebuffers like BindFramebuffer, Invalidate, DrawBuffers and ReadBuffer. Bug: angleproject:4845 Change-Id: I1044c1d52c82f1c215a68a6c46d74c52ed0f3d2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300207 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 089eac22 2020-10-11T12:40:07 Perf tests: remove redundant null naming. Bug: None Change-Id: I9e3e0d8b160a438c9001d9dbd4bb067355b9e562 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2475457 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 8af9ef3b 2020-10-06T10:59:07 Add emulated format clear perf test Bug: angleproject:4836 Change-Id: If900d288630ba5fbf82b8b1ce2ccab681cfc50c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451481 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a22a19a4 2020-10-04T13:16:46 Add a --no-finish option to the perf tests. We can use this to re-capture replays. Bug: angleproject:5134 Change-Id: I765e0bbb66cfdd822ffa981f2b5533157d024cac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449161 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 974c2371 2020-10-04T12:22:38 Perf Tests: Run at least 1 step. We could end up in some very slow scenes (e.g. when debugging). This could produce a step count of zero which doesn't make sense. Noticed while capturing the T-Rex replay. Bug: angleproject:5134 Change-Id: Ibf2439961dfb3c01649dcab37acead7b6e2ab345 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449160 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Trevor David Black e815afbf 2020-09-07T22:09:22 First pass at increasing inclusivity Link to the inclusivity rules https://source.android.com/setup/contribute/respectful-code Bug: b/162834212 Bug: chromium:1097198 Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Trevor Black <vantablack@google.com>
Jonah Ryan-Davis eb1df14b 2020-10-01T16:25:33 Suppress MultisampledRenderToTextureBenchmark on Pixel2/GLES This test started failing, but we don't care about performance on GLES so we can suppress it for now. Bug: angleproject:5120 Change-Id: If5eb865956ee5fb6f798d110d42e3493294bc18e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2443590 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 11d94d86 2020-09-23T15:16:19 Integrate Skia Gold with restricted trace tests. The implementation is based heavily on the Chromium Skia Gold Python classes in //build/skia_gold_common . Results will be visible here: https://angle-gold.skia.org/ Currently results are not visible until this CL lands. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I7a5d64fe35583ad7ea6360804a0f6b72cd9f6d8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430179 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f8e5b97e 2020-09-28T23:31:41 Additional perf test cleanup & functionality. Adds several new command line arguments and documents all args in the README. Changes the trace tests to output milliseconds. Bug: b/169600938 Change-Id: Ie8c7840a6a8958951992c806979dde6dc7d8a709 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438194 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 6e36029d 2020-09-28T21:57:08 Disable Mock ICD perf tests on Android. Bug: angleproject:5084 Change-Id: Iafff2adbd8bfc2844c43ca31329f3f8be1250631 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438193 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5ec560fb 2020-09-17T17:18:25 Add restricted trace golden image script test. The script reads the list of tests from the restricted traces JSON and runs angle_perftests once for each test. Running the tests in a batch seems unstable on some platfroms so running each test separately works around that limitation. It does not yet interact with Skia Gold. The Gold integration will come later once this basic skeleton is running on the bots. Also updates the perf tests to exit more quickly with --one-frame-only. This will speed up the screenshots. Example run with trigger.py: https://chromium-swarm.appspot.com/task?id=4ecb985330a33910 Bug: angleproject:4090 Bug: b/168049670 Test: tested with trigger.py Change-Id: I52820dfba2acfbc5d638673c37297877e8476adb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2417641 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 8f7970cb 2020-09-21T18:25:21 Trace/Replay: Reset replay after taking a screenshot. This was causing a replay state tracking error that could fail some traces. For example, Mobile Legends. Bug: angleproject:4090 Bug: b/168049670 Change-Id: Ia4c2db795bb861fba77c9c35217ab22c2004c492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422686 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill bda2205d 2020-09-17T14:37:25 Traces: Move up from tests/perf_tests/ to tests/. The trace tests aren't strictly for performance. Since we'll be using them for correctenss testing as well it makes sense to move them out of the perf_tests/ folder. Also renames RestrictedTraceTests.md to README.md so it'll load automatically in gitiles. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I8be9f1d831489a9abf534d049a93441687850142 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416913 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya c99c22bb 2020-09-15T16:53:26 EGL: Add support for EGL_ANDROID_create_native_client_buffer This EGL extension will add support for creating EGLClientBuffer backed by an Android window buffer (struct ANativeWindowBuffer) which can be later used to create an EGLImage. Bug: angleproject:5018 Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceNativeClientBufferTarget* Change-Id: If78ed7b80ad09629b8c5f5b5a0eb07a548e82e6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404320 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill a2d670c5 2020-08-15T21:13:33 Run trace tests against Vulkan Mock ICD. Required an upstream fix: https://github.com/KhronosGroup/Vulkan-Tools/pull/437 Also a workaround filed as an issue: https://github.com/KhronosGroup/Vulkan-Tools/issues/445 Bug: angleproject:4950 Change-Id: I21333464d2a8e52d5d85d35654f0e6372f9650db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358517 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ba7f8913 2020-09-12T23:23:01 Samples: Enable Debug callback. This moves the debug callback code into a common location. For ease of access it's in shader_utils since that file has access to the GL API. Bug: angleproject:5040 Change-Id: Iab9de47c2d520a5618ea6825852f8afa63565c8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408715 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill bca88739 2020-08-16T11:32:40 Add a perf test that cycles through many VBOs. Stresses the RenderPass buffer tracking in the Vulkan back-end. Bug: angleproject:4950 Change-Id: I33d38d8703d0e333d0092195d34228d90f1af52a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358522 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>