|
54e8e665
|
2024-11-12T12:53:54
|
|
Trace tests: generate and use trace list according to gn args
Generates out/<config>/gen/trace_list.json which contains
the list of traces included in the build according to the
angle_restricted_traces gn arg (or all traces if not set).
Test runner uses that file instead of the full restricted_traces.json.
Android runner pushes that file to the device to the usual location
(e.g. /sdcard/chroimum_tests_root/gen/trace_list.json)
This also fixes the issue where
`angle_trace_tests --list-tests`
lists all traces, not just those that were selected with the gn arg.
Similarly, running all traces without a filter would be limited to
the same list.
This transitively applies to trace bundles.
Bug: b/376923930
Change-Id: I63506a074d766a51b860472f7211842f8a080ecd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6011956
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e19377af
|
2024-08-21T14:52:09
|
|
Tests: Support multiple users on Android
On most Android platforms, the userId is '0' and many of our defaults
just work. But on some, the default is non-zero, and that complicates
things.
To support this, we have to specify which user is correct, which can
be determined with:
adb shell am get-current-user
Update everywhere we were using sdcard directly and use:
Before: /sdcard
After: /storage/emulated/<userId>
Incorporate the userId to find the application's home directory:
Before: /data/data/com.android.angle.test
After: /data/user/<userId>/com.android.angle.test
This CL:
- Starts using a user flag in our Android scripts
- Updates where tests look for test data and binaries
- Updates where scripts use temp and external storage
- Updates script to not use sdcard at all when root
- Disables run-as when user is not default
Bug: b/361388557
Change-Id: I0fb556ecb2d0f6bc6569a858c290b127217d4638
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5825122
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
2dc45de8
|
2024-03-15T11:11:10
|
|
Trace tests: check and log zlib crc32 on decompress failure
crc32 of the entire output is part of the failing check
Also log crc32 of truncated data that only uses SIMD instructions
Bug: b/296921272
Change-Id: I03490ea37680f3bcbec4b31befb510a0e3d73bce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5366298
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b5d92511
|
2024-03-14T19:16:15
|
|
Trace tests: log z_stream on decompress failure
Bug: b/296921272
Change-Id: Iecf0be35d8bbf029271b505b52fea0bc730a4751
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370264
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
c9c7c4d7
|
2024-03-11T12:17:11
|
|
Trace tests: save debug files when gz decompression fails
Input and output bytes saved to CAS outputs,
for futher manual inspection
Bug: b/296921272
Change-Id: I57c88090bdb41bf9ef48466f38c7da90572ce467
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5361574
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
298abbc1
|
2024-02-16T08:50:43
|
|
Roll Chromium from 29bec8631d2f to 9d4a35b46e1e (1220 revisions)
Amend the roll with http://crrev.com/c/5301614 courtesy agrieve@.
https://chromium.googlesource.com/chromium/src.git/+log/29bec8631d2f..9d4a35b46e1e
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC angle-team@google.com,geofflang@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/2cece96e17..a11ae4664a
* buildtools/linux64: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
* buildtools/mac: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
* buildtools/win: git_revision:a2e2717ea670249a34b0de4b3e54f268d320bdfa..git_revision:8b973aa51d02aa1ab327100007d4070c24b862b0
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/c37870b5fd..5e8f58ef80
* third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/d353dfb095..984707e65c
* third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f39e9d8c1a..ad0b8e7a0e
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/51589f432d..3d6c15240b
* third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a5a09d23fa..b1b1a43f07
* third_party/fuchsia-sdk/sdk: version:18.20240207.3.1..version:18.20240215.1.1
* third_party/r8: tp4vVuXzmyHJxDFlwxDb7RYZLLEufc3EnGTyOTCTNkgC..f7pPpoVTaC3WoBY5dURVrI-N1_4YZpSYipdiDUeWDAEC
* third_party/siso: git_revision:3cd0e6e55246b8eca6646e33b124e54e67fc5660..git_revision:4bede4f49669d3a8bdaa8dbd01620c3a07ae0c4e
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/894ad691c6..47756615f5
No update to Clang.
Bug: angleproject:6081, chromium:324916799
Change-Id: Ib097e6dca9374111632838beab4f0224ff6196fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5302166
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b581a6ce
|
2023-11-07T10:45:39
|
|
Traces: workaround sporadic uncompress failures
Usually succeeding uncompress retry:
https://issuetracker.google.com/296921272#comment26
Move uncompressed data to mBinaryData and keep going. Unknown if the
test would succeed or crash later on, would be interesting to see.
Bug: b/296921272
Change-Id: If4f158305cef49208f39164ee3865e5fdccd39ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
21ea0a3c
|
2023-10-13T11:33:31
|
|
Add gzip tests when hitting a decompression error
Might give some hints about what got broken
Bug: angleproject:8307
Change-Id: I0a5aa05ed0e876ea060c1b8db6e61a79cbf9c4f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4937222
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
55054e76
|
2023-09-01T11:35:36
|
|
Traces: temporary patch to log zlib message on failure
Bug: b/296921272
Change-Id: I0111889dba2f57650caf26a0b86a6669b231f956
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4833616
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
2ef238bc
|
2023-09-01T13:01:23
|
|
Revert "Traces: add temporary debug info to LoadBinaryData"
This reverts commit 0d701c81d01e18ae5741e9e8843441f24697f04f.
Reason for revert: CRC is ok: http://b/296921272#comment3
Original change's description:
> Traces: add temporary debug info to LoadBinaryData
>
> Unable to repro the bug by triggering tasks on swarming, hopefully this
> eventually catches something.
>
> Bug: angleproject:8307
> Change-Id: I34dd0c8a9e82e54f3a07e2d7a249ddfaa543bae7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4794110
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Roman Lavrov <romanl@google.com>
Bug: angleproject:8307
Change-Id: I0f04baf5241e99d7c2514bcdc583e58e2fd51535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4834063
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
99e3e652
|
2023-08-18T18:02:42
|
|
Traces: LoadBinaryData verifies that all data was read
Bug: angleproject:8307
Change-Id: I4ae30b45a94e69ff2baa76b1b7d735a076c6611b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4794111
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
0d701c81
|
2023-08-18T17:46:27
|
|
Traces: add temporary debug info to LoadBinaryData
Unable to repro the bug by triggering tasks on swarming, hopefully this
eventually catches something.
Bug: angleproject:8307
Change-Id: I34dd0c8a9e82e54f3a07e2d7a249ddfaa543bae7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4794110
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: 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>
|
|
52152933
|
2023-06-06T15:36:36
|
|
Add trace_interface: functions and callbacks for traces
Defines the interface between the test suite
(or an other TraceLibrary class user) and trace libraries.
TraceFunctions defines entry points for calls suite->trace, such as
SetupReplay() or SetBinaryDataDir().
TraceCallbacks defines entry points for calls trace->suite, for example
for loading .angledata.gz files.
These are set up via the exported SetupEntryPoints() call. Functions
like SetupReplay etc no longer need to be exported from the trace
library.
TraceInfo (parsed representation of the trace json) is moved to
trace_interface as is. This is convenient for further changes to the
fixture that will allow to easily move some of the captured parameters
to json.
This also moves Decompress functionality (and memory ownership) to test
suite entirely, which avoids Decompress/Delete callbacks - the trace
just calls LoadBinaryData via TraceCallbacks and TraceLibrary releases
the memory either on FinishReplay or in its destructor.
This should also take care of the memory leak described in
https://crrev.com/c/3858185
Bug: b/286072760
Change-Id: Ibc6f6f64156ad805b1917c8fc41a3b0d2c0d6375
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594445
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8be67007
|
2023-05-01T13:32:56
|
|
Capture/Replay: make failure to load a trace lib more clear
Before this CL, the logs would point to inability to find
SetTraceInfo, which is misleading as the actual issue is that the
library wasn't loaded in the first place.
Error handling is a bit obscure due to mTraceLibrary being set to a
non-null object wrapping a null library so we have to check if
getNative() is null. `loadError.empty()` can't be used to check this
because it's getting set in case of success as well ¯\_(ツ)_/¯
Bug: b/276742336
Change-Id: I90f2184c35461c16d04d6bef6d921706c010fefd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492532
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@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>
|
|
2c7f31af
|
2023-04-13T11:47:34
|
|
Trace Interpreter: Move to a shared library.
Based on https://crrev.com/c/4178024 but does only one thing:
makes trace interpreter a shared library (as if it was a compiled trace)
I am not sure what impact this actually has on the TracePerfTest
callbacks (mentioned in the CL above) as I see onEglMakeCurrent callback
getting called without this CL as well. Anyways, this makes things a bit
more consistent.
* Gets rid of TraceReplayInterface
* TraceInterpreter is now an implementation detail
* Need to additionally pass list of trace files to TraceLibrary
(new SetTraceInfo replay export)
* GetResourceIDMapValue is just moved as is to the right lib
Bug: b/276742336
Change-Id: I67ea9fbcb4f7db999ab71c8443ea91c5631df942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4423869
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b0739436
|
2023-02-13T14:28:17
|
|
Traces: Add key frame support
Allow specifying a key frame in the trace JSON, i.e:
"KeyFrames": [ 20 ],
This allows our infra to use a frame other than 1 when
taking screenshots for quality comparison.
Adds new flag `--run-to-key-frame`, which will stop the
trace once key frame has been reached. If no key frame in
JSON, frame 1 will be used.
Note the name in JSON is plural, but we only support one
key frame for now. Multiple key frame support can come
in the future.
This CL also updates the code to allow ending traces
early with `--max-steps-performed` which has been broken
since http://crrev/c/4008998
It also removes `--one-frame-only` which is superseded by
`--run-to-key-frame`, and can be replicated using
`--max-steps-performed 1`.
Test: angle_trace_tests --gtest_filter="*tmnt_shredders_revenge*"
Bug: angleproject:8035
Bug: b/270426257
Change-Id: Ib02ef60d887ae5efb0288f5a9b8c2914dafc6efc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4284637
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5ca36d3c
|
2023-01-05T15:16:35
|
|
Trace Interpreter: Properly support resource ID maps.
Previously we were using the key value as the resource value.
In some cases these values would become mismatched when running
a replay, which would cause interpreter errors.
Bug: angleproject:7887
Change-Id: I7f8e687986e8282a6df066bdae5ace07e4510b47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4140258
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5e78ab4
|
2022-12-29T13:16:13
|
|
Trace Interpreter: Auto-gen ReplayCustomFunctionCall.
This makes it easier to add or remove fixture functions.
Bug: angleproject:7775
Change-Id: I1c56465cfa0580414715f562cadc916c4baf3d11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4128718
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.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>
|
|
dc62b3ee
|
2022-10-10T21:00:16
|
|
Capture/Replay: Add trace interpreter.
Also adds a self-test using the retrace script.
Bug: angleproject:7752
Change-Id: I1985b47250bef99726d2ca2d90bef859208e357e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965128
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6193274a
|
2022-10-10T21:00:12
|
|
Capture/Replay: Redesign in-memory call capture replay.
This will allow the replay to use the call captures returned
by the interpreter's parser.
Bug: angleproject:7752
Change-Id: If1b281d9ce7ccfbdc23bea615e1e2258c8a029f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963367
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
153d8db9
|
2022-06-06T13:49:40
|
|
Turn missing {trace_name}.json trace files into test failures.
Before this change, a missing or broken trace json file results in all
trace tests "disappear" from the list with only ERR in logs. After this
change, a missing or broken trace json will result in that specific test
FAIL status and error in logs.
Note that this also allows for inconsistency between
restricted_traces.json and trace json files on the device because we're
no longer requiring for trace json to be loaded unless the test is
actually being run.
Bug: angleproject:7410
Change-Id: I07532dc0bf85a0d2fcaf425ce8d4a589473a898d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690734
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
85de4f81
|
2021-12-29T13:06:27
|
|
Capture/Replay: Fix TODO in test utils.
This code is no longer needed.
Bug: angleproject:5133
Change-Id: I06f05b390f36c9d49deaabe8201764968ef3172c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360782
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8770cefc
|
2021-10-04T13:47:23
|
|
Capture/Replay: Store enums to JSON as hex
We're storing some enums in the per-trace JSON as decimal.
This makes them difficult to read, i.e.:
"DisplayDeviceType": 12810,
"DisplayPlatformType": 13392,
"DrawSurfaceColorSpace": 12425,
If we instead convert them to hex, they are much easier to
read and grep the source for.
"DisplayDeviceType": "0x320A",
"DisplayPlatformType": "0x3450",
"DrawSurfaceColorSpace": "0x3089",
Since JSON doesn't actually support hexadecimal values, this CL
stores them as strings.
Ideally we could take this a step farther and store the enum
directly in JSON, but we have no facilities for converting
a string back to an enum.
Bug: angleproject:5133
Bug: angleproject:6515
Change-Id: I7b5d4dc8958d43c611da1fe98887e089f3d855b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204135
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2f3e4db8
|
2021-09-02T10:31:13
|
|
Capture/Replay: Serialize trace metadata to a JSON file.
This will allow us to remove more code auto-generation for the trace
tests. The trace info now can be loaded directly from JSON instead of
from the autogenerated information.
Bug: angleproject:5133
Change-Id: I04e22b9279b19282df274bc8defcd363d0449111
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140218
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|