[Bf-blender-cvs] [e5904f3] master: Cycles: Add a debug flag to disable QBVH
Sergey Sharybin
noreply at git.blender.org
Tue Jan 19 18:39:35 CET 2016
Commit: e5904f3eea09bb6df44cce37c2bf84ff41f9deb9
Author: Sergey Sharybin
Date: Tue Jan 19 18:38:41 2016 +0100
Branches: master
https://developer.blender.org/rBe5904f3eea09bb6df44cce37c2bf84ff41f9deb9
Cycles: Add a debug flag to disable QBVH
===================================================================
M intern/cycles/blender/addon/properties.py
M intern/cycles/blender/addon/ui.py
M intern/cycles/blender/blender_python.cpp
M intern/cycles/blender/blender_sync.cpp
M intern/cycles/util/util_debug.cpp
M intern/cycles/util/util_debug.h
===================================================================
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index c83da3d..d8084fa 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -554,6 +554,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
cls.debug_use_cpu_sse41 = BoolProperty(name="SSE41", default=True)
cls.debug_use_cpu_sse3 = BoolProperty(name="SSE3", default=True)
cls.debug_use_cpu_sse2 = BoolProperty(name="SSE2", default=True)
+ cls.debug_use_qbvh = BoolProperty(name="QBVH", default=True)
cls.debug_opencl_kernel_type = EnumProperty(
name="OpenCL Kernel Type",
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 22df142..522956d 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -1511,12 +1511,13 @@ class CyclesRender_PT_debug(CyclesButtonsPanel, Panel):
col = layout.column()
col.label('CPU Flags:')
- row = layout.row(align=True)
+ row = col.row(align=True)
row.prop(cscene, "debug_use_cpu_sse2", toggle=True)
row.prop(cscene, "debug_use_cpu_sse3", toggle=True)
row.prop(cscene, "debug_use_cpu_sse41", toggle=True)
row.prop(cscene, "debug_use_cpu_avx", toggle=True)
row.prop(cscene, "debug_use_cpu_avx2", toggle=True)
+ col.prop(cscene, "debug_use_qbvh")
col = layout.column()
col.label('OpenCL Flags:')
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 006301e..4792f96 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -65,6 +65,7 @@ bool debug_flags_sync_from_scene(BL::Scene b_scene)
flags.cpu.sse41 = get_boolean(cscene, "debug_use_cpu_sse41");
flags.cpu.sse3 = get_boolean(cscene, "debug_use_cpu_sse3");
flags.cpu.sse2 = get_boolean(cscene, "debug_use_cpu_sse2");
+ flags.cpu.qbvh = get_boolean(cscene, "debug_use_qbvh");
/* Synchronize OpenCL kernel type. */
switch(get_enum(cscene, "debug_opencl_kernel_type")) {
case 0:
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 8180aa0..7888215 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -442,7 +442,7 @@ SceneParams BlenderSync::get_scene_params(BL::Scene b_scene, bool background, bo
#if !(defined(__GNUC__) && (defined(i386) || defined(_M_IX86)))
if(is_cpu) {
- params.use_qbvh = system_cpu_support_sse2();
+ params.use_qbvh = DebugFlags().cpu.qbvh && system_cpu_support_sse2();
}
else
#endif
diff --git a/intern/cycles/util/util_debug.cpp b/intern/cycles/util/util_debug.cpp
index df75d85..0f3862a 100644
--- a/intern/cycles/util/util_debug.cpp
+++ b/intern/cycles/util/util_debug.cpp
@@ -28,7 +28,8 @@ DebugFlags::CPU::CPU()
avx(true),
sse41(true),
sse3(true),
- sse2(true)
+ sse2(true),
+ qbvh(true)
{
reset();
}
@@ -52,6 +53,8 @@ void DebugFlags::CPU::reset()
#undef STRINGIFY
#undef CHECK_CPU_FLAGS
+
+ qbvh = true;
}
DebugFlags::OpenCL::OpenCL()
diff --git a/intern/cycles/util/util_debug.h b/intern/cycles/util/util_debug.h
index 53b1ea4..723d4a0 100644
--- a/intern/cycles/util/util_debug.h
+++ b/intern/cycles/util/util_debug.h
@@ -41,6 +41,9 @@ public:
bool sse41;
bool sse3;
bool sse2;
+
+ /* Whether QBVH usage is allowed or not. */
+ bool qbvh;
};
/* Descriptor of OpenCL feature-set to be used. */
More information about the Bf-blender-cvs
mailing list