/*
 * 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
