Blender  V3.3
debug.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #include "util/debug.h"
5 
6 #include <stdlib.h>
7 
8 #include "bvh/params.h"
9 
10 #include "util/log.h"
11 #include "util/string.h"
12 
14 
16  : avx2(true), avx(true), sse41(true), sse3(true), sse2(true), bvh_layout(BVH_LAYOUT_AUTO)
17 {
18  reset();
19 }
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(avx, "CYCLES_CPU_NO_AVX");
34  CHECK_CPU_FLAGS(sse41, "CYCLES_CPU_NO_SSE41");
35  CHECK_CPU_FLAGS(sse3, "CYCLES_CPU_NO_SSE3");
36  CHECK_CPU_FLAGS(sse2, "CYCLES_CPU_NO_SSE2");
37 
38 #undef STRINGIFY
39 #undef CHECK_CPU_FLAGS
40 
41  bvh_layout = BVH_LAYOUT_AUTO;
42 }
43 
44 DebugFlags::CUDA::CUDA() : adaptive_compile(false)
45 {
46  reset();
47 }
48 
49 DebugFlags::HIP::HIP() : adaptive_compile(false)
50 {
51  reset();
52 }
53 
54 DebugFlags::Metal::Metal() : adaptive_compile(false)
55 {
56  reset();
57 }
58 
60 {
61  if (getenv("CYCLES_CUDA_ADAPTIVE_COMPILE") != NULL)
62  adaptive_compile = true;
63 }
64 
66 {
67  if (getenv("CYCLES_HIP_ADAPTIVE_COMPILE") != NULL)
68  adaptive_compile = true;
69 }
70 
72 {
73  if (getenv("CYCLES_METAL_ADAPTIVE_COMPILE") != NULL)
74  adaptive_compile = true;
75 }
76 
78 {
79  reset();
80 }
81 
83 {
84  use_debug = false;
85 }
86 
87 DebugFlags::DebugFlags() : viewport_static_bvh(false), running_inside_blender(false)
88 {
89  /* Nothing for now. */
90 }
91 
93 {
94  viewport_static_bvh = false;
95  cpu.reset();
96  cuda.reset();
97  optix.reset();
98  metal.reset();
99 }
100 
CPU cpu
Definition: debug.h:128
void reset()
Definition: debug.cpp:92
OptiX optix
Definition: debug.h:134
CUDA cuda
Definition: debug.h:131
bool running_inside_blender
Definition: debug.h:23
Metal metal
Definition: debug.h:140
bool viewport_static_bvh
Definition: debug.h:21
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
#define CHECK_CPU_FLAGS(flag, env)
@ BVH_LAYOUT_AUTO
void reset()
Definition: debug.cpp:21
void reset()
Definition: debug.cpp:59
void reset()
Definition: debug.cpp:65
void reset()
Definition: debug.cpp:71
void reset()
Definition: debug.cpp:82