|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|