Add a basic readme to help the uninitiated build and run skpbench
Change-Id: Ib276f960f385c88392bca90924a9a42752e585ad Reviewed-on: https://skia-review.googlesource.com/c/skia/+/295603 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Nathaniel Nifong <nifong@google.com>
This commit is contained in:
parent
75626e4b1a
commit
cd0df4f7cd
67
tools/skpbench/README.md
Normal file
67
tools/skpbench/README.md
Normal file
@ -0,0 +1,67 @@
|
||||
# skpbench
|
||||
|
||||
skpbench is a benchmarking tool for replaying skp or mksp files on android devices.
|
||||
it achieves a lower variance in framerate by controlling the clock speed and stopping
|
||||
all other processes that could cause interference.
|
||||
|
||||
## Build
|
||||
|
||||
skpbench consists of the skpbench binary which must be built for the phone you intend to run on,
|
||||
and skpbench.py which runs on the machine the phone is connected to via ADB and is the entry point.
|
||||
|
||||
The to build skia for android are at https://skia.org/user/build#android and reproduced here.
|
||||
|
||||
Download the Android NDK
|
||||
|
||||
```
|
||||
cipd auth-login
|
||||
python2 infra/bots/assets/android_ndk_linux/download.py -t /tmp/ndk
|
||||
|
||||
```
|
||||
|
||||
After this is set up once, build skpbench for your target cpu (assumed to be arm64 here for a Pixel 3)
|
||||
|
||||
```
|
||||
bin/gn gen out/arm64 --args='ndk="/tmp/ndk" target_cpu="arm64" is_debug=false'
|
||||
ninja -C out/arm64 skpbench
|
||||
```
|
||||
|
||||
## Benchmark an SKP on a connected device.
|
||||
|
||||
First, copy the built skpbench binary and an example skp file to the device.
|
||||
|
||||
```
|
||||
adb push out/arm64/skpbench /data/local/tmp
|
||||
adb push /home/nifong/Downloads/foo.skp /data/local/tmp/skps/
|
||||
```
|
||||
|
||||
Run skpbench.py (in my case on a Pixel 3)
|
||||
|
||||
```
|
||||
python tools/skpbench/skpbench.py \
|
||||
--adb \
|
||||
--force \
|
||||
--config gles \
|
||||
/data/local/tmp/skpbench \
|
||||
/data/local/tmp/skps/foo.skp
|
||||
```
|
||||
|
||||
`--adb` specifies that it should use adb to the only connected device and run skpbench there.
|
||||
`--force` is necessary because we don't yet have a configuration to monitor vitals on the Pixel 3.
|
||||
`--config gles` specifies Open GL ES is the backend GPU config to use.
|
||||
|
||||
Additional documentation of arguments is printed by `python tools/skpbench/skpbench.py --help`
|
||||
|
||||
Output appears in the following format
|
||||
```
|
||||
accum median max min stddev samples sample_ms clock metric config bench
|
||||
0.1834 0.1832 0.1897 0.1707 1.59% 101 50 cpu ms gles foo.skp
|
||||
```
|
||||
|
||||
`accum` is the time taken to draw all frames, divided by the number of frames.
|
||||
`metric` specifies that the unit is ms (milliseconds per frame)
|
||||
|
||||
## Production
|
||||
|
||||
skpbench is run as a tryjob from gerrit, where it uploads the results to perf.skia.org.
|
||||
TODO(nifong, csmartdalton): elaborate on this section.
|
Loading…
Reference in New Issue
Block a user