| /* |
| * Copyright (C) 2020 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| package perfetto.protos; |
| |
| // Android HWUI graphics performance and graphics memory usage metrics. |
| message ProcessRenderInfo { |
| // Name of the package launched |
| optional string process_name = 1; |
| |
| // CPU time spent on RenderThread in milliseconds. |
| optional int64 rt_cpu_time_ms = 2; |
| |
| // Number of frames drawn on RenderThread, followed by max/min/avg CPU time to draw a frame |
| // in nanoseconds. |
| optional uint32 draw_frame_count = 3; |
| optional int64 draw_frame_max = 4; |
| optional int64 draw_frame_min = 5; |
| optional double draw_frame_avg = 6; |
| |
| // Number of GPU commands flushes and max/min/avg time per flush in nanoseconds. |
| optional uint32 flush_count = 7; |
| optional int64 flush_max = 8; |
| optional int64 flush_min = 9; |
| optional double flush_avg = 10; |
| |
| // Number of View tree preparation counts and max/min/avg time to traverse the tree in |
| // nanoseconds. |
| optional uint32 prepare_tree_count = 11; |
| optional int64 prepare_tree_max = 12; |
| optional int64 prepare_tree_min = 13; |
| optional double prepare_tree_avg = 14; |
| |
| // Number of times the GPU rendered a frame and max/min/avg time for GPU to finish rendering in |
| // in nanoseconds. |
| optional uint32 gpu_completion_count = 15; |
| optional int64 gpu_completion_max = 16; |
| optional int64 gpu_completion_min = 17; |
| optional double gpu_completion_avg = 18; |
| |
| // Number of times a frame was recorded/serialized in a display list on the UI thread with |
| // max/min/avg time in nanoseconds. |
| optional uint32 ui_record_count = 19; |
| optional int64 ui_record_max = 20; |
| optional int64 ui_record_min = 21; |
| optional double ui_record_avg = 22; |
| |
| // number of unique shader programs that were used to render frames, followed by total and average |
| // times to prepare a shader in nanoseconds. |
| optional uint32 shader_compile_count = 23; |
| optional int64 shader_compile_time = 24; |
| optional double shader_compile_avg = 25; |
| // number of shader programs loaded from the disk cache, followed by total time and average time |
| // to prepare a shader in nanoseconds. |
| optional uint32 cache_hit_count = 26; |
| optional int64 cache_hit_time = 27; |
| optional double cache_hit_avg = 28; |
| // number of shader programs compiled/linked, followed by total time and average time to prepare |
| // a shader in nanoseconds. |
| optional uint32 cache_miss_count = 29; |
| optional int64 cache_miss_time = 30; |
| optional double cache_miss_avg = 31; |
| |
| // max/min/avg CPU memory used for graphics by HWUI at the end of a frame. |
| optional int64 graphics_cpu_mem_max = 32; |
| optional int64 graphics_cpu_mem_min = 33; |
| optional double graphics_cpu_mem_avg = 34; |
| |
| // max/min/avg GPU memory used by HWUI at the end of a frame excluding textures. |
| optional int64 graphics_gpu_mem_max = 35; |
| optional int64 graphics_gpu_mem_min = 36; |
| optional double graphics_gpu_mem_avg = 37; |
| |
| // max/min/avg memory used for GPU textures by HWUI at the end of a frame. |
| optional int64 texture_mem_max = 38; |
| optional int64 texture_mem_min = 39; |
| optional double texture_mem_avg = 40; |
| |
| // max/min/avg memory used by HWUI at the end of a frame. This is a sum of previous 3 categories. |
| optional int64 all_mem_max = 41; |
| optional int64 all_mem_min = 42; |
| optional double all_mem_avg = 43; |
| } |
| |
| message AndroidHwuiMetric { |
| // HWUI metrics for processes that have a RenderThread. |
| repeated ProcessRenderInfo process_info = 1; |
| } |