Blender V5.0
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/* Constant Globals */
6
7#pragma once
8
9#include "kernel/types.h"
14#include "util/color.h"
19/* NOTE(@nsirgien): With SYCL we can't declare __constant__ global variable, which will be
20 * accessible from device code, like it has been done for Cycles CUDA backend. So, the backend will
21 * allocate this "constant" memory regions and store pointers to them in oneAPI context class */
28#define KERNEL_DATA_ARRAY(type, name) const type *__##name = nullptr;
30#undef KERNEL_DATA_ARRAY
32 const KernelData *__data;
34#ifdef WITH_ONEAPI_SYCL_HOST_TASK
35 size_t nd_item_local_id_0;
36 size_t nd_item_local_range_0;
37 size_t nd_item_group_id_0;
38 size_t nd_item_group_range_0;
39 size_t nd_item_global_id_0;
40 size_t nd_item_global_range_0;
41#else
42 sycl::kernel_handler kernel_handler;
43#endif
44};
48#define kernel_data (*(__data))
49#define kernel_integrator_state (*(integrator_state))
51/* data lookup defines */
53#define kernel_data_fetch(name, index) __##name[index]
54#define kernel_data_array(name) __##name
const ThreadKernelGlobalsCPU * KernelGlobals
#define CCL_NAMESPACE_END
#define ccl_restrict
#define ccl_global
const KernelData * __data
sycl::kernel_handler kernel_handler
CCL_NAMESPACE_END IntegratorStateGPU * integrator_state