blob: 56bd6b3fe180d884134e12295896c9f6a37669ed [file] [log] [blame]
/*
* Copyright (C) 2021 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;
message AndroidHwcomposerMetrics {
// Counts the number of composition total layers in the trace. (non-weighted average)
optional double composition_total_layers = 1;
// Counts the number of composition dpu layers in the trace. (non-weighted average)
optional double composition_dpu_layers = 2;
// Counts the number of composition gpu layers in the trace. (non-weighted average)
optional double composition_gpu_layers = 3;
// Counts the number of composition dpu cached layers in the trace. (non-weighted average)
optional double composition_dpu_cached_layers = 4;
// Counts the number of composition surfaceflinger cached layers in the trace.
// (non-weighted average)
optional double composition_sf_cached_layers = 5;
// Counts the number of composition rounded corner decoration layers in the trace.
// (non-weighted average)
optional double composition_rcd_layers = 15;
// Counts how many times validateDisplay is skipped.
optional int32 skipped_validation_count = 6;
// Counts how many times validateDisplay cannot be skipped.
optional int32 unskipped_validation_count = 7;
// Counts how many times validateDisplay is already separated from presentDisplay
// since the beginning.
optional int32 separated_validation_count = 8;
// Counts how many unhandled validation cases which might be caused by errors.
optional int32 unknown_validation_count = 9;
// the average of overall hwcomposer execution time.
optional double avg_all_execution_time_ms = 10;
// the average of hwcomposer execution time for skipped validation cases.
optional double avg_skipped_execution_time_ms = 11;
// the average of hwcomposer execution time for unskipped validation cases.
optional double avg_unskipped_execution_time_ms = 12;
// the average of hwcomposer execution time for separated validation cases.
optional double avg_separated_execution_time_ms = 13;
message DpuVoteMetrics {
// the thread ID that handles this track
optional uint32 tid = 1;
// the weighted average of DPU Vote Clock
optional double avg_dpu_vote_clock = 2;
// the weighted average of DPU Vote Avg Bandwidth
optional double avg_dpu_vote_avg_bw = 3;
// the weighted average of DPU Vote Peak Bandwidth
optional double avg_dpu_vote_peak_bw = 4;
// the weighted average of DPU Vote RT (Real Time) Bandwidth
optional double avg_dpu_vote_rt_bw = 5;
}
// DPU Vote Metrics for each thread track
repeated DpuVoteMetrics dpu_vote_metrics = 14;
message MetricsPerDisplay {
// Display ID in HWC
optional string display_id = 1;
// Counts the number of composition total layers in the trace. (non-weighted average)
optional double composition_total_layers = 2;
// Counts the number of composition dpu layers in the trace. (non-weighted average)
optional double composition_dpu_layers = 3;
// Counts the number of composition gpu layers in the trace. (non-weighted average)
optional double composition_gpu_layers = 4;
// Counts the number of composition dpu cached layers in the trace. (non-weighted average)
optional double composition_dpu_cached_layers = 5;
// Counts the number of composition surfaceflinger cached layers in the trace.
// (non-weighted average)
optional double composition_sf_cached_layers = 6;
// Counts the number of composition rounded corner decoration layers in the trace.
// (non-weighted average)
optional double composition_rcd_layers = 7;
// Counts how many times validateDisplay is skipped.
optional int32 skipped_validation_count = 8;
// Counts how many times validateDisplay cannot be skipped.
optional int32 unskipped_validation_count = 9;
// Counts how many times validateDisplay is already separated from presentDisplay
// since the beginning.
optional int32 separated_validation_count = 10;
// Counts how many unhandled validation cases which might be caused by errors.
optional int32 unknown_validation_count = 11;
// the average of overall hwcomposer execution time.
optional double avg_all_execution_time_ms = 12;
// the average of hwcomposer execution time for skipped validation cases.
optional double avg_skipped_execution_time_ms = 13;
// the average of hwcomposer execution time for unskipped validation cases.
optional double avg_unskipped_execution_time_ms = 14;
// the average of hwcomposer execution time for separated validation cases.
optional double avg_separated_execution_time_ms = 15;
}
repeated MetricsPerDisplay metrics_per_display = 16;
}