11# include <OSL/oslconfig.h>
12# include <OSL/oslversion.h>
20# include <optix_function_table_definition.h>
25#ifndef OPTIX_FUNCTION_TABLE_SYMBOL
26# define OPTIX_FUNCTION_TABLE_SYMBOL g_optixFunctionTable
44 const OptixResult
result = optixInit();
46 if (
result == OPTIX_ERROR_UNSUPPORTED_ABI_VERSION) {
47 LOG_WARNING <<
"OptiX initialization failed because the installed NVIDIA driver is too old. "
48 "Please update to the latest driver first!";
51 if (
result != OPTIX_SUCCESS) {
52 LOG_WARNING <<
"OptiX initialization failed with error code " << (
unsigned int)
result;
66 devices.reserve(cuda_devices.size());
73 cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, info.num);
81# if defined(WITH_OSL) && defined(OSL_USE_OPTIX) && \
82 (OSL_VERSION_MINOR >= 13 || OSL_VERSION_MAJOR > 1)
86# if defined(WITH_OPENIMAGEDENOISE)
87# if OIDN_VERSION >= 20300
88 if (oidnIsCUDADeviceSupported(info.num)) {
90 if (OIDNDenoiserGPU::is_device_supported(info)) {
96 devices.push_back(info);
110 return make_unique<OptiXDevice>(info, stats, profiler, headless);
117 LOG_FATAL <<
"Request to create OptiX device without compiled-in support. Should never happen.";
@ DENOISER_OPENIMAGEDENOISE
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN bool device_cuda_init()
CCL_NAMESPACE_BEGIN bool device_optix_init()
void device_optix_info(const vector< DeviceInfo > &cuda_devices, vector< DeviceInfo > &devices)
#define OPTIX_FUNCTION_TABLE_SYMBOL
unique_ptr< Device > device_optix_create(const DeviceInfo &info, Stats &stats, Profiler &profiler, bool headless)
#define assert(assertion)