// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package test.custom_results.graphics;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/test/custom_results/graphics";

import "trace_id.proto";

// Details about a graphics trace file.
// Next Tag: 10
message Trace {
  // Global unique trace identifier.
  TraceId id = 1;
  string filename = 2;
  uint64 size = 3;

  // Source of the trace.
  string source = 4;

  // Source specific identifier for the program being traced. (eg Steam ID)
  string application_id = 5;

  // Number of frames in the trace.
  uint32 frame_count = 6;

  message Range {
    uint32 start = 1;
    uint32 end = 2;
  }

  // The range of frames after the game began to interact.
  Range frame_range = 7;

  // Frames that are worth checking for pixel correctness.
  repeated uint32 key_frames = 8;

  // Frames that are worth looping on to gauge performance.
  repeated uint32 loop_frames = 9;

  // TODO(davidriley): Add GL/Vulkan and profile.
  // TODO(davidriley): Add extensions used.
  // TODO(davidriley): Add compressed size?
}

message TraceList {
  repeated Trace value = 1;
}
