//
// Copyright (C) 2019 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/graphics_frame_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/graphics_frame_event.proto.
 */
export const file_protos_perfetto_trace_android_graphics_frame_event: GenFile = /*@__PURE__*/
  fileDesc("Cjhwcm90b3MvcGVyZmV0dG8vdHJhY2UvYW5kcm9pZC9ncmFwaGljc19mcmFtZV9ldmVudC5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIvEDChJHcmFwaGljc0ZyYW1lRXZlbnQSRQoMYnVmZmVyX2V2ZW50GAEgASgLMi8ucGVyZmV0dG8ucHJvdG9zLkdyYXBoaWNzRnJhbWVFdmVudC5CdWZmZXJFdmVudBqiAQoLQnVmZmVyRXZlbnQSFAoMZnJhbWVfbnVtYmVyGAEgASgNEkEKBHR5cGUYAiABKA4yMy5wZXJmZXR0by5wcm90b3MuR3JhcGhpY3NGcmFtZUV2ZW50LkJ1ZmZlckV2ZW50VHlwZRISCgpsYXllcl9uYW1lGAMgASgJEhMKC2R1cmF0aW9uX25zGAQgASgEEhEKCWJ1ZmZlcl9pZBgFIAEoDSLuAQoPQnVmZmVyRXZlbnRUeXBlEg8KC1VOU1BFQ0lGSUVEEAASCwoHREVRVUVVRRABEgkKBVFVRVVFEAISCAoEUE9TVBADEhEKDUFDUVVJUkVfRkVOQ0UQBBIJCgVMQVRDSBAFEhoKFkhXQ19DT01QT1NJVElPTl9RVUVVRUQQBhIYChRGQUxMQkFDS19DT01QT1NJVElPThAHEhEKDVBSRVNFTlRfRkVOQ0UQCBIRCg1SRUxFQVNFX0ZFTkNFEAkSCgoGTU9ESUZZEAoSCgoGREVUQUNIEAsSCgoGQVRUQUNIEAwSCgoGQ0FOQ0VMEA0");

/**
 * Generated by Android's SurfaceFlinger.
 *
 * @generated from message perfetto.protos.GraphicsFrameEvent
 */
export type GraphicsFrameEvent = Message<"perfetto.protos.GraphicsFrameEvent"> & {
  /**
   * @generated from field: optional perfetto.protos.GraphicsFrameEvent.BufferEvent buffer_event = 1;
   */
  bufferEvent?: GraphicsFrameEvent_BufferEvent;
};

/**
 * Describes the message perfetto.protos.GraphicsFrameEvent.
 * Use `create(GraphicsFrameEventSchema)` to create a new message.
 */
export const GraphicsFrameEventSchema: GenMessage<GraphicsFrameEvent> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_android_graphics_frame_event, 0);

/**
 * @generated from message perfetto.protos.GraphicsFrameEvent.BufferEvent
 */
export type GraphicsFrameEvent_BufferEvent = Message<"perfetto.protos.GraphicsFrameEvent.BufferEvent"> & {
  /**
   * @generated from field: optional uint32 frame_number = 1;
   */
  frameNumber: number;

  /**
   * @generated from field: optional perfetto.protos.GraphicsFrameEvent.BufferEventType type = 2;
   */
  type: GraphicsFrameEvent_BufferEventType;

  /**
   * @generated from field: optional string layer_name = 3;
   */
  layerName: string;

  /**
   * If no duration is set, the event is an instant event.
   *
   * @generated from field: optional uint64 duration_ns = 4;
   */
  durationNs: bigint;

  /**
   * Unique buffer identifier.
   *
   * @generated from field: optional uint32 buffer_id = 5;
   */
  bufferId: number;
};

/**
 * Describes the message perfetto.protos.GraphicsFrameEvent.BufferEvent.
 * Use `create(GraphicsFrameEvent_BufferEventSchema)` to create a new message.
 */
export const GraphicsFrameEvent_BufferEventSchema: GenMessage<GraphicsFrameEvent_BufferEvent> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_android_graphics_frame_event, 0, 0);

/**
 * @generated from enum perfetto.protos.GraphicsFrameEvent.BufferEventType
 */
export enum GraphicsFrameEvent_BufferEventType {
  /**
   * @generated from enum value: UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: DEQUEUE = 1;
   */
  DEQUEUE = 1,

  /**
   * @generated from enum value: QUEUE = 2;
   */
  QUEUE = 2,

  /**
   * @generated from enum value: POST = 3;
   */
  POST = 3,

  /**
   * @generated from enum value: ACQUIRE_FENCE = 4;
   */
  ACQUIRE_FENCE = 4,

  /**
   * @generated from enum value: LATCH = 5;
   */
  LATCH = 5,

  /**
   * HWC will compose this buffer
   *
   * @generated from enum value: HWC_COMPOSITION_QUEUED = 6;
   */
  HWC_COMPOSITION_QUEUED = 6,

  /**
   * renderEngine composition
   *
   * @generated from enum value: FALLBACK_COMPOSITION = 7;
   */
  FALLBACK_COMPOSITION = 7,

  /**
   * @generated from enum value: PRESENT_FENCE = 8;
   */
  PRESENT_FENCE = 8,

  /**
   * @generated from enum value: RELEASE_FENCE = 9;
   */
  RELEASE_FENCE = 9,

  /**
   * @generated from enum value: MODIFY = 10;
   */
  MODIFY = 10,

  /**
   * @generated from enum value: DETACH = 11;
   */
  DETACH = 11,

  /**
   * @generated from enum value: ATTACH = 12;
   */
  ATTACH = 12,

  /**
   * @generated from enum value: CANCEL = 13;
   */
  CANCEL = 13,
}

/**
 * Describes the enum perfetto.protos.GraphicsFrameEvent.BufferEventType.
 */
export const GraphicsFrameEvent_BufferEventTypeSchema: GenEnum<GraphicsFrameEvent_BufferEventType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_android_graphics_frame_event, 0, 0);

