skia2/platform_tools/android/apps/skottie/skottie_metric.proto
Stan Iliev e9783f22db Skottie perf metric improvements
Add 2 lottie files given by wearos.
Measure startup time.
Measure total time for 7 seconds starting from second frame.

Test: Ran tests on wearos and android.
Change-Id: I87ddcd116df0cd39df42636cca518a91c3be0329
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300044
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
2020-11-13 19:03:15 +00:00

65 lines
2.9 KiB
Protocol Buffer

syntax = "proto2";
package perfetto.protos;
import "protos/perfetto/metrics/metrics.proto";
import "protos/perfetto/metrics/android/hwui_metric.proto";
// Android HWUI graphics performance and graphics memory usage metrics augmented with
// perf data which is specific to the Skottie player. Skottie app has an additional
// render thread named "SkottieAnimator" in the traces. Perf metrics are filtered for
// 'org.skia.skottie' process only.
message ProcessRenderInfoEx {
// original HWUI metric as defined by built-in perfetto proto.
optional ProcessRenderInfo hwui_process_info = 1;
// Number of times the Skottie GL thread rendered a frame and max/min/avg time for Skottie GL
// renderer to finish rendering in
// in nanoseconds. These values have 0 value for lottie player, because it does it renders only
// in RenderThread.
optional uint32 skottie_animator_count = 2;
optional int64 skottie_animator_max = 3;
optional int64 skottie_animator_min = 4;
optional double skottie_animator_avg = 5;
optional uint32 dequeue_buffer_count = 6;
optional int64 dequeue_buffer_max = 7;
optional int64 dequeue_buffer_min = 8;
optional double dequeue_buffer_avg = 9;
// The following 2 fields are useful to compare render thread performance between Lottie and
// Skottie players.
// Skottie metric is a sum of the time on RenderThread and SkottieAnimator threads, while Lottie
// is only the time on RenderThread.
optional double render_time_avg = 10; // draw_frame_avg + skottie_animator_avg
// "render_time_avg_no_dequeue" tries to compensate the time spent to wait for a new buffer.
// It equals draw_frame_avg + skottie_animator_avg - dequeue_buffer_avg.
optional double render_time_avg_no_dequeue = 11;
optional int64 ui_thread_cpu_time = 12; // CPU time spent on UI thread in nanoseconds
optional int64 rt_thread_cpu_time = 13; // CPU time spent on RenderThread in nanoseconds
optional int64 hwui_tasks_cpu_time = 14; // CPU time spent on hwuiTask0/1 threads in nanoseconds
optional int64 skottie_animator_cpu_time = 15; // CPU time spent on SkottieAnimator in ns
optional int64 total_cpu_time = 16; // Total CPU time in nanoseconds. Equals
// ui_thread_cpu_time + rt_thread_cpu_time + skottie_animator_cpu_time + hwui_tasks_cpu_time
optional int64 total_gpu_time = 17; // GPU time spent to render all content in nanoseconds.
// This one number is the "ultimate" benchmark to compare airbnb lottie vs skottie player.
// performance. It is the total time for any rendering related work on CPU and GPU combined.
optional int64 total_time = 18; // This is total_cpu_time + total_gpu_time in nanoseconds.
// time between setSurface and second DrawFrame tag.
optional int64 startup_time = 19;
}
message SkottieMetric {
repeated ProcessRenderInfoEx process_info = 1;
}
extend TraceMetrics {
optional SkottieMetric skottie_metric = 460;
}