Files
UnrealEngine/Engine/Source/ThirdParty/Intel/ISPC/ispc-1.24.0/ispcrt/detail/TaskQueue.h
2025-05-18 13:04:45 +08:00

33 lines
819 B
C++

// Copyright 2020-2023 Intel Corporation
// SPDX-License-Identifier: BSD-3-Clause
#pragma once
#include "Fence.h"
#include "Future.h"
#include "Kernel.h"
#include "MemoryView.h"
namespace ispcrt {
namespace base {
struct TaskQueue : public RefCounted {
TaskQueue() = default;
virtual ~TaskQueue() = default;
virtual void barrier() = 0;
virtual void copyToHost(base::MemoryView &mv) = 0;
virtual void copyToDevice(base::MemoryView &mv) = 0;
virtual void copyMemoryView(base::MemoryView &mv_dst, base::MemoryView &mv_src, const size_t size) = 0;
virtual base::Future *launch(Kernel &k, base::MemoryView *params, size_t dim0, size_t dim1, size_t dim2) = 0;
virtual void sync() = 0;
virtual void *taskQueueNativeHandle() const = 0;
};
} // namespace base
} // namespace ispcrt