diff options
Diffstat (limited to 'intern/cycles/blender/blender_device.cpp')
-rw-r--r-- | intern/cycles/blender/blender_device.cpp | 140 |
1 files changed, 69 insertions, 71 deletions
diff --git a/intern/cycles/blender/blender_device.cpp b/intern/cycles/blender/blender_device.cpp index 969601b1c37..98fc0c6dec4 100644 --- a/intern/cycles/blender/blender_device.cpp +++ b/intern/cycles/blender/blender_device.cpp @@ -19,91 +19,89 @@ CCL_NAMESPACE_BEGIN -int blender_device_threads(BL::Scene& b_scene) +int blender_device_threads(BL::Scene &b_scene) { - BL::RenderSettings b_r = b_scene.render(); + BL::RenderSettings b_r = b_scene.render(); - if(b_r.threads_mode() == BL::RenderSettings::threads_mode_FIXED) - return b_r.threads(); - else - return 0; + if (b_r.threads_mode() == BL::RenderSettings::threads_mode_FIXED) + return b_r.threads(); + else + return 0; } -DeviceInfo blender_device_info(BL::Preferences& b_preferences, BL::Scene& b_scene, bool background) +DeviceInfo blender_device_info(BL::Preferences &b_preferences, BL::Scene &b_scene, bool background) { - PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); - /* Default to CPU device. */ - DeviceInfo device = Device::available_devices(DEVICE_MASK_CPU).front(); + /* Default to CPU device. */ + DeviceInfo device = Device::available_devices(DEVICE_MASK_CPU).front(); - if(get_enum(cscene, "device") == 2) { - /* Find network device. */ - vector<DeviceInfo> devices = Device::available_devices(DEVICE_MASK_NETWORK); - if(!devices.empty()) { - device = devices.front(); - } - } - else if(get_enum(cscene, "device") == 1) { - /* Find cycles preferences. */ - PointerRNA cpreferences; + if (get_enum(cscene, "device") == 2) { + /* Find network device. */ + vector<DeviceInfo> devices = Device::available_devices(DEVICE_MASK_NETWORK); + if (!devices.empty()) { + device = devices.front(); + } + } + else if (get_enum(cscene, "device") == 1) { + /* Find cycles preferences. */ + PointerRNA cpreferences; - BL::Preferences::addons_iterator b_addon_iter; - for(b_preferences.addons.begin(b_addon_iter); b_addon_iter != b_preferences.addons.end(); ++b_addon_iter) { - if(b_addon_iter->module() == "cycles") { - cpreferences = b_addon_iter->preferences().ptr; - break; - } - } + BL::Preferences::addons_iterator b_addon_iter; + for (b_preferences.addons.begin(b_addon_iter); b_addon_iter != b_preferences.addons.end(); + ++b_addon_iter) { + if (b_addon_iter->module() == "cycles") { + cpreferences = b_addon_iter->preferences().ptr; + break; + } + } - /* Test if we are using GPU devices. */ - enum ComputeDevice { - COMPUTE_DEVICE_CPU = 0, - COMPUTE_DEVICE_CUDA = 1, - COMPUTE_DEVICE_OPENCL = 2, - COMPUTE_DEVICE_NUM = 3, - }; + /* Test if we are using GPU devices. */ + enum ComputeDevice { + COMPUTE_DEVICE_CPU = 0, + COMPUTE_DEVICE_CUDA = 1, + COMPUTE_DEVICE_OPENCL = 2, + COMPUTE_DEVICE_NUM = 3, + }; - ComputeDevice compute_device = (ComputeDevice)get_enum(cpreferences, - "compute_device_type", - COMPUTE_DEVICE_NUM, - COMPUTE_DEVICE_CPU); + ComputeDevice compute_device = (ComputeDevice)get_enum( + cpreferences, "compute_device_type", COMPUTE_DEVICE_NUM, COMPUTE_DEVICE_CPU); - if(compute_device != COMPUTE_DEVICE_CPU) { - /* Query GPU devices with matching types. */ - uint mask = DEVICE_MASK_CPU; - if(compute_device == COMPUTE_DEVICE_CUDA) { - mask |= DEVICE_MASK_CUDA; - } - else if(compute_device == COMPUTE_DEVICE_OPENCL) { - mask |= DEVICE_MASK_OPENCL; - } - vector<DeviceInfo> devices = Device::available_devices(mask); + if (compute_device != COMPUTE_DEVICE_CPU) { + /* Query GPU devices with matching types. */ + uint mask = DEVICE_MASK_CPU; + if (compute_device == COMPUTE_DEVICE_CUDA) { + mask |= DEVICE_MASK_CUDA; + } + else if (compute_device == COMPUTE_DEVICE_OPENCL) { + mask |= DEVICE_MASK_OPENCL; + } + vector<DeviceInfo> devices = Device::available_devices(mask); - /* Match device preferences and available devices. */ - vector<DeviceInfo> used_devices; - RNA_BEGIN(&cpreferences, device, "devices") { - if(get_boolean(device, "use")) { - string id = get_string(device, "id"); - foreach(DeviceInfo& info, devices) { - if(info.id == id) { - used_devices.push_back(info); - break; - } - } - } - } RNA_END; + /* Match device preferences and available devices. */ + vector<DeviceInfo> used_devices; + RNA_BEGIN (&cpreferences, device, "devices") { + if (get_boolean(device, "use")) { + string id = get_string(device, "id"); + foreach (DeviceInfo &info, devices) { + if (info.id == id) { + used_devices.push_back(info); + break; + } + } + } + } + RNA_END; - if(!used_devices.empty()) { - int threads = blender_device_threads(b_scene); - device = Device::get_multi_device(used_devices, - threads, - background); - } - /* Else keep using the CPU device that was set before. */ - } - } + if (!used_devices.empty()) { + int threads = blender_device_threads(b_scene); + device = Device::get_multi_device(used_devices, threads, background); + } + /* Else keep using the CPU device that was set before. */ + } + } - return device; + return device; } CCL_NAMESPACE_END |