1/* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package perfetto.protos; 20 21message AndroidGpuMetric { 22 message Process { 23 // Process name. 24 optional string name = 1; 25 26 // max/min/avg GPU memory used by this process. 27 optional int64 mem_max = 2; 28 optional int64 mem_min = 3; 29 optional int64 mem_avg = 4; 30 } 31 32 // GPU metric for processes using GPU. 33 repeated Process processes = 1; 34 35 // max/min/avg GPU memory used by the entire system. 36 optional int64 mem_max = 2; 37 optional int64 mem_min = 3; 38 optional int64 mem_avg = 4; 39 40 message FrequencyMetric { 41 // Identifier for GPU in a multi-gpu device. 42 optional uint32 gpu_id = 1; 43 44 // max/min/avg GPU frequency for this gpu_id 45 // the calculation of avg is weighted by the duration of each frequency 46 optional int64 freq_max = 2; 47 optional int64 freq_min = 3; 48 optional double freq_avg = 4; 49 50 message MetricsPerFrequency { 51 // Used frequency 52 optional int64 freq = 1; 53 54 // Total duration in ms when the state of GPU was in this frequency 55 optional double dur_ms = 2; 56 57 // Percentage of duration in this frequency compared to all frequencies 58 // in this gpu_id 59 optional double percentage = 3; 60 } 61 62 // Metrics for each used GPU frequency 63 repeated MetricsPerFrequency used_freqs = 5; 64 } 65 66 // GPU frequency metric for each gpu_id 67 repeated FrequencyMetric freq_metrics = 5; 68} 69