Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/util/util_debug.h
| Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | struct CPU { | ||||
| } | } | ||||
| /* Requested BVH layout. | /* Requested BVH layout. | ||||
| * | * | ||||
| * By default the fastest will be used. For debugging the BVH used by other | * By default the fastest will be used. For debugging the BVH used by other | ||||
| * CPUs and GPUs can be selected here instead. | * CPUs and GPUs can be selected here instead. | ||||
| */ | */ | ||||
| BVHLayout bvh_layout; | BVHLayout bvh_layout; | ||||
| /* Whether split kernel is used */ | |||||
| bool split_kernel; | |||||
| }; | }; | ||||
| /* Descriptor of CUDA feature-set to be used. */ | /* Descriptor of CUDA feature-set to be used. */ | ||||
| struct CUDA { | struct CUDA { | ||||
| CUDA(); | CUDA(); | ||||
| /* Reset flags to their defaults. */ | /* Reset flags to their defaults. */ | ||||
| void reset(); | void reset(); | ||||
| /* Whether adaptive feature based runtime compile is enabled or not. | /* Whether adaptive feature based runtime compile is enabled or not. | ||||
| * Requires the CUDA Toolkit and only works on Linux atm. */ | * Requires the CUDA Toolkit and only works on Linux atm. */ | ||||
| bool adaptive_compile; | bool adaptive_compile; | ||||
| /* Whether split kernel is used */ | |||||
| bool split_kernel; | |||||
| }; | }; | ||||
| /* Descriptor of OptiX feature-set to be used. */ | /* Descriptor of OptiX feature-set to be used. */ | ||||
| struct OptiX { | struct OptiX { | ||||
| OptiX(); | OptiX(); | ||||
| /* Reset flags to their defaults. */ | /* Reset flags to their defaults. */ | ||||
| void reset(); | void reset(); | ||||
| /* Number of CUDA streams to launch kernels concurrently from. */ | /* Load OptiX module with debug capabilities. Will lower logging verbosity level, enable | ||||
| int cuda_streams; | * validations, and lower optimization level. */ | ||||
| bool use_debug; | |||||
| /* Use OptiX curves API for hair instead of custom implementation. */ | |||||
| bool curves_api; | |||||
| }; | |||||
| /* Descriptor of OpenCL feature-set to be used. */ | |||||
| struct OpenCL { | |||||
| OpenCL(); | |||||
| /* Reset flags to their defaults. */ | |||||
| void reset(); | |||||
| /* Available device types. | |||||
| * Only gives a hint which devices to let user to choose from, does not | |||||
| * try to use any sort of optimal device or so. | |||||
| */ | |||||
| enum DeviceType { | |||||
| /* None of OpenCL devices will be used. */ | |||||
| DEVICE_NONE, | |||||
| /* All OpenCL devices will be used. */ | |||||
| DEVICE_ALL, | |||||
| /* Default system OpenCL device will be used. */ | |||||
| DEVICE_DEFAULT, | |||||
| /* Host processor will be used. */ | |||||
| DEVICE_CPU, | |||||
| /* GPU devices will be used. */ | |||||
| DEVICE_GPU, | |||||
| /* Dedicated OpenCL accelerator device will be used. */ | |||||
| DEVICE_ACCELERATOR, | |||||
| }; | |||||
| /* Available kernel types. */ | |||||
| enum KernelType { | |||||
| /* Do automated guess which kernel to use, based on the officially | |||||
| * supported GPUs and such. | |||||
| */ | |||||
| KERNEL_DEFAULT, | |||||
| /* Force mega kernel to be used. */ | |||||
| KERNEL_MEGA, | |||||
| /* Force split kernel to be used. */ | |||||
| KERNEL_SPLIT, | |||||
| }; | |||||
| /* Requested device type. */ | |||||
| DeviceType device_type; | |||||
| /* Use debug version of the kernel. */ | |||||
| bool debug; | |||||
| /* TODO(mai): Currently this is only for OpenCL, but we should have it implemented for all | |||||
| * devices. */ | |||||
| /* Artificial memory limit in bytes (0 if disabled). */ | |||||
| size_t mem_limit; | |||||
| }; | }; | ||||
| /* Get instance of debug flags registry. */ | /* Get instance of debug flags registry. */ | ||||
| static DebugFlags &get() | static DebugFlags &get() | ||||
| { | { | ||||
| static DebugFlags instance; | static DebugFlags instance; | ||||
| return instance; | return instance; | ||||
| } | } | ||||
| /* Reset flags to their defaults. */ | /* Reset flags to their defaults. */ | ||||
| void reset(); | void reset(); | ||||
| /* Requested CPU flags. */ | /* Requested CPU flags. */ | ||||
| CPU cpu; | CPU cpu; | ||||
| /* Requested CUDA flags. */ | /* Requested CUDA flags. */ | ||||
| CUDA cuda; | CUDA cuda; | ||||
| /* Requested OptiX flags. */ | /* Requested OptiX flags. */ | ||||
| OptiX optix; | OptiX optix; | ||||
| /* Requested OpenCL flags. */ | |||||
| OpenCL opencl; | |||||
| private: | private: | ||||
| DebugFlags(); | DebugFlags(); | ||||
| #if (__cplusplus > 199711L) | #if (__cplusplus > 199711L) | ||||
| public: | public: | ||||
| explicit DebugFlags(DebugFlags const & /*other*/) = delete; | explicit DebugFlags(DebugFlags const & /*other*/) = delete; | ||||
| void operator=(DebugFlags const & /*other*/) = delete; | void operator=(DebugFlags const & /*other*/) = delete; | ||||
| #else | #else | ||||
| Show All 19 Lines | |||||