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:
authorLukas Stockner <lukas.stockner@freenet.de>2020-12-23 23:21:20 +0300
committerLukas Stockner <lukas.stockner@freenet.de>2020-12-26 01:13:03 +0300
commit8491e4ab8636a90120f94bede047d591c3ca21cc (patch)
tree83e59be10ed231b9ed29211061df4f460198b500 /intern
parent565ea3df6077a1af5995b9b4defec9b03f3c6c29 (diff)
Fix unreported: Cycles CLI device override doesn't set peer memory usage flag
Reviewed By: brecht Differential Revision: https://developer.blender.org/D9929
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_device.cpp53
1 files changed, 26 insertions, 27 deletions
diff --git a/intern/cycles/blender/blender_device.cpp b/intern/cycles/blender/blender_device.cpp
index 977f8297de1..07c99ca0228 100644
--- a/intern/cycles/blender/blender_device.cpp
+++ b/intern/cycles/blender/blender_device.cpp
@@ -43,42 +43,41 @@ int blender_device_threads(BL::Scene &b_scene)
DeviceInfo blender_device_info(BL::Preferences &b_preferences, BL::Scene &b_scene, bool background)
{
- if (BlenderSession::device_override != DEVICE_MASK_ALL) {
- vector<DeviceInfo> devices = Device::available_devices(BlenderSession::device_override);
+ PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
- if (devices.empty()) {
- return Device::dummy_device("Found no Cycles device of the specified type");
+ /* 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;
}
-
- int threads = blender_device_threads(b_scene);
- return Device::get_multi_device(devices, threads, background);
}
- PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
-
/* Default to CPU device. */
DeviceInfo device = Device::available_devices(DEVICE_MASK_CPU).front();
- if (get_enum(cscene, "device") == 2) {
+ if (BlenderSession::device_override != DEVICE_MASK_ALL) {
+ vector<DeviceInfo> devices = Device::available_devices(BlenderSession::device_override);
+
+ if (devices.empty()) {
+ device = Device::dummy_device("Found no Cycles device of the specified type");
+ }
+ else {
+ int threads = blender_device_threads(b_scene);
+ device = Device::get_multi_device(devices, threads, background);
+ }
+ }
+ else if (get_enum(cscene, "device") == 2) {
/* Find network device. */
vector<DeviceInfo> devices = Device::available_devices(DEVICE_MASK_NETWORK);
if (!devices.empty()) {
- return devices.front();
+ 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;
- }
- }
-
/* Test if we are using GPU devices. */
ComputeDevice compute_device = (ComputeDevice)get_enum(
cpreferences, "compute_device_type", COMPUTE_DEVICE_NUM, COMPUTE_DEVICE_CPU);
@@ -117,13 +116,13 @@ DeviceInfo blender_device_info(BL::Preferences &b_preferences, BL::Scene &b_scen
device = Device::get_multi_device(used_devices, threads, background);
}
/* Else keep using the CPU device that was set before. */
-
- if (!get_boolean(cpreferences, "peer_memory")) {
- device.has_peer_memory = false;
- }
}
}
+ if (!get_boolean(cpreferences, "peer_memory")) {
+ device.has_peer_memory = false;
+ }
+
return device;
}