Blender
V4.3
intern
cycles
util
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 <stdlib.h>
8
9
#include "
bvh/params.h
"
10
11
#include "
util/log.h
"
12
#include "
util/string.h
"
13
14
CCL_NAMESPACE_BEGIN
15
16
DebugFlags::CPU::CPU
()
17
{
18
reset
();
19
}
20
21
void
DebugFlags::CPU::reset
()
22
{
23
#define STRINGIFY(x) #x
24
#define CHECK_CPU_FLAGS(flag, env) \
25
do { \
26
flag = (getenv(env) == NULL); \
27
if (!flag) { \
28
VLOG_INFO << "Disabling " << STRINGIFY(flag) << " instruction set."; \
29
} \
30
} while (0)
31
32
CHECK_CPU_FLAGS
(
avx2
,
"CYCLES_CPU_NO_AVX2"
);
33
CHECK_CPU_FLAGS
(
sse42
,
"CYCLES_CPU_NO_SSE42"
);
34
35
#undef STRINGIFY
36
#undef CHECK_CPU_FLAGS
37
38
bvh_layout
=
BVH_LAYOUT_AUTO
;
39
}
40
41
DebugFlags::CUDA::CUDA
()
42
{
43
reset
();
44
}
45
46
DebugFlags::HIP::HIP
()
47
{
48
reset
();
49
}
50
51
DebugFlags::Metal::Metal
()
52
{
53
reset
();
54
}
55
56
void
DebugFlags::CUDA::reset
()
57
{
58
if
(getenv(
"CYCLES_CUDA_ADAPTIVE_COMPILE"
) !=
NULL
) {
59
adaptive_compile
=
true
;
60
}
61
}
62
63
void
DebugFlags::HIP::reset
()
64
{
65
if
(getenv(
"CYCLES_HIP_ADAPTIVE_COMPILE"
) !=
NULL
) {
66
adaptive_compile
=
true
;
67
}
68
}
69
70
void
DebugFlags::Metal::reset
()
71
{
72
if
(getenv(
"CYCLES_METAL_ADAPTIVE_COMPILE"
) !=
NULL
) {
73
adaptive_compile
=
true
;
74
}
75
76
if
(
auto
str
= getenv(
"CYCLES_METAL_LOCAL_ATOMIC_SORT"
)) {
77
use_local_atomic_sort
= (atoi(
str
) != 0);
78
}
79
80
if
(
auto
str
= getenv(
"CYCLES_METAL_NANOVDB"
)) {
81
use_nanovdb
= (atoi(
str
) != 0);
82
}
83
84
if
(
auto
str
= getenv(
"CYCLES_METAL_ASYNC_PSO_CREATION"
)) {
85
use_async_pso_creation
= (atoi(
str
) != 0);
86
}
87
}
88
89
DebugFlags::OptiX::OptiX
()
90
{
91
reset
();
92
}
93
94
void
DebugFlags::OptiX::reset
()
95
{
96
use_debug
=
false
;
97
}
98
99
DebugFlags::DebugFlags()
100
{
101
/* Nothing for now. */
102
}
103
104
void
DebugFlags::reset
()
105
{
106
cpu
.reset();
107
cuda
.reset();
108
optix
.reset();
109
metal
.reset();
110
}
111
112
CCL_NAMESPACE_END
DebugFlags::cpu
CPU cpu
Definition
debug.h:117
DebugFlags::reset
void reset()
Definition
debug.cpp:104
DebugFlags::optix
OptiX optix
Definition
debug.h:123
DebugFlags::cuda
CUDA cuda
Definition
debug.h:120
DebugFlags::metal
Metal metal
Definition
debug.h:129
CHECK_CPU_FLAGS
#define CHECK_CPU_FLAGS(flag, env)
debug.h
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition
device/cuda/compat.h:10
NULL
#define NULL
Definition
device/metal/compat.h:315
str
#define str(s)
Definition
ffmpeg_codecs.cc:103
BVH_LAYOUT_AUTO
@ BVH_LAYOUT_AUTO
Definition
kernel/types.h:1420
log.h
CCL_NAMESPACE_BEGIN
Definition
python.cpp:44
params.h
string.h
DebugFlags::CPU::CPU
CPU()
Definition
debug.cpp:16
DebugFlags::CPU::avx2
bool avx2
Definition
debug.h:28
DebugFlags::CPU::sse42
bool sse42
Definition
debug.h:29
DebugFlags::CPU::reset
void reset()
Definition
debug.cpp:21
DebugFlags::CPU::bvh_layout
BVHLayout bvh_layout
Definition
debug.h:48
DebugFlags::CUDA::adaptive_compile
bool adaptive_compile
Definition
debug.h:60
DebugFlags::CUDA::reset
void reset()
Definition
debug.cpp:56
DebugFlags::CUDA::CUDA
CUDA()
Definition
debug.cpp:41
DebugFlags::HIP::adaptive_compile
bool adaptive_compile
Definition
debug.h:71
DebugFlags::HIP::reset
void reset()
Definition
debug.cpp:63
DebugFlags::HIP::HIP
HIP()
Definition
debug.cpp:46
DebugFlags::Metal::use_async_pso_creation
bool use_async_pso_creation
Definition
debug.h:103
DebugFlags::Metal::reset
void reset()
Definition
debug.cpp:70
DebugFlags::Metal::Metal
Metal()
Definition
debug.cpp:51
DebugFlags::Metal::adaptive_compile
bool adaptive_compile
Definition
debug.h:94
DebugFlags::Metal::use_nanovdb
bool use_nanovdb
Definition
debug.h:100
DebugFlags::Metal::use_local_atomic_sort
bool use_local_atomic_sort
Definition
debug.h:97
DebugFlags::OptiX::OptiX
OptiX()
Definition
debug.cpp:89
DebugFlags::OptiX::use_debug
bool use_debug
Definition
debug.h:83
DebugFlags::OptiX::reset
void reset()
Definition
debug.cpp:94
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0