perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
463 lines • 16.6 kB
TypeScript
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file protos/perfetto/trace/android/frame_timeline_event.proto.
*/
export declare const file_protos_perfetto_trace_android_frame_timeline_event: GenFile;
/**
* Generated by SurfaceFlinger's FrameTimeline (go/adaptive-scheduling-fr).
* Used in comparing the expected timeline of a frame to the actual timeline.
* Key terms:
* 1) DisplayFrame - represents SurfaceFlinger's work on a frame(composited)
* 2) SurfaceFrame - represents App's work on its frame
* 3) Timeline = start to end of a component's(app/SF) work on a frame.
* SurfaceFlinger composites frames from many apps together, so
* One DisplayFrame can map to N SurfaceFrame(s)
* This relationship can be reconstructed by using
* DisplayFrame.token = SurfaceFrame.display_frame_token
*
* @generated from message perfetto.protos.FrameTimelineEvent
*/
export type FrameTimelineEvent = Message<"perfetto.protos.FrameTimelineEvent"> & {
/**
* @generated from oneof perfetto.protos.FrameTimelineEvent.event
*/
event: {
/**
* @generated from field: perfetto.protos.FrameTimelineEvent.ExpectedDisplayFrameStart expected_display_frame_start = 1;
*/
value: FrameTimelineEvent_ExpectedDisplayFrameStart;
case: "expectedDisplayFrameStart";
} | {
/**
* @generated from field: perfetto.protos.FrameTimelineEvent.ActualDisplayFrameStart actual_display_frame_start = 2;
*/
value: FrameTimelineEvent_ActualDisplayFrameStart;
case: "actualDisplayFrameStart";
} | {
/**
* @generated from field: perfetto.protos.FrameTimelineEvent.ExpectedSurfaceFrameStart expected_surface_frame_start = 3;
*/
value: FrameTimelineEvent_ExpectedSurfaceFrameStart;
case: "expectedSurfaceFrameStart";
} | {
/**
* @generated from field: perfetto.protos.FrameTimelineEvent.ActualSurfaceFrameStart actual_surface_frame_start = 4;
*/
value: FrameTimelineEvent_ActualSurfaceFrameStart;
case: "actualSurfaceFrameStart";
} | {
/**
* @generated from field: perfetto.protos.FrameTimelineEvent.FrameEnd frame_end = 5;
*/
value: FrameTimelineEvent_FrameEnd;
case: "frameEnd";
} | {
case: undefined;
value?: undefined;
};
};
/**
* Describes the message perfetto.protos.FrameTimelineEvent.
* Use `create(FrameTimelineEventSchema)` to create a new message.
*/
export declare const FrameTimelineEventSchema: GenMessage<FrameTimelineEvent>;
/**
* Indicates the start of expected timeline slice for SurfaceFrames.
*
* @generated from message perfetto.protos.FrameTimelineEvent.ExpectedSurfaceFrameStart
*/
export type FrameTimelineEvent_ExpectedSurfaceFrameStart = Message<"perfetto.protos.FrameTimelineEvent.ExpectedSurfaceFrameStart"> & {
/**
* Cookie used to correlate between the start and end messages of the same
* frame. Since all values except the ts are same for start and end, cookie
* helps in preventing redundant data transmission.
* The same cookie is used only by start and end messages of a single frame
* and is otherwise unique.
*
* @generated from field: optional int64 cookie = 1;
*/
cookie: bigint;
/**
* Token received by the app for its work. Can be shared between multiple
* layers of the same app (example: pip mode).
*
* @generated from field: optional int64 token = 2;
*/
token: bigint;
/**
* The corresponding DisplayFrame token is required to link the App's work
* with SurfaceFlinger's work. Many SurfaceFrames can be mapped to a single
* DisplayFrame.
* this.display_frame_token = DisplayFrame.token
*
* @generated from field: optional int64 display_frame_token = 3;
*/
displayFrameToken: bigint;
/**
* Pid of the app. Used in creating the timeline tracks (and slices) inside
* the respective process track group.
*
* @generated from field: optional int32 pid = 4;
*/
pid: number;
/**
* @generated from field: optional string layer_name = 5;
*/
layerName: string;
};
/**
* Describes the message perfetto.protos.FrameTimelineEvent.ExpectedSurfaceFrameStart.
* Use `create(FrameTimelineEvent_ExpectedSurfaceFrameStartSchema)` to create a new message.
*/
export declare const FrameTimelineEvent_ExpectedSurfaceFrameStartSchema: GenMessage<FrameTimelineEvent_ExpectedSurfaceFrameStart>;
/**
* Indicates the start of actual timeline slice for SurfaceFrames. Also
* includes the jank information.
*
* @generated from message perfetto.protos.FrameTimelineEvent.ActualSurfaceFrameStart
*/
export type FrameTimelineEvent_ActualSurfaceFrameStart = Message<"perfetto.protos.FrameTimelineEvent.ActualSurfaceFrameStart"> & {
/**
* Cookie used to correlate between the start and end messages of the same
* frame. Since all values except the ts are same for start and end, cookie
* helps in preventing redundant data transmission.
* The same cookie is used only by start and end messages of a single frame
* and is otherwise unique.
*
* @generated from field: optional int64 cookie = 1;
*/
cookie: bigint;
/**
* Token received by the app for its work. Can be shared between multiple
* layers of the same app (example: pip mode).
*
* @generated from field: optional int64 token = 2;
*/
token: bigint;
/**
* The corresponding DisplayFrame token is required to link the App's work
* with SurfaceFlinger's work. Many SurfaceFrames can be mapped to a single
* DisplayFrame.
* this.display_frame_token = DisplayFrame.token
*
* @generated from field: optional int64 display_frame_token = 3;
*/
displayFrameToken: bigint;
/**
* Pid of the app. Used in creating the timeline tracks (and slices) inside
* the respective process track group.
*
* @generated from field: optional int32 pid = 4;
*/
pid: number;
/**
* @generated from field: optional string layer_name = 5;
*/
layerName: string;
/**
* @generated from field: optional perfetto.protos.FrameTimelineEvent.PresentType present_type = 6;
*/
presentType: FrameTimelineEvent_PresentType;
/**
* @generated from field: optional bool on_time_finish = 7;
*/
onTimeFinish: boolean;
/**
* @generated from field: optional bool gpu_composition = 8;
*/
gpuComposition: boolean;
/**
* A bitmask of JankType. More than one reason can be attributed to a janky
* frame.
*
* @generated from field: optional int32 jank_type = 9;
*/
jankType: number;
/**
* @generated from field: optional perfetto.protos.FrameTimelineEvent.PredictionType prediction_type = 10;
*/
predictionType: FrameTimelineEvent_PredictionType;
/**
* @generated from field: optional bool is_buffer = 11;
*/
isBuffer: boolean;
/**
* @generated from field: optional perfetto.protos.FrameTimelineEvent.JankSeverityType jank_severity_type = 12;
*/
jankSeverityType: FrameTimelineEvent_JankSeverityType;
};
/**
* Describes the message perfetto.protos.FrameTimelineEvent.ActualSurfaceFrameStart.
* Use `create(FrameTimelineEvent_ActualSurfaceFrameStartSchema)` to create a new message.
*/
export declare const FrameTimelineEvent_ActualSurfaceFrameStartSchema: GenMessage<FrameTimelineEvent_ActualSurfaceFrameStart>;
/**
* Indicates the start of expected timeline slice for DisplayFrames.
*
* @generated from message perfetto.protos.FrameTimelineEvent.ExpectedDisplayFrameStart
*/
export type FrameTimelineEvent_ExpectedDisplayFrameStart = Message<"perfetto.protos.FrameTimelineEvent.ExpectedDisplayFrameStart"> & {
/**
* Cookie used to correlate between the start and end messages of the same
* frame. Since all values except the ts are same for start and end, cookie
* helps in preventing redundant data transmission.
* The same cookie is used only by start and end messages of a single frame
* and is otherwise unique.
*
* @generated from field: optional int64 cookie = 1;
*/
cookie: bigint;
/**
* Token received by SurfaceFlinger for its work
* this.token = SurfaceFrame.display_frame_token
*
* @generated from field: optional int64 token = 2;
*/
token: bigint;
/**
* Pid of SurfaceFlinger. Used in creating the timeline tracks (and slices)
* inside the SurfaceFlinger process group.
*
* @generated from field: optional int32 pid = 3;
*/
pid: number;
};
/**
* Describes the message perfetto.protos.FrameTimelineEvent.ExpectedDisplayFrameStart.
* Use `create(FrameTimelineEvent_ExpectedDisplayFrameStartSchema)` to create a new message.
*/
export declare const FrameTimelineEvent_ExpectedDisplayFrameStartSchema: GenMessage<FrameTimelineEvent_ExpectedDisplayFrameStart>;
/**
* Indicates the start of actual timeline slice for DisplayFrames. Also
* includes the jank information.
*
* @generated from message perfetto.protos.FrameTimelineEvent.ActualDisplayFrameStart
*/
export type FrameTimelineEvent_ActualDisplayFrameStart = Message<"perfetto.protos.FrameTimelineEvent.ActualDisplayFrameStart"> & {
/**
* Cookie used to correlate between the start and end messages of the same
* frame. Since all values except the ts are same for start and end, cookie
* helps in preventing redundant data transmission.
* The same cookie is used only by start and end messages of a single frame
* and is otherwise unique.
*
* @generated from field: optional int64 cookie = 1;
*/
cookie: bigint;
/**
* Token received by SurfaceFlinger for its work
* this.token = SurfaceFrame.display_frame_token
*
* @generated from field: optional int64 token = 2;
*/
token: bigint;
/**
* Pid of SurfaceFlinger. Used in creating the timeline tracks (and slices)
* inside the SurfaceFlinger process group.
*
* @generated from field: optional int32 pid = 3;
*/
pid: number;
/**
* @generated from field: optional perfetto.protos.FrameTimelineEvent.PresentType present_type = 4;
*/
presentType: FrameTimelineEvent_PresentType;
/**
* @generated from field: optional bool on_time_finish = 5;
*/
onTimeFinish: boolean;
/**
* @generated from field: optional bool gpu_composition = 6;
*/
gpuComposition: boolean;
/**
* A bitmask of JankType. More than one reason can be attributed to a janky
* frame.
*
* @generated from field: optional int32 jank_type = 7;
*/
jankType: number;
/**
* @generated from field: optional perfetto.protos.FrameTimelineEvent.PredictionType prediction_type = 8;
*/
predictionType: FrameTimelineEvent_PredictionType;
/**
* @generated from field: optional perfetto.protos.FrameTimelineEvent.JankSeverityType jank_severity_type = 9;
*/
jankSeverityType: FrameTimelineEvent_JankSeverityType;
};
/**
* Describes the message perfetto.protos.FrameTimelineEvent.ActualDisplayFrameStart.
* Use `create(FrameTimelineEvent_ActualDisplayFrameStartSchema)` to create a new message.
*/
export declare const FrameTimelineEvent_ActualDisplayFrameStartSchema: GenMessage<FrameTimelineEvent_ActualDisplayFrameStart>;
/**
* FrameEnd just sends the cookie to indicate that the corresponding
* <display/surface>frame slice's end.
*
* @generated from message perfetto.protos.FrameTimelineEvent.FrameEnd
*/
export type FrameTimelineEvent_FrameEnd = Message<"perfetto.protos.FrameTimelineEvent.FrameEnd"> & {
/**
* @generated from field: optional int64 cookie = 1;
*/
cookie: bigint;
};
/**
* Describes the message perfetto.protos.FrameTimelineEvent.FrameEnd.
* Use `create(FrameTimelineEvent_FrameEndSchema)` to create a new message.
*/
export declare const FrameTimelineEvent_FrameEndSchema: GenMessage<FrameTimelineEvent_FrameEnd>;
/**
* Specifies the reason(s) most likely to have caused the jank.
* Used as a bitmask.
*
* @generated from enum perfetto.protos.FrameTimelineEvent.JankType
*/
export declare enum FrameTimelineEvent_JankType {
/**
* @generated from enum value: JANK_UNSPECIFIED = 0;
*/
JANK_UNSPECIFIED = 0,
/**
* @generated from enum value: JANK_NONE = 1;
*/
JANK_NONE = 1,
/**
* @generated from enum value: JANK_SF_SCHEDULING = 2;
*/
JANK_SF_SCHEDULING = 2,
/**
* @generated from enum value: JANK_PREDICTION_ERROR = 4;
*/
JANK_PREDICTION_ERROR = 4,
/**
* @generated from enum value: JANK_DISPLAY_HAL = 8;
*/
JANK_DISPLAY_HAL = 8,
/**
* @generated from enum value: JANK_SF_CPU_DEADLINE_MISSED = 16;
*/
JANK_SF_CPU_DEADLINE_MISSED = 16,
/**
* @generated from enum value: JANK_SF_GPU_DEADLINE_MISSED = 32;
*/
JANK_SF_GPU_DEADLINE_MISSED = 32,
/**
* @generated from enum value: JANK_APP_DEADLINE_MISSED = 64;
*/
JANK_APP_DEADLINE_MISSED = 64,
/**
* @generated from enum value: JANK_BUFFER_STUFFING = 128;
*/
JANK_BUFFER_STUFFING = 128,
/**
* @generated from enum value: JANK_UNKNOWN = 256;
*/
JANK_UNKNOWN = 256,
/**
* @generated from enum value: JANK_SF_STUFFING = 512;
*/
JANK_SF_STUFFING = 512,
/**
* @generated from enum value: JANK_DROPPED = 1024;
*/
JANK_DROPPED = 1024
}
/**
* Describes the enum perfetto.protos.FrameTimelineEvent.JankType.
*/
export declare const FrameTimelineEvent_JankTypeSchema: GenEnum<FrameTimelineEvent_JankType>;
/**
* Specifies the severity of a jank.
*
* @generated from enum perfetto.protos.FrameTimelineEvent.JankSeverityType
*/
export declare enum FrameTimelineEvent_JankSeverityType {
/**
* @generated from enum value: SEVERITY_UNKNOWN = 0;
*/
SEVERITY_UNKNOWN = 0,
/**
* @generated from enum value: SEVERITY_NONE = 1;
*/
SEVERITY_NONE = 1,
/**
* @generated from enum value: SEVERITY_PARTIAL = 2;
*/
SEVERITY_PARTIAL = 2,
/**
* @generated from enum value: SEVERITY_FULL = 3;
*/
SEVERITY_FULL = 3
}
/**
* Describes the enum perfetto.protos.FrameTimelineEvent.JankSeverityType.
*/
export declare const FrameTimelineEvent_JankSeverityTypeSchema: GenEnum<FrameTimelineEvent_JankSeverityType>;
/**
* Specifies how a frame was presented on screen w.r.t. timing.
* Can be different for SurfaceFrame and DisplayFrame.
*
* @generated from enum perfetto.protos.FrameTimelineEvent.PresentType
*/
export declare enum FrameTimelineEvent_PresentType {
/**
* @generated from enum value: PRESENT_UNSPECIFIED = 0;
*/
PRESENT_UNSPECIFIED = 0,
/**
* @generated from enum value: PRESENT_ON_TIME = 1;
*/
PRESENT_ON_TIME = 1,
/**
* @generated from enum value: PRESENT_LATE = 2;
*/
PRESENT_LATE = 2,
/**
* @generated from enum value: PRESENT_EARLY = 3;
*/
PRESENT_EARLY = 3,
/**
* @generated from enum value: PRESENT_DROPPED = 4;
*/
PRESENT_DROPPED = 4,
/**
* @generated from enum value: PRESENT_UNKNOWN = 5;
*/
PRESENT_UNKNOWN = 5
}
/**
* Describes the enum perfetto.protos.FrameTimelineEvent.PresentType.
*/
export declare const FrameTimelineEvent_PresentTypeSchema: GenEnum<FrameTimelineEvent_PresentType>;
/**
* Specifies if the predictions for the frame are still valid, expired or
* unknown.
*
* @generated from enum perfetto.protos.FrameTimelineEvent.PredictionType
*/
export declare enum FrameTimelineEvent_PredictionType {
/**
* @generated from enum value: PREDICTION_UNSPECIFIED = 0;
*/
PREDICTION_UNSPECIFIED = 0,
/**
* @generated from enum value: PREDICTION_VALID = 1;
*/
PREDICTION_VALID = 1,
/**
* @generated from enum value: PREDICTION_EXPIRED = 2;
*/
PREDICTION_EXPIRED = 2,
/**
* @generated from enum value: PREDICTION_UNKNOWN = 3;
*/
PREDICTION_UNKNOWN = 3
}
/**
* Describes the enum perfetto.protos.FrameTimelineEvent.PredictionType.
*/
export declare const FrameTimelineEvent_PredictionTypeSchema: GenEnum<FrameTimelineEvent_PredictionType>;
//# sourceMappingURL=frame_timeline_event_pb.d.ts.map