Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/blender/blender_python.cpp
| Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | |||||
| * Return truth when device list needs invalidation. | * Return truth when device list needs invalidation. | ||||
| */ | */ | ||||
| bool debug_flags_sync_from_scene(BL::Scene b_scene) | bool debug_flags_sync_from_scene(BL::Scene b_scene) | ||||
| { | { | ||||
| DebugFlagsRef flags = DebugFlags(); | DebugFlagsRef flags = DebugFlags(); | ||||
| PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); | PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); | ||||
| /* Backup some settings for comparison. */ | /* Backup some settings for comparison. */ | ||||
| DebugFlags::OpenCL::DeviceType opencl_device_type = flags.opencl.device_type; | DebugFlags::OpenCL::DeviceType opencl_device_type = flags.opencl.device_type; | ||||
| DebugFlags::OpenCL::KernelType opencl_kernel_type = flags.opencl.kernel_type; | |||||
| /* Synchronize shared flags. */ | /* Synchronize shared flags. */ | ||||
| flags.viewport_static_bvh = get_enum(cscene, "debug_bvh_type"); | flags.viewport_static_bvh = get_enum(cscene, "debug_bvh_type"); | ||||
| /* Synchronize CPU flags. */ | /* Synchronize CPU flags. */ | ||||
| flags.cpu.avx2 = get_boolean(cscene, "debug_use_cpu_avx2"); | flags.cpu.avx2 = get_boolean(cscene, "debug_use_cpu_avx2"); | ||||
| flags.cpu.avx = get_boolean(cscene, "debug_use_cpu_avx"); | flags.cpu.avx = get_boolean(cscene, "debug_use_cpu_avx"); | ||||
| flags.cpu.sse41 = get_boolean(cscene, "debug_use_cpu_sse41"); | flags.cpu.sse41 = get_boolean(cscene, "debug_use_cpu_sse41"); | ||||
| flags.cpu.sse3 = get_boolean(cscene, "debug_use_cpu_sse3"); | flags.cpu.sse3 = get_boolean(cscene, "debug_use_cpu_sse3"); | ||||
| flags.cpu.sse2 = get_boolean(cscene, "debug_use_cpu_sse2"); | flags.cpu.sse2 = get_boolean(cscene, "debug_use_cpu_sse2"); | ||||
| flags.cpu.bvh_layout = (BVHLayout)get_enum(cscene, "debug_bvh_layout"); | flags.cpu.bvh_layout = (BVHLayout)get_enum(cscene, "debug_bvh_layout"); | ||||
| flags.cpu.split_kernel = get_boolean(cscene, "debug_use_cpu_split_kernel"); | flags.cpu.split_kernel = get_boolean(cscene, "debug_use_cpu_split_kernel"); | ||||
| /* Synchronize CUDA flags. */ | /* Synchronize CUDA flags. */ | ||||
| flags.cuda.adaptive_compile = get_boolean(cscene, "debug_use_cuda_adaptive_compile"); | flags.cuda.adaptive_compile = get_boolean(cscene, "debug_use_cuda_adaptive_compile"); | ||||
| flags.cuda.split_kernel = get_boolean(cscene, "debug_use_cuda_split_kernel"); | flags.cuda.split_kernel = get_boolean(cscene, "debug_use_cuda_split_kernel"); | ||||
| /* Synchronize OpenCL kernel type. */ | |||||
| switch(get_enum(cscene, "debug_opencl_kernel_type")) { | |||||
| case 0: | |||||
| flags.opencl.kernel_type = DebugFlags::OpenCL::KERNEL_DEFAULT; | |||||
| break; | |||||
| case 1: | |||||
| flags.opencl.kernel_type = DebugFlags::OpenCL::KERNEL_MEGA; | |||||
| break; | |||||
| case 2: | |||||
| flags.opencl.kernel_type = DebugFlags::OpenCL::KERNEL_SPLIT; | |||||
| break; | |||||
| } | |||||
| /* Synchronize OpenCL device type. */ | /* Synchronize OpenCL device type. */ | ||||
| switch(get_enum(cscene, "debug_opencl_device_type")) { | switch(get_enum(cscene, "debug_opencl_device_type")) { | ||||
| case 0: | case 0: | ||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_NONE; | flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_NONE; | ||||
| break; | break; | ||||
| case 1: | case 1: | ||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_ALL; | flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_ALL; | ||||
| break; | break; | ||||
| Show All 9 Lines | switch(get_enum(cscene, "debug_opencl_device_type")) { | ||||
| case 5: | case 5: | ||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_ACCELERATOR; | flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_ACCELERATOR; | ||||
| break; | break; | ||||
| } | } | ||||
| /* Synchronize other OpenCL flags. */ | /* Synchronize other OpenCL flags. */ | ||||
| flags.opencl.debug = get_boolean(cscene, "debug_use_opencl_debug"); | flags.opencl.debug = get_boolean(cscene, "debug_use_opencl_debug"); | ||||
| flags.opencl.mem_limit = ((size_t)get_int(cscene, "debug_opencl_mem_limit"))*1024*1024; | flags.opencl.mem_limit = ((size_t)get_int(cscene, "debug_opencl_mem_limit"))*1024*1024; | ||||
| flags.opencl.single_program = get_boolean(cscene, "debug_opencl_kernel_single_program"); | flags.opencl.single_program = get_boolean(cscene, "debug_opencl_kernel_single_program"); | ||||
| return flags.opencl.device_type != opencl_device_type || | return flags.opencl.device_type != opencl_device_type; | ||||
| flags.opencl.kernel_type != opencl_kernel_type; | |||||
| } | } | ||||
| /* Reset debug flags to default values. | /* Reset debug flags to default values. | ||||
| * Return truth when device list needs invalidation. | * Return truth when device list needs invalidation. | ||||
| */ | */ | ||||
| bool debug_flags_reset() | bool debug_flags_reset() | ||||
| { | { | ||||
| DebugFlagsRef flags = DebugFlags(); | DebugFlagsRef flags = DebugFlags(); | ||||
| /* Backup some settings for comparison. */ | /* Backup some settings for comparison. */ | ||||
| DebugFlags::OpenCL::DeviceType opencl_device_type = flags.opencl.device_type; | DebugFlags::OpenCL::DeviceType opencl_device_type = flags.opencl.device_type; | ||||
| DebugFlags::OpenCL::KernelType opencl_kernel_type = flags.opencl.kernel_type; | |||||
| flags.reset(); | flags.reset(); | ||||
| return flags.opencl.device_type != opencl_device_type || | return flags.opencl.device_type != opencl_device_type; | ||||
| flags.opencl.kernel_type != opencl_kernel_type; | |||||
| } | } | ||||
| } /* namespace */ | } /* namespace */ | ||||
| void python_thread_state_save(void **python_thread_state) | void python_thread_state_save(void **python_thread_state) | ||||
| { | { | ||||
| *python_thread_state = (void*)PyEval_SaveThread(); | *python_thread_state = (void*)PyEval_SaveThread(); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 872 Lines • Show Last 20 Lines | |||||