Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 8fcfa66d authored by Leon Scroggins III's avatar Leon Scroggins III
Browse files

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
parent f275116c
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment