Blender V5.0
device/oneapi/queue.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021-2025 Intel Corporation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#pragma once
6
7#ifdef WITH_ONEAPI
8
9# include "device/memory.h"
10# include "device/queue.h"
11
13
14# include "util/unique_ptr.h"
15
17
18class OneapiDevice;
19class device_memory;
20
21/* Base class for OneAPI queues. */
22class OneapiDeviceQueue : public DeviceQueue {
23 public:
24 explicit OneapiDeviceQueue(OneapiDevice *device);
25
26 int num_concurrent_states(const size_t state_size) const override;
27
28 int num_concurrent_busy_states(const size_t state_size) const override;
29
30 int num_sort_partitions(int max_num_paths, uint max_scene_shaders) const override;
31
32 void init_execution() override;
33
34 bool enqueue(DeviceKernel kernel,
35 const int kernel_work_size,
36 const DeviceKernelArguments &args) override;
37
38 bool synchronize() override;
39
40 void zero_to_device(device_memory &mem) override;
41 void copy_to_device(device_memory &mem) override;
42 void copy_from_device(device_memory &mem) override;
43
44 bool supports_local_atomic_sort() const override
45 {
46 return true;
47 }
48
49# ifdef SYCL_LINEAR_MEMORY_INTEROP_AVAILABLE
50 unique_ptr<DeviceGraphicsInterop> graphics_interop_create() override;
51# endif
52
53 protected:
54 OneapiDevice *oneapi_device_;
55 unique_ptr<KernelContext> kernel_context_;
56};
57
59
60#endif /* WITH_ONEAPI */
unsigned int uint
virtual int num_concurrent_busy_states(const size_t state_size) const =0
virtual void copy_from_device(device_memory &mem)=0
virtual bool supports_local_atomic_sort() const
virtual int num_concurrent_states(const size_t state_size) const =0
virtual bool enqueue(DeviceKernel kernel, const int work_size, const DeviceKernelArguments &args)=0
virtual void init_execution()=0
virtual void copy_to_device(device_memory &mem)=0
virtual unique_ptr< DeviceGraphicsInterop > graphics_interop_create()
virtual int num_sort_partitions(int max_num_paths, uint max_scene_shaders) const
virtual bool synchronize()=0
virtual void zero_to_device(device_memory &mem)=0
#define CCL_NAMESPACE_END
DeviceKernel