| /* |
| * Copyright 2016 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef FenceSync_DEFINED |
| #define FenceSync_DEFINED |
| |
| #include "include/core/SkTypes.h" |
| |
| namespace sk_gpu_test { |
| |
| using PlatformFence = uint64_t; |
| static constexpr PlatformFence kInvalidFence = 0; |
| |
| /* |
| * This class provides an interface to interact with fence syncs. A fence sync is an object that the |
| * client can insert into the GPU command stream, and then at any future time, wait until all |
| * commands that were issued before the fence have completed. |
| */ |
| class FenceSync { |
| public: |
| [[nodiscard]] virtual PlatformFence insertFence() const = 0; |
| virtual bool waitFence(PlatformFence) const = 0; |
| virtual void deleteFence(PlatformFence) const = 0; |
| |
| virtual bool validate() const { return true; } |
| |
| virtual ~FenceSync() {} |
| }; |
| |
| } // namespace sk_gpu_test |
| |
| #endif |