|
c4a82aaa
|
2020-08-17T11:16:22
|
|
Tests: Add COD:Mobile trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*cod_mobile*
Bug: b/164426913
Bug: angleproject:4048
Change-Id: I306714632b635c728fa212ed793f076c6b889227
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360047
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1780609d
|
2020-08-03T17:01:21
|
|
Trace Tests: Disable timestamp queries.
This framebuffer changing timing code adds overhead so it should stay
disabled unless turned on explicitly.
This was causing a performance regression in the native benchmark for
some trace tests like egypt.
Bug: angleproject:4845
Change-Id: I51c77d544cae063ba185aa4f20d028d9ffa7a2ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2335021
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2d0265fa
|
2020-08-02T12:01:46
|
|
Trace Tests: Scale results based on frames in capture.
This now reports averaged time per frame instead of per "step".
Scores in general will be divided by 11. Results still reported
in nanoseconds.
Bug: angleproject:4920
Change-Id: I6f9dca75885cce358c3c7d1e871441969d8aa3d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2334095
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bd7cef28
|
2020-07-31T11:18:27
|
|
Trace Tests: Fix Win/x86 crash.
A missing KHRONOS_APIENTRY annotation was causing a crash due to
stack corruption in Win/x86 only.
Bug: angleproject:4845
Bug: chromium:1111764
Change-Id: I60b30ce8bc409c71d223eaedd74dc0c1ae034f7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2331739
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f3a38d97
|
2020-07-23T19:00:34
|
|
Add a custom trace tests loader.
This custom loader will disambiguate the trace tests gl layer
from the util GL/EGL loader.
Bug: angleproject:4845
Change-Id: I5e8340eb50f736d931302f71f15f556fd9e52081
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315627
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
|
|
52d25633
|
2020-07-27T17:37:46
|
|
Disable GPU time tracking in trace tests.
Adds considerable overhead to wall time on Adreno. Not tested on
other platforms.
Bug: angleproject:4879
Change-Id: Ib219f14162fb5768e484f717ed2a870478bd1c86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321404
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9faf0cdc
|
2020-07-20T10:30:55
|
|
Capture/Replay: Use custom GL header.
This will let us override the util loader for all new traces. It will
also be easier to maintain going forward if we have to change the
header again.
The end goal is to run the trace tests with a custom GL layer that can
intercept certain API calls.
Bug: angleproject:4845
Change-Id: I028a1afdadf638998805d7b9a2cc6717cf5f0148
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2308029
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4fa75b5c
|
2020-07-17T12:58:50
|
|
Move restricted trace functions to cpp file.
This is a refactoring change only. It will facilitate moving these
functions to a shared library. A shared library will allow us to more
easily override GL functions with an interception layer. The intercept
layer will allow us to do emulation for features like offscreen tests.
Bug: angleproject:4845
Change-Id: I0e00c0c22a26f1bb8faec30a825c71953033f8a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2305039
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6fe87f4a
|
2020-07-10T09:13:39
|
|
Tests: Change screen orientation for traces on Android
This CL adds a reverse JNI call to our Android Native Activity that
sets the orientation of the screen based on width and height.
To achieve this we:
* Attach to the java thread once at the beginning to grab JNI env.
* Detach from the thread once when platform sends APP_CMD_DESTROY
* Set the orientation during test init
Bug: angleproject:4327
Change-Id: Ifbe31a6a84dd60a0dfe7d7032962c99b290d8b81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289054
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
bdf91e5f
|
2020-06-29T13:47:13
|
|
Refactor frame_capture_utils.h to frame_capture_test_utils.h
frame_capture_utils.h is only used in tests so changing the name to be
frame_capture_test_utils.h is more appropriate. Also
frame_capture_utils.h will now be a file in libANGLE_with_capture
library where serialization code is stored.
Bug: angleproject:4806
Change-Id: I7482693a75b2d0edda7e84ae9b777fd3f46f1855
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2273917
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c028fc73
|
2020-06-19T09:06:03
|
|
Tests: Update traces to include draw surface width/height
The traces now contain the original resolution they ran with,
so we can set that based on testID.
This fixes correctness problems on Android, where only a fraction
of the screen could be seen during replay.
Bug: b/159238311
Test: angle_perftests --gtest_filter="*Trace*"
Change-Id: I47b92ee31681998260bad059cde0856a25ae0fc6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250863
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
aad69df9
|
2020-06-11T13:27:52
|
|
Run TracePerfTests in WGL configs.
Uses the "native" naming pattern.
Bug: angleproject:4728
Change-Id: I28cafcdb8c5c1fb48bba51adeca641e88bfe3446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241619
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4360c6b9
|
2020-06-04T16:58:16
|
|
Perf: Ensure last frame is replayed for traces
This is now required for upcoming buffer mapping resets.
Test: Angry Birds 2 MEC
Bug: b/157672184
Change-Id: I6358acf42ca9b92bfff621f12f207be7c3655e52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231801
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
6de7ee52
|
2020-05-25T17:00:01
|
|
Clean up overlay RenderPass count reporting.
This fixes the trace perf test to accurately report how many
RPs in each frame. Instead of counting the RPs on a flush we now
count only on a swap call. This won't work for offscreen surfaces
which is fine - the overlay doesn't really have the same use for
offscreen rendering. Also ignores the first frame in graph data so
we can ignore the first setup frame in the trace tests.
Also skips the redundant extra "flush" call that would generate an
empty space in the RP graph.
Gives a cleaner measurement for optimizing the XFB RP count.
Bug: angleproject:4622
Change-Id: I5762c500cdb216700247095984ae62b4f8741602
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2215309
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3a909841
|
2020-05-12T14:19:06
|
|
Perf: Add Reset call to trace tests
The traces are already updated to contain the Reset calls, now
actually call them from TracePerfTests.
Test: angle_perftests --gtest_filter="*Trace*"
Bug: b/152512564
Bug: angleproject:4599
Change-Id: I18b6726bc98b96f132c3245c51420cbfed1b84d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197284
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
5b35c7f6
|
2020-05-07T13:40:55
|
|
Fix up screenshot saving for trace tests.
Now works when run in a sequence. Also saves RGB images to avoid
issues with the alpha being inconsistent and also flips images
vertically to fix the rendering.
Bug: angleproject:4615
Change-Id: I8d3b38c5d914e0ca2227320ac42a0e28acd12c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2187971
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
bcd2c592
|
2020-05-06T15:49:41
|
|
Revert "Capture/Replay: Update traces to include Reset"
This reverts commit 968bb06d94369b782eacb9b7c6a3f1f2171b5f85.
Reason for revert: Broke angle_perftests on the P2 bots:
https://ci.chromium.org/p/chromium/builders/ci/Android%20FYI%2064%20Perf%20(Pixel%202)/30223
Original change's description:
> Capture/Replay: Update traces to include Reset
>
> Now that our traces can reset state back to how it started with MEC:
>
> * Update the code generation to include that call.
> * Update existing traces to include that call.
> * Add a capture of Temple Run.
>
> Test: angle_perftests.exe --gtest_filter="Trace*"
> Bug: b/152512564
> Bug: angleproject:3662
> Bug: angleproject:4599
> Change-Id: I4062271b75b5c6fc9122b301d1af443d79770edc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182911
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
TBR=cnorthrop@google.com,courtneygo@google.com,jmadill@chromium.org
Change-Id: Icea86c2fbfbabe4a1e7738954cecc176b5574a16
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/152512564, angleproject:3662, angleproject:4599
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184705
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
968bb06d
|
2020-05-05T12:38:40
|
|
Capture/Replay: Update traces to include Reset
Now that our traces can reset state back to how it started with MEC:
* Update the code generation to include that call.
* Update existing traces to include that call.
* Add a capture of Temple Run.
Test: angle_perftests.exe --gtest_filter="Trace*"
Bug: b/152512564
Bug: angleproject:3662
Bug: angleproject:4599
Change-Id: I4062271b75b5c6fc9122b301d1af443d79770edc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182911
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
930b2641
|
2020-03-23T14:47:03
|
|
Allow tests to run on native EGL.
Adds support for Linux and Android native EGL testing.
This can be useful for doing performance comparisons of ANGLE vs
a native GL driver. Only enabled for the trace perf tests due to
limitations in the test harness.
Bug: angleproject:4596
Change-Id: Iba6d3ccd7c1275cf095893fab824a0ea33dc3a79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2116254
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
92b3a720
|
2020-04-27T15:52:56
|
|
Capture/Replay: Generate code integration.
This sources the trace list from a json file and uses that to make the
"glue" that works with each individual trace test.
Bug: angleproject:4590
Change-Id: I40808cbd0e00f9ed01f93c4cfbd678401db3fec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168539
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1e81dd4a
|
2020-04-01T17:46:58
|
|
Suppress failures after Win Intel driver upgrade.
Bug: angleproject:4533
Change-Id: I482c4caa79fb5fdc9cd4a068f7e7e05890121fa2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2130227
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b69c4e14
|
2020-03-24T15:02:06
|
|
Capture/Replay: Update CaptureReplay sample for compression
* Move DecompressBinaryData to a shared helper
* Start using it in CaptureReplay sample
* Error out if decompress callback isn't set correctly
Test: AngryBirds and CandyCrush captures replay on desktop
Test: angle_perftests --gtest_filter="*Trace*"
Bug: angleproject:4484
Change-Id: I0432004fdb0cfb0fd61f9a66f792591c9aa40d9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2118790
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
78c77361
|
2020-03-20T13:50:24
|
|
Perf: Add a single Manhattan trace
Now that TRex is up and working and Manhattan runs cleanly:
* Add a single compressed Manhattan trace.
* Allow errors from tests to fail the test
* Restore the working directory between each trace test
Test: angle_perftest --gtest_filter=TracePerfTest*
Bug: b:151349786
Bug: angleproject:3630
Bug: angleproject:4496
Change-Id: I9e9d9342efb23431380f484befb9a19915c4bd0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2113230
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a4337121
|
2020-03-19T15:31:00
|
|
Perf: Limit TracePerfTest to single compressed TRex
Update the TRex trace to:
* Incorporate recent fixes for compressed textures
* Incorporate support for compressing the trace
* Simplify the tag on the trace (drop the end frame)
Update TracePerfTest to:
* Temporarily support only a single trace (TRex200).
Test: angle_perftests --gtest_filter="*Trace*"
Bug: angleproject:4484
Bug: angleproject:4488
Bug: angleproject:4496
Change-Id: Ice0c4ee9de3ad9ae4596305a93c51c6eac842123
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112629
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7e453a25
|
2020-03-15T22:11:03
|
|
Capture/Replay: Use zlib to compress data files.
Gives about a 2-3x reduced data file size. Should help reduce the time
we spent transferring trace files on Android.
This feature is implemented as a parameter to the capture/replay tool.
This keeps backwards compatiblity if we ever need to integrate a cpp
replay into an environment that doesn't have access to zlib for
decompression.
We'll need to update the traces to take advantage of the compression.
Bug: angleproject:4484
Change-Id: Id7994efe3c0d529b85fa7e7f1b00444e630dd2cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104555
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a8631f68
|
2020-03-15T20:38:20
|
|
Fix running trace tests in non-standard directories.
The change to make the trace tests load the data files using a relative
path only worked when running the tests from the "standard" out path.
By setting the CWD to the executable dir in test setup we are able to
run the tests from any local dir when testing.
Also cleans up some repeated code in the test init switch statement.
Bug: angleproject:3630
Change-Id: I8e9e5e6e1e9cd31c5b3c7b2f52420d0ba75cf76b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104548
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
391f38c9
|
2020-03-05T12:18:34
|
|
Capture/Replay: Add Manhattan to TracePerfTest
This CL also adds the ability for a perf test to
elect to ignore GL errors during replay. Otherwise,
errors will cause the test to fail. We have known
failures with Manhattan that don't affect replay.
Test: angle_perftests.exe --gtest_filter="*Trace*"
Bug: angleproject:4091
Change-Id: I36268a9f80754f338e52208273e889d2404b7eed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2090663
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9acaf662
|
2020-02-28T14:58:17
|
|
Add timer query support to TracePerfTests.
This can allow us to get some profiling measurements on ANGLE vs a
native driver. We correlate host times with GL times using the blocking
timestamp query. We also time RenderPasses/FBO switches using the
trace instrumentation we added in an earlier patch combined with timer
queries.
Not currently instrumented for the current tests. We'll need to re-run
capture to get the callbacks working correctly.
Bug: angleproject:4433
Change-Id: I8f61774a3a090ac9460a378d34715a72954d1331
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080597
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
39087f4a
|
2020-02-16T11:53:23
|
|
Refactor DrawCallPerf test parameters.
Use the new combiners functions added in an earlier CL. Makes it easy
to maintain bigger lists of test combinations.
Also a few other changes:
- removes some D3D9 perf testing since we don't maintain this config
- removes the "validation only" tests. these were mostly redundant
- makes the tests permutation combinations more consistent
Bug: angleproject:3630
Change-Id: I175d887a01b21123f83f9fa4f64dacaa2644147a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2059468
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
49010904
|
2020-02-15T12:21:17
|
|
Refactor test parameters to TracePerfTest.
Reduces much of the code duplication by adding some new helper methods.
The helpers allow combining test parameters similarly to how the
GoogleTest Combine() and Values() generators work. They are more
general and work by returning collections of test parameters instead
of combining generator functions.
Also updates the GLMark2 benchmark runner to use the new methods.
Bug: angleproject:3630
Change-Id: Ibc10f9afb401e119d67a7119974a1a8d9b5abb60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057353
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
080d711b
|
2020-01-08T13:04:44
|
|
Tests: Add a perf test using traces
This test will load traces and cycle through a set of frames.
The new tests are:
TracePerfTest.Run/gl_trex_200_210
TracePerfTest.Run/gl_trex_800_810
TracePerfTest.Run/gl_trex_900_910
TracePerfTest.Run/gl_trex_1300_1310
To download the traces, you must be granted access and authenticate
with the cloud. See the steps in RestrictedTraces.md for this.
Then add the following to the end of your .gclient file:
"custom_vars": {
"checkout_angle_internal":"True"
},
And run `glcient runhooks`.
To enable building the test, add the following GN arg:
build_angle_trace_perf_tests = true
See the new markdown document for ways to execute the tests.
Bug: angleproject:3630
Change-Id: Ic25cd94fb36b35fcf187e88d3bf9548c65f59755
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949605
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|