Blender V5.0
debug.cpp
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#include "util/debug.h"
6
7#include <cstdlib>
8
9#include "util/log.h"
10
12
17
19{
20#define STRINGIFY(x) #x
21#define CHECK_CPU_FLAGS(flag, env) \
22 do { \
23 flag = (getenv(env) == nullptr); \
24 if (!flag) { \
25 LOG_INFO << "Disabling " << STRINGIFY(flag) << " instruction set."; \
26 } \
27 } while (0)
28
29 CHECK_CPU_FLAGS(avx2, "CYCLES_CPU_NO_AVX2");
30
31#undef STRINGIFY
32#undef CHECK_CPU_FLAGS
33
35}
36
41
46
51
53{
54 if (getenv("CYCLES_CUDA_ADAPTIVE_COMPILE") != nullptr) {
55 adaptive_compile = true;
56 }
57}
58
60{
61 if (getenv("CYCLES_HIP_ADAPTIVE_COMPILE") != nullptr) {
62 adaptive_compile = true;
63 }
64}
65
67{
68 if (getenv("CYCLES_METAL_ADAPTIVE_COMPILE") != nullptr) {
69 adaptive_compile = true;
70 }
71
72 if (const char *str = getenv("CYCLES_METAL_LOCAL_ATOMIC_SORT")) {
73 use_local_atomic_sort = (atoi(str) != 0);
74 }
75
76 if (const char *str = getenv("CYCLES_METAL_NANOVDB")) {
77 use_nanovdb = (atoi(str) != 0);
78 }
79
80 if (const char *str = getenv("CYCLES_METAL_ASYNC_PSO_CREATION")) {
81 use_async_pso_creation = (atoi(str) != 0);
82 }
83
84 if (const char *str = getenv("CYCLES_METALRT_PCMI")) {
85 use_metalrt_pcmi = (atoi(str) != 0);
86 }
87}
88
93
95{
96 use_debug = false;
97}
98
100{
101 cpu.reset();
102 cuda.reset();
103 optix.reset();
104 metal.reset();
105}
106
CPU cpu
Definition debug.h:120
void reset()
Definition debug.cpp:99
OptiX optix
Definition debug.h:126
CUDA cuda
Definition debug.h:123
Metal metal
Definition debug.h:132
#define CHECK_CPU_FLAGS(flag, env)
#define CCL_NAMESPACE_END
#define str(s)
@ BVH_LAYOUT_AUTO
void reset()
Definition debug.cpp:18
BVHLayout bvh_layout
Definition debug.h:47
bool adaptive_compile
Definition debug.h:59
bool adaptive_compile
Definition debug.h:70
void reset()
Definition debug.cpp:59
bool use_async_pso_creation
Definition debug.h:102
bool use_metalrt_pcmi
Definition debug.h:106
bool adaptive_compile
Definition debug.h:93
bool use_nanovdb
Definition debug.h:99
bool use_local_atomic_sort
Definition debug.h:96