perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
829 lines (710 loc) • 26.9 kB
text/typescript
//
// Copyright (C) 2023 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.
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/trace/android/surfaceflinger_layers.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { BlurRegion, ColorProto, ColorTransformProto, InputWindowInfoProto, RegionProto, SizeProto, TransformProto, TrustedOverlay } from "./surfaceflinger_common_pb";
import { file_protos_perfetto_trace_android_surfaceflinger_common } from "./surfaceflinger_common_pb";
import type { RectProto } from "./graphics/rect_pb";
import { file_protos_perfetto_trace_android_graphics_rect } from "./graphics/rect_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file protos/perfetto/trace/android/surfaceflinger_layers.proto.
*/
export const file_protos_perfetto_trace_android_surfaceflinger_layers: GenFile = /*@__PURE__*/
fileDesc("Cjlwcm90b3MvcGVyZmV0dG8vdHJhY2UvYW5kcm9pZC9zdXJmYWNlZmxpbmdlcl9sYXllcnMucHJvdG8SD3BlcmZldHRvLnByb3RvcyLYAQoUTGF5ZXJzVHJhY2VGaWxlUHJvdG8SFAoMbWFnaWNfbnVtYmVyGAEgASgGEjMKBWVudHJ5GAIgAygLMiQucGVyZmV0dG8ucHJvdG9zLkxheWVyc1NuYXBzaG90UHJvdG8SKQohcmVhbF90b19lbGFwc2VkX3RpbWVfb2Zmc2V0X25hbm9zGAMgASgGIkoKC01hZ2ljTnVtYmVyEgsKB0lOVkFMSUQQABIWCg5NQUdJQ19OVU1CRVJfTBDMssmiBRIWCg5NQUdJQ19OVU1CRVJfSBDSgo2qBCKDAgoTTGF5ZXJzU25hcHNob3RQcm90bxIeChZlbGFwc2VkX3JlYWx0aW1lX25hbm9zGAEgASgQEg0KBXdoZXJlGAIgASgJEiwKBmxheWVycxgDIAEoCzIcLnBlcmZldHRvLnByb3Rvcy5MYXllcnNQcm90bxIQCghod2NfYmxvYhgEIAEoCRIiChpleGNsdWRlc19jb21wb3NpdGlvbl9zdGF0ZRgFIAEoCBIWCg5taXNzZWRfZW50cmllcxgGIAEoDRIvCghkaXNwbGF5cxgHIAMoCzIdLnBlcmZldHRvLnByb3Rvcy5EaXNwbGF5UHJvdG8SEAoIdnN5bmNfaWQYCCABKAMiOgoLTGF5ZXJzUHJvdG8SKwoGbGF5ZXJzGAEgAygLMhsucGVyZmV0dG8ucHJvdG9zLkxheWVyUHJvdG8iiQIKDERpc3BsYXlQcm90bxIKCgJpZBgBIAEoBBIMCgRuYW1lGAIgASgJEhMKC2xheWVyX3N0YWNrGAMgASgNEigKBHNpemUYBCABKAsyGi5wZXJmZXR0by5wcm90b3MuU2l6ZVByb3RvEjoKFmxheWVyX3N0YWNrX3NwYWNlX3JlY3QYBSABKAsyGi5wZXJmZXR0by5wcm90b3MuUmVjdFByb3RvEjIKCXRyYW5zZm9ybRgGIAEoCzIfLnBlcmZldHRvLnByb3Rvcy5UcmFuc2Zvcm1Qcm90bxISCgppc192aXJ0dWFsGAcgASgIEg0KBWRwaV94GAggASgBEg0KBWRwaV95GAkgASgBIooSCgpMYXllclByb3RvEgoKAmlkGAEgASgFEgwKBG5hbWUYAiABKAkSFAoIY2hpbGRyZW4YAyADKAVCAhABEhUKCXJlbGF0aXZlcxgEIAMoBUICEAESDAoEdHlwZRgFIAEoCRI4ChJ0cmFuc3BhcmVudF9yZWdpb24YBiABKAsyHC5wZXJmZXR0by5wcm90b3MuUmVnaW9uUHJvdG8SNAoOdmlzaWJsZV9yZWdpb24YByABKAsyHC5wZXJmZXR0by5wcm90b3MuUmVnaW9uUHJvdG8SMwoNZGFtYWdlX3JlZ2lvbhgIIAEoCzIcLnBlcmZldHRvLnByb3Rvcy5SZWdpb25Qcm90bxITCgtsYXllcl9zdGFjaxgJIAEoDRIJCgF6GAogASgFEjAKCHBvc2l0aW9uGAsgASgLMh4ucGVyZmV0dG8ucHJvdG9zLlBvc2l0aW9uUHJvdG8SOgoScmVxdWVzdGVkX3Bvc2l0aW9uGAwgASgLMh4ucGVyZmV0dG8ucHJvdG9zLlBvc2l0aW9uUHJvdG8SKAoEc2l6ZRgNIAEoCzIaLnBlcmZldHRvLnByb3Rvcy5TaXplUHJvdG8SKAoEY3JvcBgOIAEoCzIaLnBlcmZldHRvLnByb3Rvcy5SZWN0UHJvdG8SMgoKZmluYWxfY3JvcBgPIAEoCzIaLnBlcmZldHRvLnByb3Rvcy5SZWN0UHJvdG9CAhgBEhEKCWlzX29wYXF1ZRgQIAEoCBISCgppbnZhbGlkYXRlGBEgASgIEhEKCWRhdGFzcGFjZRgSIAEoCRIUCgxwaXhlbF9mb3JtYXQYEyABKAkSKgoFY29sb3IYFCABKAsyGy5wZXJmZXR0by5wcm90b3MuQ29sb3JQcm90bxI0Cg9yZXF1ZXN0ZWRfY29sb3IYFSABKAsyGy5wZXJmZXR0by5wcm90b3MuQ29sb3JQcm90bxINCgVmbGFncxgWIAEoDRIyCgl0cmFuc2Zvcm0YFyABKAsyHy5wZXJmZXR0by5wcm90b3MuVHJhbnNmb3JtUHJvdG8SPAoTcmVxdWVzdGVkX3RyYW5zZm9ybRgYIAEoCzIfLnBlcmZldHRvLnByb3Rvcy5UcmFuc2Zvcm1Qcm90bxIOCgZwYXJlbnQYGSABKAUSGwoTel9vcmRlcl9yZWxhdGl2ZV9vZhgaIAEoBRI5Cg1hY3RpdmVfYnVmZmVyGBsgASgLMiIucGVyZmV0dG8ucHJvdG9zLkFjdGl2ZUJ1ZmZlclByb3RvEhUKDXF1ZXVlZF9mcmFtZXMYHCABKAUSFwoPcmVmcmVzaF9wZW5kaW5nGB0gASgIEi0KCWh3Y19mcmFtZRgeIAEoCzIaLnBlcmZldHRvLnByb3Rvcy5SZWN0UHJvdG8SMQoIaHdjX2Nyb3AYHyABKAsyHy5wZXJmZXR0by5wcm90b3MuRmxvYXRSZWN0UHJvdG8SFQoNaHdjX3RyYW5zZm9ybRggIAEoBRIXCgt3aW5kb3dfdHlwZRghIAEoBUICGAESEgoGYXBwX2lkGCIgASgFQgIYARJBChRod2NfY29tcG9zaXRpb25fdHlwZRgjIAEoDjIjLnBlcmZldHRvLnByb3Rvcy5Id2NDb21wb3NpdGlvblR5cGUSFAoMaXNfcHJvdGVjdGVkGCQgASgIEhIKCmN1cnJfZnJhbWUYJSABKAQSOQoNYmFycmllcl9sYXllchgmIAMoCzIiLnBlcmZldHRvLnByb3Rvcy5CYXJyaWVyTGF5ZXJQcm90bxI5ChBidWZmZXJfdHJhbnNmb3JtGCcgASgLMh8ucGVyZmV0dG8ucHJvdG9zLlRyYW5zZm9ybVByb3RvEh4KFmVmZmVjdGl2ZV9zY2FsaW5nX21vZGUYKCABKAUSFQoNY29ybmVyX3JhZGl1cxgpIAEoAhI7CghtZXRhZGF0YRgqIAMoCzIpLnBlcmZldHRvLnByb3Rvcy5MYXllclByb3RvLk1ldGFkYXRhRW50cnkSPAoTZWZmZWN0aXZlX3RyYW5zZm9ybRgrIAEoCzIfLnBlcmZldHRvLnByb3Rvcy5UcmFuc2Zvcm1Qcm90bxI2Cg1zb3VyY2VfYm91bmRzGCwgASgLMh8ucGVyZmV0dG8ucHJvdG9zLkZsb2F0UmVjdFByb3RvEi8KBmJvdW5kcxgtIAEoCzIfLnBlcmZldHRvLnByb3Rvcy5GbG9hdFJlY3RQcm90bxI2Cg1zY3JlZW5fYm91bmRzGC4gASgLMh8ucGVyZmV0dG8ucHJvdG9zLkZsb2F0UmVjdFByb3RvEkAKEWlucHV0X3dpbmRvd19pbmZvGC8gASgLMiUucGVyZmV0dG8ucHJvdG9zLklucHV0V2luZG93SW5mb1Byb3RvEjsKEmNvcm5lcl9yYWRpdXNfY3JvcBgwIAEoCzIfLnBlcmZldHRvLnByb3Rvcy5GbG9hdFJlY3RQcm90bxIVCg1zaGFkb3dfcmFkaXVzGDEgASgCEj0KD2NvbG9yX3RyYW5zZm9ybRgyIAEoCzIkLnBlcmZldHRvLnByb3Rvcy5Db2xvclRyYW5zZm9ybVByb3RvEhYKDmlzX3JlbGF0aXZlX29mGDMgASgIEh4KFmJhY2tncm91bmRfYmx1cl9yYWRpdXMYNCABKAUSEQoJb3duZXJfdWlkGDUgASgNEjEKDGJsdXJfcmVnaW9ucxg2IAMoCzIbLnBlcmZldHRvLnByb3Rvcy5CbHVyUmVnaW9uEhoKEmlzX3RydXN0ZWRfb3ZlcmxheRg3IAEoCBIfChdyZXF1ZXN0ZWRfY29ybmVyX3JhZGl1cxg4IAEoAhI1ChFkZXN0aW5hdGlvbl9mcmFtZRg5IAEoCzIaLnBlcmZldHRvLnByb3Rvcy5SZWN0UHJvdG8SEwoLb3JpZ2luYWxfaWQYOiABKA0SOAoPdHJ1c3RlZF9vdmVybGF5GDsgASgOMh8ucGVyZmV0dG8ucHJvdG9zLlRydXN0ZWRPdmVybGF5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgJOgI4ASIlCg1Qb3NpdGlvblByb3RvEgkKAXgYASABKAISCQoBeRgCIAEoAiJKCg5GbG9hdFJlY3RQcm90bxIMCgRsZWZ0GAEgASgCEgsKA3RvcBgCIAEoAhINCgVyaWdodBgDIAEoAhIOCgZib3R0b20YBCABKAIiYQoRQWN0aXZlQnVmZmVyUHJvdG8SDQoFd2lkdGgYASABKA0SDgoGaGVpZ2h0GAIgASgNEg4KBnN0cmlkZRgDIAEoDRIOCgZmb3JtYXQYBCABKAUSDQoFdXNhZ2UYBSABKAQiNQoRQmFycmllckxheWVyUHJvdG8SCgoCaWQYASABKAUSFAoMZnJhbWVfbnVtYmVyGAIgASgEKr8BChJId2NDb21wb3NpdGlvblR5cGUSGAoUSFdDX1RZUEVfVU5TUEVDSUZJRUQQABITCg9IV0NfVFlQRV9DTElFTlQQARITCg9IV0NfVFlQRV9ERVZJQ0UQAhIYChRIV0NfVFlQRV9TT0xJRF9DT0xPUhADEhMKD0hXQ19UWVBFX0NVUlNPUhAEEhUKEUhXQ19UWVBFX1NJREVCQU5EEAUSHwobSFdDX1RZUEVfRElTUExBWV9ERUNPUkFUSU9OEAY", [file_protos_perfetto_trace_android_surfaceflinger_common, file_protos_perfetto_trace_android_graphics_rect]);
/**
* Message used by Winscope to process legacy trace files.
* Represents a file full of surface flinger trace entries.
* Encoded, it should start with 0x4c 0x59 0x52 0x54 0x52 0x41 0x43 0x45
* (.LYRTRACE), such that they can be easily identified.
*
* @generated from message perfetto.protos.LayersTraceFileProto
*/
export type LayersTraceFileProto = Message<"perfetto.protos.LayersTraceFileProto"> & {
/**
* Must be the first field, set to value in MagicNumber
*
* @generated from field: optional fixed64 magic_number = 1;
*/
magicNumber: bigint;
/**
* @generated from field: repeated perfetto.protos.LayersSnapshotProto entry = 2;
*/
entry: LayersSnapshotProto[];
/**
* Offset between real-time clock and elapsed time clock in nanoseconds.
* Calculated as: systemTime(SYSTEM_TIME_REALTIME) -
* systemTime(SYSTEM_TIME_MONOTONIC)
*
* @generated from field: optional fixed64 real_to_elapsed_time_offset_nanos = 3;
*/
realToElapsedTimeOffsetNanos: bigint;
};
/**
* Describes the message perfetto.protos.LayersTraceFileProto.
* Use `create(LayersTraceFileProtoSchema)` to create a new message.
*/
export const LayersTraceFileProtoSchema: GenMessage<LayersTraceFileProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 0);
/**
* constant; MAGIC_NUMBER = (long) MAGIC_NUMBER_H << 32 |
* MagicNumber.MAGIC_NUMBER_L (this is needed because enums have to be 32 bits
* and there's no nice way to put 64bit constants into .proto files.
*
* @generated from enum perfetto.protos.LayersTraceFileProto.MagicNumber
*/
export enum LayersTraceFileProto_MagicNumber {
/**
* @generated from enum value: INVALID = 0;
*/
INVALID = 0,
/**
* LYRT (little-endian ASCII)
*
* @generated from enum value: MAGIC_NUMBER_L = 1414682956;
*/
MAGIC_NUMBER_L = 1414682956,
/**
* RACE (little-endian ASCII)
*
* @generated from enum value: MAGIC_NUMBER_H = 1162035538;
*/
MAGIC_NUMBER_H = 1162035538,
}
/**
* Describes the enum perfetto.protos.LayersTraceFileProto.MagicNumber.
*/
export const LayersTraceFileProto_MagicNumberSchema: GenEnum<LayersTraceFileProto_MagicNumber> = /*@__PURE__*/
enumDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 0, 0);
/**
* @generated from message perfetto.protos.LayersSnapshotProto
*/
export type LayersSnapshotProto = Message<"perfetto.protos.LayersSnapshotProto"> & {
/**
* elapsed realtime in nanos since boot of when this entry was logged
*
* @generated from field: optional sfixed64 elapsed_realtime_nanos = 1;
*/
elapsedRealtimeNanos: bigint;
/**
* SurfaceFlinger's stage where the snapshot was triggered.
* Currently either "visibleRegionsDirty" or "bufferLatched".
*
* @generated from field: optional string where = 2;
*/
where: string;
/**
* @generated from field: optional perfetto.protos.LayersProto layers = 3;
*/
layers?: LayersProto;
/**
* Blob for the current HWC information for all layers, reported by dumpsys.
* Example:
* "maxDownScale: 4, maxFullWidth: 8192, HWState: 1, AssignedState: 3, ..."
*
* @generated from field: optional string hwc_blob = 4;
*/
hwcBlob: string;
/**
* Excludes state sent during composition like visible region and composition
* type.
*
* @generated from field: optional bool excludes_composition_state = 5;
*/
excludesCompositionState: boolean;
/**
* Number of missed entries since the last entry was recorded.
*
* @generated from field: optional uint32 missed_entries = 6;
*/
missedEntries: number;
/**
* @generated from field: repeated perfetto.protos.DisplayProto displays = 7;
*/
displays: DisplayProto[];
/**
* @generated from field: optional int64 vsync_id = 8;
*/
vsyncId: bigint;
};
/**
* Describes the message perfetto.protos.LayersSnapshotProto.
* Use `create(LayersSnapshotProtoSchema)` to create a new message.
*/
export const LayersSnapshotProtoSchema: GenMessage<LayersSnapshotProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 1);
/**
* Contains a list of all layers.
*
* @generated from message perfetto.protos.LayersProto
*/
export type LayersProto = Message<"perfetto.protos.LayersProto"> & {
/**
* @generated from field: repeated perfetto.protos.LayerProto layers = 1;
*/
layers: LayerProto[];
};
/**
* Describes the message perfetto.protos.LayersProto.
* Use `create(LayersProtoSchema)` to create a new message.
*/
export const LayersProtoSchema: GenMessage<LayersProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 2);
/**
* @generated from message perfetto.protos.DisplayProto
*/
export type DisplayProto = Message<"perfetto.protos.DisplayProto"> & {
/**
* @generated from field: optional uint64 id = 1;
*/
id: bigint;
/**
* Display descriptor, e.g. "Built-In Screen"
*
* @generated from field: optional string name = 2;
*/
name: string;
/**
* @generated from field: optional uint32 layer_stack = 3;
*/
layerStack: number;
/**
* @generated from field: optional perfetto.protos.SizeProto size = 4;
*/
size?: SizeProto;
/**
* @generated from field: optional perfetto.protos.RectProto layer_stack_space_rect = 5;
*/
layerStackSpaceRect?: RectProto;
/**
* @generated from field: optional perfetto.protos.TransformProto transform = 6;
*/
transform?: TransformProto;
/**
* @generated from field: optional bool is_virtual = 7;
*/
isVirtual: boolean;
/**
* @generated from field: optional double dpi_x = 8;
*/
dpiX: number;
/**
* @generated from field: optional double dpi_y = 9;
*/
dpiY: number;
};
/**
* Describes the message perfetto.protos.DisplayProto.
* Use `create(DisplayProtoSchema)` to create a new message.
*/
export const DisplayProtoSchema: GenMessage<DisplayProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 3);
/**
* Information about each layer.
*
* @generated from message perfetto.protos.LayerProto
*/
export type LayerProto = Message<"perfetto.protos.LayerProto"> & {
/**
* unique id per layer.
*
* @generated from field: optional int32 id = 1;
*/
id: number;
/**
* unique name per layer.
* Example: "Wallpaper".
*
* @generated from field: optional string name = 2;
*/
name: string;
/**
* list of children this layer may have. May be empty.
*
* @generated from field: repeated int32 children = 3 [packed = true];
*/
children: number[];
/**
* list of layers that are z order relative to this layer.
*
* @generated from field: repeated int32 relatives = 4 [packed = true];
*/
relatives: number[];
/**
* The type of layer.
* Examples: "ContainerLayer", "BufferStateLayer".
*
* @generated from field: optional string type = 5;
*/
type: string;
/**
* @generated from field: optional perfetto.protos.RegionProto transparent_region = 6;
*/
transparentRegion?: RegionProto;
/**
* @generated from field: optional perfetto.protos.RegionProto visible_region = 7;
*/
visibleRegion?: RegionProto;
/**
* @generated from field: optional perfetto.protos.RegionProto damage_region = 8;
*/
damageRegion?: RegionProto;
/**
* @generated from field: optional uint32 layer_stack = 9;
*/
layerStack: number;
/**
* The layer's z order. Can be z order in layer stack, relative to parent,
* or relative to another layer specified in zOrderRelative.
*
* @generated from field: optional int32 z = 10;
*/
z: number;
/**
* The layer's position on the display.
*
* @generated from field: optional perfetto.protos.PositionProto position = 11;
*/
position?: PositionProto;
/**
* The layer's requested position.
*
* @generated from field: optional perfetto.protos.PositionProto requested_position = 12;
*/
requestedPosition?: PositionProto;
/**
* The layer's size.
*
* @generated from field: optional perfetto.protos.SizeProto size = 13;
*/
size?: SizeProto;
/**
* The layer's crop in its own bounds.
*
* @generated from field: optional perfetto.protos.RectProto crop = 14;
*/
crop?: RectProto;
/**
* The layer's crop in its parent's bounds.
*
* @generated from field: optional perfetto.protos.RectProto final_crop = 15 [deprecated = true];
* @deprecated
*/
finalCrop?: RectProto;
/**
* @generated from field: optional bool is_opaque = 16;
*/
isOpaque: boolean;
/**
* @generated from field: optional bool invalidate = 17;
*/
invalidate: boolean;
/**
* Composition states's dataspace.
* Examples: "STANDARD_BT709", "STANDARD_BT601_625".
* See full enum in
* frameworks/native/libs/nativewindow/include/android/data_space.h
*
* @generated from field: optional string dataspace = 18;
*/
dataspace: string;
/**
* Buffer's pixel format
* Examples: "PIXEL_FORMAT_TRANSLUCENT", "PIXEL_FORMAT_RGBA_8888".
* See full enum in frameworks/native/libs/ui/include/ui/PixelFormat.h
*
* @generated from field: optional string pixel_format = 19;
*/
pixelFormat: string;
/**
* The layer's actual color.
*
* @generated from field: optional perfetto.protos.ColorProto color = 20;
*/
color?: ColorProto;
/**
* The layer's requested color.
*
* @generated from field: optional perfetto.protos.ColorProto requested_color = 21;
*/
requestedColor?: ColorProto;
/**
* Can be any combination of
* hidden = 0x01
* opaque = 0x02,
* secure = 0x80,
*
* @generated from field: optional uint32 flags = 22;
*/
flags: number;
/**
* The layer's actual transform
*
* @generated from field: optional perfetto.protos.TransformProto transform = 23;
*/
transform?: TransformProto;
/**
* The layer's requested transform.
*
* @generated from field: optional perfetto.protos.TransformProto requested_transform = 24;
*/
requestedTransform?: TransformProto;
/**
* The parent layer. This value can be null if there is no parent.
*
* @generated from field: optional int32 parent = 25;
*/
parent: number;
/**
* The layer that this layer has a z order relative to. This value can be
* null.
*
* @generated from field: optional int32 z_order_relative_of = 26;
*/
zOrderRelativeOf: number;
/**
* This value can be null if there's nothing to draw.
*
* @generated from field: optional perfetto.protos.ActiveBufferProto active_buffer = 27;
*/
activeBuffer?: ActiveBufferProto;
/**
* The number of frames available.
*
* @generated from field: optional int32 queued_frames = 28;
*/
queuedFrames: number;
/**
* @generated from field: optional bool refresh_pending = 29;
*/
refreshPending: boolean;
/**
* The layer's composer backend destination frame
*
* @generated from field: optional perfetto.protos.RectProto hwc_frame = 30;
*/
hwcFrame?: RectProto;
/**
* The layer's composer backend source crop
*
* @generated from field: optional perfetto.protos.FloatRectProto hwc_crop = 31;
*/
hwcCrop?: FloatRectProto;
/**
* The layer's composer backend transform
*
* @generated from field: optional int32 hwc_transform = 32;
*/
hwcTransform: number;
/**
* @generated from field: optional int32 window_type = 33 [deprecated = true];
* @deprecated
*/
windowType: number;
/**
* @generated from field: optional int32 app_id = 34 [deprecated = true];
* @deprecated
*/
appId: number;
/**
* The layer's composition type
*
* @generated from field: optional perfetto.protos.HwcCompositionType hwc_composition_type = 35;
*/
hwcCompositionType: HwcCompositionType;
/**
* If it's a buffer layer, indicate if the content is protected
*
* @generated from field: optional bool is_protected = 36;
*/
isProtected: boolean;
/**
* Current frame number being rendered.
*
* @generated from field: optional uint64 curr_frame = 37;
*/
currFrame: bigint;
/**
* A list of barriers that the layer is waiting to update state.
*
* @generated from field: repeated perfetto.protos.BarrierLayerProto barrier_layer = 38;
*/
barrierLayer: BarrierLayerProto[];
/**
* If active_buffer is not null, record its transform.
*
* @generated from field: optional perfetto.protos.TransformProto buffer_transform = 39;
*/
bufferTransform?: TransformProto;
/**
* @generated from field: optional int32 effective_scaling_mode = 40;
*/
effectiveScalingMode: number;
/**
* Layer's corner radius.
*
* @generated from field: optional float corner_radius = 41;
*/
cornerRadius: number;
/**
* Metadata map. May be empty.
*
* @generated from field: map<int32, string> metadata = 42;
*/
metadata: { [key: number]: string };
/**
* @generated from field: optional perfetto.protos.TransformProto effective_transform = 43;
*/
effectiveTransform?: TransformProto;
/**
* @generated from field: optional perfetto.protos.FloatRectProto source_bounds = 44;
*/
sourceBounds?: FloatRectProto;
/**
* @generated from field: optional perfetto.protos.FloatRectProto bounds = 45;
*/
bounds?: FloatRectProto;
/**
* @generated from field: optional perfetto.protos.FloatRectProto screen_bounds = 46;
*/
screenBounds?: FloatRectProto;
/**
* @generated from field: optional perfetto.protos.InputWindowInfoProto input_window_info = 47;
*/
inputWindowInfo?: InputWindowInfoProto;
/**
* Crop used to draw the rounded corner.
*
* @generated from field: optional perfetto.protos.FloatRectProto corner_radius_crop = 48;
*/
cornerRadiusCrop?: FloatRectProto;
/**
* length of the shadow to draw around the layer, it may be set on the
* layer or set by a parent layer.
*
* @generated from field: optional float shadow_radius = 49;
*/
shadowRadius: number;
/**
* @generated from field: optional perfetto.protos.ColorTransformProto color_transform = 50;
*/
colorTransform?: ColorTransformProto;
/**
* @generated from field: optional bool is_relative_of = 51;
*/
isRelativeOf: boolean;
/**
* Layer's background blur radius in pixels.
*
* @generated from field: optional int32 background_blur_radius = 52;
*/
backgroundBlurRadius: number;
/**
* @generated from field: optional uint32 owner_uid = 53;
*/
ownerUid: number;
/**
* Regions of a layer, where blur should be applied.
*
* @generated from field: repeated perfetto.protos.BlurRegion blur_regions = 54;
*/
blurRegions: BlurRegion[];
/**
* @generated from field: optional bool is_trusted_overlay = 55;
*/
isTrustedOverlay: boolean;
/**
* Corner radius explicitly set on layer rather than inherited
*
* @generated from field: optional float requested_corner_radius = 56;
*/
requestedCornerRadius: number;
/**
* @generated from field: optional perfetto.protos.RectProto destination_frame = 57;
*/
destinationFrame?: RectProto;
/**
* @generated from field: optional uint32 original_id = 58;
*/
originalId: number;
/**
* @generated from field: optional perfetto.protos.TrustedOverlay trusted_overlay = 59;
*/
trustedOverlay: TrustedOverlay;
};
/**
* Describes the message perfetto.protos.LayerProto.
* Use `create(LayerProtoSchema)` to create a new message.
*/
export const LayerProtoSchema: GenMessage<LayerProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 4);
/**
* @generated from message perfetto.protos.PositionProto
*/
export type PositionProto = Message<"perfetto.protos.PositionProto"> & {
/**
* @generated from field: optional float x = 1;
*/
x: number;
/**
* @generated from field: optional float y = 2;
*/
y: number;
};
/**
* Describes the message perfetto.protos.PositionProto.
* Use `create(PositionProtoSchema)` to create a new message.
*/
export const PositionProtoSchema: GenMessage<PositionProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 5);
/**
* @generated from message perfetto.protos.FloatRectProto
*/
export type FloatRectProto = Message<"perfetto.protos.FloatRectProto"> & {
/**
* @generated from field: optional float left = 1;
*/
left: number;
/**
* @generated from field: optional float top = 2;
*/
top: number;
/**
* @generated from field: optional float right = 3;
*/
right: number;
/**
* @generated from field: optional float bottom = 4;
*/
bottom: number;
};
/**
* Describes the message perfetto.protos.FloatRectProto.
* Use `create(FloatRectProtoSchema)` to create a new message.
*/
export const FloatRectProtoSchema: GenMessage<FloatRectProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 6);
/**
* @generated from message perfetto.protos.ActiveBufferProto
*/
export type ActiveBufferProto = Message<"perfetto.protos.ActiveBufferProto"> & {
/**
* @generated from field: optional uint32 width = 1;
*/
width: number;
/**
* @generated from field: optional uint32 height = 2;
*/
height: number;
/**
* @generated from field: optional uint32 stride = 3;
*/
stride: number;
/**
* @generated from field: optional int32 format = 4;
*/
format: number;
/**
* @generated from field: optional uint64 usage = 5;
*/
usage: bigint;
};
/**
* Describes the message perfetto.protos.ActiveBufferProto.
* Use `create(ActiveBufferProtoSchema)` to create a new message.
*/
export const ActiveBufferProtoSchema: GenMessage<ActiveBufferProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 7);
/**
* @generated from message perfetto.protos.BarrierLayerProto
*/
export type BarrierLayerProto = Message<"perfetto.protos.BarrierLayerProto"> & {
/**
* layer id the barrier is waiting on.
*
* @generated from field: optional int32 id = 1;
*/
id: number;
/**
* frame number the barrier is waiting on.
*
* @generated from field: optional uint64 frame_number = 2;
*/
frameNumber: bigint;
};
/**
* Describes the message perfetto.protos.BarrierLayerProto.
* Use `create(BarrierLayerProtoSchema)` to create a new message.
*/
export const BarrierLayerProtoSchema: GenMessage<BarrierLayerProto> = /*@__PURE__*/
messageDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 8);
/**
* Must match definition in the IComposerClient HAL
*
* @generated from enum perfetto.protos.HwcCompositionType
*/
export enum HwcCompositionType {
/**
* Invalid composition type
*
* @generated from enum value: HWC_TYPE_UNSPECIFIED = 0;
*/
HWC_TYPE_UNSPECIFIED = 0,
/**
* Layer was composited by the client into the client target buffer
*
* @generated from enum value: HWC_TYPE_CLIENT = 1;
*/
HWC_TYPE_CLIENT = 1,
/**
* Layer was composited by the device through hardware overlays
*
* @generated from enum value: HWC_TYPE_DEVICE = 2;
*/
HWC_TYPE_DEVICE = 2,
/**
* Layer was composited by the device using a color
*
* @generated from enum value: HWC_TYPE_SOLID_COLOR = 3;
*/
HWC_TYPE_SOLID_COLOR = 3,
/**
* Similar to DEVICE, but the layer position may have been asynchronously set
* through setCursorPosition
*
* @generated from enum value: HWC_TYPE_CURSOR = 4;
*/
HWC_TYPE_CURSOR = 4,
/**
* Layer was composited by the device via a sideband stream
*
* @generated from enum value: HWC_TYPE_SIDEBAND = 5;
*/
HWC_TYPE_SIDEBAND = 5,
/**
* Layer was composited by hardware optimized for display decoration
*
* @generated from enum value: HWC_TYPE_DISPLAY_DECORATION = 6;
*/
HWC_TYPE_DISPLAY_DECORATION = 6,
}
/**
* Describes the enum perfetto.protos.HwcCompositionType.
*/
export const HwcCompositionTypeSchema: GenEnum<HwcCompositionType> = /*@__PURE__*/
enumDesc(file_protos_perfetto_trace_android_surfaceflinger_layers, 0);