perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
560 lines (488 loc) • 20.6 kB
text/typescript
//
// 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);