[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