Blender V4.3
device/oneapi/globals.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021-2022 Intel Corporation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#pragma once
6
8#include "kernel/types.h"
10
12
13/* NOTE(@nsirgien): With SYCL we can't declare __constant__ global variable, which will be
14 * accessible from device code, like it has been done for Cycles CUDA backend. So, the backend will
15 * allocate this "constant" memory regions and store pointers to them in oneAPI context class */
16
19
20typedef struct KernelGlobalsGPU {
21
22#define KERNEL_DATA_ARRAY(type, name) const type *__##name = nullptr;
23#include "kernel/data_arrays.h"
24#undef KERNEL_DATA_ARRAY
27
28#ifdef WITH_ONEAPI_SYCL_HOST_TASK
29 size_t nd_item_local_id_0;
30 size_t nd_item_local_range_0;
31 size_t nd_item_group_id_0;
32 size_t nd_item_group_range_0;
33 size_t nd_item_global_id_0;
34 size_t nd_item_global_range_0;
35#else
36 sycl::kernel_handler kernel_handler;
37#endif
39
41
42#define kernel_data (*(__data))
43#define kernel_integrator_state (*(integrator_state))
44
45/* data lookup defines */
46
47#define kernel_data_fetch(name, index) __##name[index]
48#define kernel_data_array(name) __##name
49
#define ccl_restrict
#define ccl_global
#define CCL_NAMESPACE_END
struct KernelGlobalsGPU KernelGlobalsGPU
ccl_global KernelGlobalsGPU *ccl_restrict KernelGlobals
KernelData
const KernelData * __data
IntegratorStateGPU * integrator_state
sycl::kernel_handler kernel_handler