src/tests/restricted_traces/README.md


Log

Author Commit Date CI Message
Mark Lobodzinski 367541f5 2025-02-05T16:45:13 Capture/Replay: Add multi-capture support to tracer Multiple captures can now be grabbed by setting the trigger value to the desired framecount and then resetting it to zero to trigger a new capture. Captures will be saved in the current capture.out_dir directory and this should be changed between captures to keep traces separate. Note that this feature will not work with apps using persistent coherent memory, and in these cases the tracer will exit, preserving the initial, valid trace. Bug: b/394107532, angleproject:42263521 Change-Id: I9d31d19ec6c3736dbda356405eb91fba2dd5a8d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258503 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alex Dean c0d806b4 2025-02-10T23:01:33 CL: OpenCL support for ANGLE Capture/Replay Implementation of OpenCL Capture/Replay tool in ANGLE. Brief notes about the change: - Most meaningful changes for the capture process are made in src/libANGLE/capture/ - Most meaningful changes for replay are made in util/capture/ and src/tests/perf_tests/ - Many autogenerated files are changed/added to allow the capture of OpenCL objects & calls - The following applications were captured/replayed: benchmark_model, GeekBench Compute, GeekBench ML, AI-Benchmark, various OCL CTS tests - End2end test added to capture_tests. CapturedTestCL.MultiFrameCL/ES3_Vulkan Bug: angleproject:383841335 Change-Id: I55fdaa6cd6c7ba740aaa2351e4d29050059d6d1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102105 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 28fbe4a5 2025-01-15T10:12:05 Docs: Fix CIPD link For whatever reason, markdown wasn't resolving the link. Bug: None Change-Id: I27848b0ddbd579c7faf5832119d6521113dfea13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6172575 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 2c7e9830 2024-11-04T10:05:25 restricted_trace_perf: Setup and wrapper support This CL adds support for installing and setting up traces. Also allows running via the wrapper in http://crrev/c/5985570 With this change, if you run without using the wrapper, you must provide the --build-dir flag. It allows running the script from any directory: --build-dir ../../../out/Android Bug: b/376300037 Change-Id: I2259ee120b2af5e1917a2a57a27fa3dcfca761e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5983806 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 7bb1e0f6 2024-10-29T13:18:49 restricted_trace_perf: Allow use of system ANGLE libs This change allows the perf script to use built in ANGLE libs, including from the system partition, instead of requiring a separate package. By default, the script will now use the ANGLE libs packaged in the test APK (com.android.angle.test). OpenGL/EGL calls will still go though the platform EGL loader, but you no longer need to install a separate ANGLE APK containing libs. To use the system libs, add the following flag: --angle-package system You can use it to point to *any* package that is queryable and contains ANGLE libraries. To get the previous behavior, you'd use: --angle-package org.chromium.angle Also two small unrelated fixes: * Fix typo when clearing shader cache * Broaden the 'MODEL' skip in thermal throttling Bug: b/376300037 Change-Id: I762cfd7516026e903a6a5de2949d50e96e766d48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5976899 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski 0ec8a7f1 2024-09-26T11:06:25 Prevent multiple solutions when retracing with get_min_reqs Skip extensions that implicitly enable other extensions in the retracer script when running to determine minimum requirements. Test: Retrace cod_mobile with get_min_reqs Bug: b/42266279 Change-Id: Iee6f629d1b338362809ff8880d8a5d9ed7c574de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893959 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Bruno BELANYI be78da6e 2024-05-22T15:33:46 FrameCapture: log end of trace capture This makes it easy to spot when the capture is done through logcat. Bug: angleproject:343190307 Change-Id: Idf174cbf256242e32cda3c781c8b1092123254bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5557966 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Bruno BELANYI <ambroisie@google.com>
Roman Lavrov 11eb5eb7 2024-01-30T10:59:45 Traces: support checkout of individual traces Example .gclient to checkout a couple traces only: 'checkout_angle_restricted_trace_antutu_refinery': True, 'checkout_angle_restricted_trace_bubble_shooter': True, To be used in conjuction with gn args, e.g.: angle_restricted_traces=["antutu_refinery", "bubble_shooter"] Note: when need perfetto, we'd also need to add: 'checkout_angle_perfetto': True, because it defaults to checkout_angle_restricted_traces which is not being set to True in this case. Bug: b/322507257 Bug: b/322779830 Change-Id: I404e26919899c8874b570d6ffa80c86fabfd3348 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249196 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 98e351cf 2023-08-16T15:22:37 Traces: Update steps for upgrading traces We've settled on a streamlined method of upgrading traces. We consider the upgraded trace good if: - gets the same pixels for all frames, including after Reset - gets the same frame time and memory usage (or better) This moves away from using serialization, which is useful, but has become too heavyweight. We've preserved the steps as they are still useful in some scenarios. Also formalize a couple of scripts we've been using to compare trace screenshots. It supports two scenarios: - comparing screenshots between ANGLE and native - verifying screenshots after an upgrade Example usages: compare_trace_screenshots.py versus_upgrade \ --before <path> --after <path> --outdir <path> compare_trace_screenshots.py versus_native \ --screenshot-dir /tmp/screenshots --trace-list-path src/tests/restricted_traces Bug: b/294882956 Change-Id: Ifc59d8b31648abb3614da2d8919a1f90a0b6b68f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4791916 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Mark Lobodzinski d85de0e9 2023-08-09T14:15:56 Capture/Replay: Add optional replay of trimmed resources This CL: - Adds '--include-inactive-resources' option to angle_trace_tests - Removes the 'trim-enabled' option - Outputs all previously trimmed shaders/programs to trace file in a new Setup function, SetupReplayContextSharedInactive() which is executed only if the new option is specified - Modifies CaptureTest to add inactive resources, but does not set the include-inactive-resources flag Bug: b/296055694 Change-Id: I33b18d5da727d55c90c2012c2bf64b1413521429 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4781552 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Cody Northrop 1db320c8 2023-08-08T13:31:04 Docs: Update steps for using experimental CIPD Bug: b/294882956 Change-Id: I2bcdd1874cbf44fac939d43cebd19b3e8903927b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4763611 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 10ac4803 2023-05-16T11:49:01 sync_restricted_traces_to_cipd checks for extra files Do not allow files outside of the expected ones (TraceFiles in json) * Ran this check on existing traces: we have a few extra cpp files in goddess_of_victory_nikke, lilys_garden Ask for confirmation before uploading (--upload to bypass) Other cleanup (threading instead of multiprocessing, much less noisy logging etc) Upload is no longer done in parallel. This might mean slower upload of large batches (batch upgrade in experimental?) but would make failures easier to understand. Bug: angleproject:8137 Change-Id: I71530b886541e8b1afe9d436bf300006afb06bd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4538368 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 74d1da6c 2023-05-08T11:07:28 Add instruction for trace tests w/multiple devices * Added instruction on running trace tests when more than one device is available through adb. Bug: None Change-Id: I4522311d4ad3517634f9c34b7af8c546bf4665e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509237 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov 1ad27152 2023-04-18T12:17:00 Switch angle_trace_tests scripts to android_helper out/Android/angle_trace_tests {args} replaces (cd out/Android; python3 ../../src/tests/run_angle_android_test.py {args}) changes this generated file: % grep angle_android_test_runner out/Android/bin/run_angle_trace_tests args = ['@WrappedPath(../../src/tests/angle_android_test_runner.py)', 'gtest', '--output-directory', '@WrappedPath(.)', '--wrapper-script-args', '--runtime-deps-path', '@WrappedPath(gen.runtime/src/tests/angle_trace_tests__test_runner_script.runtime_deps)', '--suite', 'angle_trace_tests'] android_helper.py is already what we use for running traces on bots (we don't invoke out/Android/angle_trace_tests when IsAndroid()) so this change affects only local runs Keep run_angle_android_test.py to be able to run other suites, but now it takes --suite instead of a positional arg (which is consistent with how scripts are invoked on CI) Bug: chromium:1441148 Change-Id: I5af10e8df7d9a651e0a9d52e47e3bce28d7a931b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442006 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop 35461e60 2023-04-12T20:02:08 Android: Build traces outside of APK Our trace list has gotten too large for a single APK (2GB). To continue supporting compiled traces, we can now place the libraries in the test application's home directory, which is discoverable and executable without root. To build and run with all traces, use `angle_trace_perf_tests` as your build target, then use the local Android helper script: $ autoninja -C out/<config> angle_trace_perf_tests $ (cd out/<config>; ../../src/tests/run_angle_android_test.py \ angle_trace_tests --filter='*among_us' \ --verbose --local-output --verbose-logging \ --fixed-test-time-with-warmup 10) To continue using bundled libraries, specify your trace list in GN args using `angle_restricted_traces` and use steps that match other platforms: $ autoninja -C out/<config> angle_trace_tests $ out/Android/angle_trace_tests --gtest_filter='*among_us*' \ --verbose --local-output --verbose-logging \ --fixed-test-time-with-warmup 10 Bug: b/276474703 Change-Id: I3829cf7016e21894eee8890e2b0d527e8214f04e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4420279 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Gert Wollny 0cb6697a 2023-03-09T10:35:04 Capture/restricted_traces: update documentation With the new context handling the trace files are named differently, and the description how to remove secondary contexts also is out of date. Bug: None Change-Id: Ia8258502ef53f9d90b742eff01f8125d816ca74e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4323658 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Sean Risser f3e047b5 2022-10-12T16:28:32 Add new retrace command get_min_reqs `retrace_restricted_traces.py get_min_reqs` finds the minimum required GLES version and extensions and record them to a trace's json file. TracePerfTest has also been modified to use the new "RequiredExtensions" json field to determine if it should run a test or not. This allows several lines to be removed from TracePerfTest's constructor. get_min_reqs uses a divide-and-conquer strategy to find the extensions. This approach should be faster for traces where the number of required extensions is less than 20. This adds a new command to retrace_restricted_traces.py called get_min_reqs. This runs an existing trace multiple times to find what the minimum required GLES version is, then records that version to the trace's json file. Bug: angleproject:7639 Change-Id: I42530e438054efec1ad79ababebe06d221d5c695 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884175 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Sean Risser <srisser@google.com>
Cody Northrop 9d9b8b07 2022-10-24T15:56:42 Docs: Fix up trace replay options The restricted_traces README was missed in prior update. Bug: angleproject:7755 Change-Id: I65380ef902d3b8a39cec16829c3e0e8170e2667b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3975599 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi b2683a3c 2022-06-28T11:30:50 Document angle_restricted_traces Bug: angleproject:7410 Change-Id: Iab02ca68d76fdd1d04804c85f76f5c251905907b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3732229 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 225d8f83 2022-05-04T11:34:56 Tests: Add Mortal Kombat App Trace Test: angle_perftests --gtest_filter="*mortal_kombat*" Bug: angleproject:6997 Bug: b/218515707 Change-Id: Ie1d4ab498239308761aab55a92f1280cb52dd0a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3627126 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Jamie Madill b6399ac9 2021-12-29T13:04:17 Traces: Finish writing restricted trace doc updates. Bug: angleproject:5133 Change-Id: I06e7da7d465cdc98e672bf87f54da2935eac557a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360781 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7fc6c07c 2021-09-29T14:02:29 Capture/Replay: Update process for trace upgrading. Includes changes to the retracing script. Also includes documentation on how the process works. Bug: angleproject:5133 Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e1bc8de3 2021-09-08T07:59:37 Change links from 'master' to 'main' branch. Bug: chromium:1226949 Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill bf6e074f 2021-04-13T13:23:26 Add gclient variable to checkout traces. 'checkout_angle_restricted_traces' controls if we should check out the trace tests. We can give restricted access to partners for these traces. Defaults to the same setting as 'checkout_angle_internal'. Bug: angleproject:5860 Change-Id: I36efffb180b35e11e104e2c99bc89fb4be4e0708 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822232 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 2f22157a 2021-04-05T18:19:51 Fix Restricted Traces README.md jq command The restricted traces README.md has some errors in the shell commands related to using `jq`. Bug: angleproject:5811 Change-Id: Id105d83ee041e236c3b14cd83500f08a1deb56b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2806551 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@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 a833f200 2021-02-23T17:23:31 Docs: Update ANGLE trace creation steps Bug: angleproject:5677 Change-Id: I76ff3991f2124b27cd5c0cd9bad3754ae875cfc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2717102 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Paul Thomson <paulthomson@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: 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>