perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
681 lines • 20.9 kB
TypeScript
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { BlurRegion, ColorProto, ColorTransformProto, InputWindowInfoProto, RegionProto, SizeProto, TransformProto, TrustedOverlay } from "./surfaceflinger_common_pb";
import type { RectProto } from "./graphics/rect_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file protos/perfetto/trace/android/surfaceflinger_layers.proto.
*/
export declare const file_protos_perfetto_trace_android_surfaceflinger_layers: GenFile;
/**
* 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 declare const LayersTraceFileProtoSchema: GenMessage<LayersTraceFileProto>;
/**
* 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 declare 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 declare const LayersTraceFileProto_MagicNumberSchema: GenEnum<LayersTraceFileProto_MagicNumber>;
/**
* @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 declare const LayersSnapshotProtoSchema: GenMessage<LayersSnapshotProto>;
/**
* 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 declare const LayersProtoSchema: GenMessage<LayersProto>;
/**
* @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 declare const DisplayProtoSchema: GenMessage<DisplayProto>;
/**
* 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 declare const LayerProtoSchema: GenMessage<LayerProto>;
/**
* @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 declare const PositionProtoSchema: GenMessage<PositionProto>;
/**
* @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 declare const FloatRectProtoSchema: GenMessage<FloatRectProto>;
/**
* @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 declare const ActiveBufferProtoSchema: GenMessage<ActiveBufferProto>;
/**
* @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 declare const BarrierLayerProtoSchema: GenMessage<BarrierLayerProto>;
/**
* Must match definition in the IComposerClient HAL
*
* @generated from enum perfetto.protos.HwcCompositionType
*/
export declare 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 declare const HwcCompositionTypeSchema: GenEnum<HwcCompositionType>;
//# sourceMappingURL=surfaceflinger_layers_pb.d.ts.map