Blender V4.3
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
15
20
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
45
50
55
57{
58 if (getenv("CYCLES_CUDA_ADAPTIVE_COMPILE") != NULL) {
59 adaptive_compile = true;
60 }
61}
62
64{
65 if (getenv("CYCLES_HIP_ADAPTIVE_COMPILE") != NULL) {
66 adaptive_compile = true;
67 }
68}
69
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
93
95{
96 use_debug = false;
97}
98
99DebugFlags::DebugFlags()
100{
101 /* Nothing for now. */
102}
103
105{
106 cpu.reset();
107 cuda.reset();
108 optix.reset();
109 metal.reset();
110}
111
CPU cpu
Definition debug.h:117
void reset()
Definition debug.cpp:104
OptiX optix
Definition debug.h:123
CUDA cuda
Definition debug.h:120
#define CHECK_CPU_FLAGS(flag, env)
#define CCL_NAMESPACE_END
#define NULL
#define str(s)
@ BVH_LAYOUT_AUTO
void reset()
Definition debug.cpp:21
void reset()
Definition debug.cpp:63