Coverage Report

Created: 2024-05-20 07:14

/src/skia/tools/gpu/FenceSync.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2016 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
8
#ifndef FenceSync_DEFINED
9
#define FenceSync_DEFINED
10
11
#include "include/core/SkTypes.h"
12
13
namespace sk_gpu_test {
14
15
using PlatformFence = uint64_t;
16
static constexpr PlatformFence kInvalidFence = 0;
17
18
/*
19
 * This class provides an interface to interact with fence syncs. A fence sync is an object that the
20
 * client can insert into the GPU command stream, and then at any future time, wait until all
21
 * commands that were issued before the fence have completed.
22
 */
23
class FenceSync {
24
public:
25
    [[nodiscard]] virtual PlatformFence insertFence() const = 0;
26
    virtual bool waitFence(PlatformFence) const = 0;
27
    virtual void deleteFence(PlatformFence) const = 0;
28
29
0
    virtual bool validate() const { return true; }
30
31
0
    virtual ~FenceSync() {}
32
};
33
34
}  // namespace sk_gpu_test
35
36
#endif