Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2016-01-19 20:38:41 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-01-19 20:38:41 +0300
commite5904f3eea09bb6df44cce37c2bf84ff41f9deb9 (patch)
treed8292d82fb201a706e24980ce8d0f485f799c05d /intern
parent52f07ad7248b4c6e947153aea87be3e6b917dd17 (diff)
Cycles: Add a debug flag to disable QBVH
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/addon/properties.py1
-rw-r--r--intern/cycles/blender/addon/ui.py3
-rw-r--r--intern/cycles/blender/blender_python.cpp1
-rw-r--r--intern/cycles/blender/blender_sync.cpp2
-rw-r--r--intern/cycles/util/util_debug.cpp5
-rw-r--r--intern/cycles/util/util_debug.h3
6 files changed, 12 insertions, 3 deletions
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index c83da3d5b54..d8084fa5014 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 22df14201e8..522956d1590 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 006301eead7..4792f9612a9 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 8180aa0c948..78882156ed1 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 df75d85e2c7..0f3862ad869 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 53b1ea42164..723d4a0a1ec 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. */