b65171956c
Follow ProtoBestPractices and comments suggested by cl/295218381. Changing proto definition, should be fine, because these are fields added after the last Android release. Move PipelineType enum inside GraphicsStats and add a default UNKNOWN state. Rename start_millis and end_millis in GraphicsStats atom. Fields in GraphicsStatsProto cannot be renamed as these were part of previous Android releases. Test: Ran "adb shell cmd stats pull-source 10068" Test: Ran "statsd_testdrive 10068" and it looks OK Bug: 149646555 Change-Id: Idc326eb2a7eb9ff0be39026e6fec544491b7d8a6
96 lines
2.9 KiB
Protocol Buffer
96 lines
2.9 KiB
Protocol Buffer
/*
|
|
* Copyright (C) 2017 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 android.uirenderer.protos;
|
|
|
|
option optimize_for = LITE_RUNTIME;
|
|
|
|
// frameworks/base/core/proto/android/service/graphicsstats.proto is based on
|
|
// this proto. Please only make valid protobuf changes to these messages, and
|
|
// keep the other file in sync with this one.
|
|
|
|
message GraphicsStatsServiceDumpProto {
|
|
repeated GraphicsStatsProto stats = 1;
|
|
}
|
|
|
|
message GraphicsStatsProto {
|
|
enum PipelineType {
|
|
UNKNOWN = 0;
|
|
GL = 1;
|
|
VULKAN = 2;
|
|
}
|
|
|
|
// The package name of the app
|
|
optional string package_name = 1;
|
|
|
|
// The version code of the app
|
|
optional int64 version_code = 2;
|
|
|
|
// The start & end timestamps in UTC as
|
|
// milliseconds since January 1, 1970
|
|
// Compatible with java.util.Date#setTime()
|
|
optional int64 stats_start = 3;
|
|
optional int64 stats_end = 4;
|
|
|
|
// The aggregated statistics for the package
|
|
optional GraphicsStatsJankSummaryProto summary = 5;
|
|
|
|
// The frame time histogram for the package
|
|
repeated GraphicsStatsHistogramBucketProto histogram = 6;
|
|
|
|
// The gpu frame time histogram for the package
|
|
repeated GraphicsStatsHistogramBucketProto gpu_histogram = 7;
|
|
|
|
// HWUI renders pipeline type: GL or Vulkan
|
|
optional PipelineType pipeline = 8;
|
|
}
|
|
|
|
message GraphicsStatsJankSummaryProto {
|
|
// Distinct frame count.
|
|
optional int32 total_frames = 1;
|
|
|
|
// Number of frames with slow render time. Frames are considered janky if
|
|
// they took more than a vsync interval (typically 16.667ms) to be rendered.
|
|
optional int32 janky_frames = 2;
|
|
|
|
// Number of "missed vsync" events.
|
|
optional int32 missed_vsync_count = 3;
|
|
|
|
// Number of frames in triple-buffering scenario (high input latency)
|
|
optional int32 high_input_latency_count = 4;
|
|
|
|
// Number of "slow UI thread" events.
|
|
optional int32 slow_ui_thread_count = 5;
|
|
|
|
// Number of "slow bitmap upload" events.
|
|
optional int32 slow_bitmap_upload_count = 6;
|
|
|
|
// Number of "slow draw" events.
|
|
optional int32 slow_draw_count = 7;
|
|
|
|
// Number of frames that missed their deadline (aka, visibly janked)
|
|
optional int32 missed_deadline_count = 8;
|
|
}
|
|
|
|
message GraphicsStatsHistogramBucketProto {
|
|
// Lower bound of render time in milliseconds.
|
|
optional int32 render_millis = 1;
|
|
// Number of frames in the bucket.
|
|
optional int32 frame_count = 2;
|
|
}
|