UNPKG

perfetto-protos

Version:

Perfetto protos exposed via protobuf-es for browser and node

560 lines (488 loc) 20.6 kB
// // Copyright (C) 2020 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/frame_timeline_event.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 { Message } from "@bufbuild/protobuf"; /** * Describes the file protos/perfetto/trace/android/frame_timeline_event.proto. */ export const file_protos_perfetto_trace_android_frame_timeline_event: GenFile = /*@__PURE__*/ fileDesc("Cjhwcm90b3MvcGVyZmV0dG8vdHJhY2UvYW5kcm9pZC9mcmFtZV90aW1lbGluZV9ldmVudC5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIpURChJGcmFtZVRpbWVsaW5lRXZlbnQSZQocZXhwZWN0ZWRfZGlzcGxheV9mcmFtZV9zdGFydBgBIAEoCzI9LnBlcmZldHRvLnByb3Rvcy5GcmFtZVRpbWVsaW5lRXZlbnQuRXhwZWN0ZWREaXNwbGF5RnJhbWVTdGFydEgAEmEKGmFjdHVhbF9kaXNwbGF5X2ZyYW1lX3N0YXJ0GAIgASgLMjsucGVyZmV0dG8ucHJvdG9zLkZyYW1lVGltZWxpbmVFdmVudC5BY3R1YWxEaXNwbGF5RnJhbWVTdGFydEgAEmUKHGV4cGVjdGVkX3N1cmZhY2VfZnJhbWVfc3RhcnQYAyABKAsyPS5wZXJmZXR0by5wcm90b3MuRnJhbWVUaW1lbGluZUV2ZW50LkV4cGVjdGVkU3VyZmFjZUZyYW1lU3RhcnRIABJhChphY3R1YWxfc3VyZmFjZV9mcmFtZV9zdGFydBgEIAEoCzI7LnBlcmZldHRvLnByb3Rvcy5GcmFtZVRpbWVsaW5lRXZlbnQuQWN0dWFsU3VyZmFjZUZyYW1lU3RhcnRIABJBCglmcmFtZV9lbmQYBSABKAsyLC5wZXJmZXR0by5wcm90b3MuRnJhbWVUaW1lbGluZUV2ZW50LkZyYW1lRW5kSAAaeAoZRXhwZWN0ZWRTdXJmYWNlRnJhbWVTdGFydBIOCgZjb29raWUYASABKAMSDQoFdG9rZW4YAiABKAMSGwoTZGlzcGxheV9mcmFtZV90b2tlbhgDIAEoAxILCgNwaWQYBCABKAUSEgoKbGF5ZXJfbmFtZRgFIAEoCRqzAwoXQWN0dWFsU3VyZmFjZUZyYW1lU3RhcnQSDgoGY29va2llGAEgASgDEg0KBXRva2VuGAIgASgDEhsKE2Rpc3BsYXlfZnJhbWVfdG9rZW4YAyABKAMSCwoDcGlkGAQgASgFEhIKCmxheWVyX25hbWUYBSABKAkSRQoMcHJlc2VudF90eXBlGAYgASgOMi8ucGVyZmV0dG8ucHJvdG9zLkZyYW1lVGltZWxpbmVFdmVudC5QcmVzZW50VHlwZRIWCg5vbl90aW1lX2ZpbmlzaBgHIAEoCBIXCg9ncHVfY29tcG9zaXRpb24YCCABKAgSEQoJamFua190eXBlGAkgASgFEksKD3ByZWRpY3Rpb25fdHlwZRgKIAEoDjIyLnBlcmZldHRvLnByb3Rvcy5GcmFtZVRpbWVsaW5lRXZlbnQuUHJlZGljdGlvblR5cGUSEQoJaXNfYnVmZmVyGAsgASgIElAKEmphbmtfc2V2ZXJpdHlfdHlwZRgMIAEoDjI0LnBlcmZldHRvLnByb3Rvcy5GcmFtZVRpbWVsaW5lRXZlbnQuSmFua1NldmVyaXR5VHlwZRpHChlFeHBlY3RlZERpc3BsYXlGcmFtZVN0YXJ0Eg4KBmNvb2tpZRgBIAEoAxINCgV0b2tlbhgCIAEoAxILCgNwaWQYAyABKAUa7wIKF0FjdHVhbERpc3BsYXlGcmFtZVN0YXJ0Eg4KBmNvb2tpZRgBIAEoAxINCgV0b2tlbhgCIAEoAxILCgNwaWQYAyABKAUSRQoMcHJlc2VudF90eXBlGAQgASgOMi8ucGVyZmV0dG8ucHJvdG9zLkZyYW1lVGltZWxpbmVFdmVudC5QcmVzZW50VHlwZRIWCg5vbl90aW1lX2ZpbmlzaBgFIAEoCBIXCg9ncHVfY29tcG9zaXRpb24YBiABKAgSEQoJamFua190eXBlGAcgASgFEksKD3ByZWRpY3Rpb25fdHlwZRgIIAEoDjIyLnBlcmZldHRvLnByb3Rvcy5GcmFtZVRpbWVsaW5lRXZlbnQuUHJlZGljdGlvblR5cGUSUAoSamFua19zZXZlcml0eV90eXBlGAkgASgOMjQucGVyZmV0dG8ucHJvdG9zLkZyYW1lVGltZWxpbmVFdmVudC5KYW5rU2V2ZXJpdHlUeXBlGhoKCEZyYW1lRW5kEg4KBmNvb2tpZRgBIAEoAyKwAgoISmFua1R5cGUSFAoQSkFOS19VTlNQRUNJRklFRBAAEg0KCUpBTktfTk9ORRABEhYKEkpBTktfU0ZfU0NIRURVTElORxACEhkKFUpBTktfUFJFRElDVElPTl9FUlJPUhAEEhQKEEpBTktfRElTUExBWV9IQUwQCBIfChtKQU5LX1NGX0NQVV9ERUFETElORV9NSVNTRUQQEBIfChtKQU5LX1NGX0dQVV9ERUFETElORV9NSVNTRUQQIBIcChhKQU5LX0FQUF9ERUFETElORV9NSVNTRUQQQBIZChRKQU5LX0JVRkZFUl9TVFVGRklORxCAARIRCgxKQU5LX1VOS05PV04QgAISFQoQSkFOS19TRl9TVFVGRklORxCABBIRCgxKQU5LX0RST1BQRUQQgAgiZAoQSmFua1NldmVyaXR5VHlwZRIUChBTRVZFUklUWV9VTktOT1dOEAASEQoNU0VWRVJJVFlfTk9ORRABEhQKEFNFVkVSSVRZX1BBUlRJQUwQAhIRCg1TRVZFUklUWV9GVUxMEAMiigEKC1ByZXNlbnRUeXBlEhcKE1BSRVNFTlRfVU5TUEVDSUZJRUQQABITCg9QUkVTRU5UX09OX1RJTUUQARIQCgxQUkVTRU5UX0xBVEUQAhIRCg1QUkVTRU5UX0VBUkxZEAMSEwoPUFJFU0VOVF9EUk9QUEVEEAQSEwoPUFJFU0VOVF9VTktOT1dOEAUicgoOUHJlZGljdGlvblR5cGUSGgoWUFJFRElDVElPTl9VTlNQRUNJRklFRBAAEhQKEFBSRURJQ1RJT05fVkFMSUQQARIWChJQUkVESUNUSU9OX0VYUElSRUQQAhIWChJQUkVESUNUSU9OX1VOS05PV04QA0IHCgVldmVudA"); /** * 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 const FrameTimelineEventSchema: GenMessage<FrameTimelineEvent> = /*@__PURE__*/ messageDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0); /** * 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 const FrameTimelineEvent_ExpectedSurfaceFrameStartSchema: GenMessage<FrameTimelineEvent_ExpectedSurfaceFrameStart> = /*@__PURE__*/ messageDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 0); /** * 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 const FrameTimelineEvent_ActualSurfaceFrameStartSchema: GenMessage<FrameTimelineEvent_ActualSurfaceFrameStart> = /*@__PURE__*/ messageDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 1); /** * 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 const FrameTimelineEvent_ExpectedDisplayFrameStartSchema: GenMessage<FrameTimelineEvent_ExpectedDisplayFrameStart> = /*@__PURE__*/ messageDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 2); /** * 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 const FrameTimelineEvent_ActualDisplayFrameStartSchema: GenMessage<FrameTimelineEvent_ActualDisplayFrameStart> = /*@__PURE__*/ messageDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 3); /** * 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 const FrameTimelineEvent_FrameEndSchema: GenMessage<FrameTimelineEvent_FrameEnd> = /*@__PURE__*/ messageDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 4); /** * Specifies the reason(s) most likely to have caused the jank. * Used as a bitmask. * * @generated from enum perfetto.protos.FrameTimelineEvent.JankType */ export 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 const FrameTimelineEvent_JankTypeSchema: GenEnum<FrameTimelineEvent_JankType> = /*@__PURE__*/ enumDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 0); /** * Specifies the severity of a jank. * * @generated from enum perfetto.protos.FrameTimelineEvent.JankSeverityType */ export 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 const FrameTimelineEvent_JankSeverityTypeSchema: GenEnum<FrameTimelineEvent_JankSeverityType> = /*@__PURE__*/ enumDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 1); /** * 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 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 const FrameTimelineEvent_PresentTypeSchema: GenEnum<FrameTimelineEvent_PresentType> = /*@__PURE__*/ enumDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 2); /** * Specifies if the predictions for the frame are still valid, expired or * unknown. * * @generated from enum perfetto.protos.FrameTimelineEvent.PredictionType */ export 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 const FrameTimelineEvent_PredictionTypeSchema: GenEnum<FrameTimelineEvent_PredictionType> = /*@__PURE__*/ enumDesc(file_protos_perfetto_trace_android_frame_timeline_event, 0, 3);