sf-latency: Write a benchmark for RenderEngine
Bug: 193240340
Test: mmma -j frameworks/native/libs/renderengine/bench/
&& adb push out/.../librenderengine_bench
/data/.../librenderengine_bench
&& adb shell /data/.../librenderengine_bench
Write a benchmark using Google-Benchmark to track the performance of
RenderEngine.
RenderEngineBench.cpp:
- Contains the benchmarks to run.
- Write a helper function that times calls to RenderEngine::drawLayers.
- Write a single benchmark that times drawing a mock homescreen plus a
blur layer, using a blur radius used in practice.
Decode the homescreen into a buffer with CPU support, and then copy it
to one without, which better represents actual use.
- Use RenderEngineType to determine which subclass to benchmark. The
only existing benchmark uses SKIA_GL, since we intend to time just
drawLayers, but future benchmarks will want to time threading aspects
with SKIA_GL_THREADED, and we may add more RenderEngineTypes in the
future.
Codec.cpp:
- Write methods for decoding and encoding a buffer.
Flags.cpp:
- Extra flags that can be passed to the executable.
- --save allows encoding the result to a file to verify it looks as
intended.
- parse --help to describe --save and any future flags specific to
RenderEngineBench.
RenderEngineBench.h:
- header file for methods used across cpp files. Use a single common
header since otherwise we would have several small headers.
homescreen.png:
- Mock homescreen to draw in drawLayers
Change-Id: I81a1a8a30a1c20985bbf066d2ba4d5f1fd1f6dc3
7 files changed