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

syntax = "proto3";

package chromiumos.config.api.test.results.graphics.v1;

option go_package = "go.chromium.org/chromiumos/config/go/api/test/results/graphics/v1;graphics";

import "chromiumos/config/api/test/results/graphics/v1/trace_id.proto";

// Details about a graphics trace file.
// Next Tag: 10
message Trace {
  // Global unique trace identifier.
  TraceId id = 1;
  string filename = 2;
  // Size of trace in bytes.
  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;
}
