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
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::reset
void reset()
Definition
debug.cpp:21
DebugFlags::CUDA::reset
void reset()
Definition
debug.cpp:56
DebugFlags::CUDA::CUDA
CUDA()
Definition
debug.cpp:41
DebugFlags::HIP::reset
void reset()
Definition
debug.cpp:63
DebugFlags::HIP::HIP
HIP()
Definition
debug.cpp:46
DebugFlags::Metal::reset
void reset()
Definition
debug.cpp:70
DebugFlags::Metal::Metal
Metal()
Definition
debug.cpp:51
DebugFlags::OptiX::OptiX
OptiX()
Definition
debug.cpp:89
DebugFlags::OptiX::reset
void reset()
Definition
debug.cpp:94
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0