summaryrefslogtreecommitdiff
path: root/chromium/gpu/ipc/common/flush_params.h
blob: 257b534a8c8809bfdbfdcfa2e31e5630668b8632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef GPU_IPC_COMMON_FLUSH_PARAMS_H_
#define GPU_IPC_COMMON_FLUSH_PARAMS_H_

#include <stdint.h>
#include <vector>

#include "gpu/command_buffer/common/sync_token.h"
#include "gpu/gpu_export.h"

namespace gpu {

struct GPU_EXPORT FlushParams {
  FlushParams();
  FlushParams(const FlushParams& other);
  FlushParams(FlushParams&& other);
  ~FlushParams();
  FlushParams& operator=(const FlushParams& other);
  FlushParams& operator=(FlushParams&& other);

  // Route ID of the command buffer for this flush.
  int32_t route_id;
  // Client put offset. Service get offset is updated in shared memory.
  int32_t put_offset;
  // Increasing counter for the flush.
  uint32_t flush_id;
  // Indicates whether a snapshot was requested so the service can wait for
  // presentation of the swap when there is a snapshot request.
  bool snapshot_requested;
  // Sync token dependencies of the flush. These are sync tokens for which waits
  // are in the commands that are part of this flush.
  std::vector<SyncToken> sync_token_fences;
};

}  // namespace gpu

#endif  // GPU_IPC_COMMON_FLUSH_PARAMS_H_