e9783f22db
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>
65 lines
2.9 KiB
Protocol Buffer
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;
|
|
}
|