Cycles: Add a debug flag to disable QBVH

This commit is contained in:
Sergey Sharybin 2016-01-19 18:38:41 +01:00
parent 52f07ad724
commit e5904f3eea
6 changed files with 12 additions and 3 deletions

View File

@ -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",

View File

@ -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:')

View File

@ -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:

View File

@ -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

View File

@ -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()

View File

@ -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. */