From a07dcd67ebf63fad08536b1e78bbb61e18fa51e6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 8 May 2013 13:23:17 +0000 Subject: Fix #35240: command line -t number of threads option did not work for cycles. Now it works for blender internal, cycles and other multithreading code in Blender in both background and UI mode. --- source/blender/blenkernel/intern/scene.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'source/blender/blenkernel/intern/scene.c') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index c7a8c96a232..e93c32ddf64 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -56,6 +56,7 @@ #include "BLI_utildefines.h" #include "BLI_callbacks.h" #include "BLI_string.h" +#include "BLI_threads.h" #include "BLF_translation.h" @@ -1469,3 +1470,28 @@ int BKE_scene_check_rigidbody_active(const Scene *scene) { return scene && scene->rigidbody_world && scene->rigidbody_world->group && !(scene->rigidbody_world->flag & RBW_FLAG_MUTED); } + +int BKE_render_num_threads(const RenderData *rd) +{ + int threads; + + /* override set from command line? */ + threads = BLI_system_num_threads_override_get(); + + if (threads > 0) + return threads; + + /* fixed number of threads specified in scene? */ + if (rd->mode & R_FIXED_THREADS) + threads = rd->threads; + else + threads = BLI_system_thread_count(); + + return max_ii(threads, 1); +} + +int BKE_scene_num_threads(const Scene *scene) +{ + return BKE_render_num_threads(&scene->r); +} + -- cgit v1.2.3