bugfix [#14796] -t <threads> command line switch doesn't work unless FIXED_THREADS...
authorCampbell Barton <ideasman42@gmail.com>
Mon, 23 Jun 2008 16:47:15 +0000 (16:47 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 23 Jun 2008 16:47:15 +0000 (16:47 +0000)
Command line threads now override blendfile setting in background mode.
Command line Threads greater then 8 are now clamped.

source/blender/render/intern/source/pipeline.c
source/creator/creator.c

index ebb52c491323d2f71141f43dd9781004c3c79b96..6a0af82b4d7373e0096786f9f3a5353314d52c90 100644 (file)
@@ -2675,9 +2675,9 @@ void RE_set_max_threads(int threads)
 
 void RE_init_threadcount(Render *re) 
 {
-       if ((re->r.mode & R_FIXED_THREADS)==0 || commandline_threads == 0) { /* Automatic threads */
+        if(commandline_threads >= 1) { /* only set as an arg in background mode */
+               re->r.threads= MIN2(commandline_threads, BLENDER_MAX_THREADS);
+       } else if ((re->r.mode & R_FIXED_THREADS)==0 || commandline_threads == 0) { /* Automatic threads */
                re->r.threads = BLI_system_thread_count();
-       } else if(commandline_threads >= 1 && commandline_threads<=BLENDER_MAX_THREADS) {
-               re->r.threads= commandline_threads;
        }
 }
index 2e6b5d7353ea65ce2066617d496c0e7f295c4cf6..9589f1e3e94c62da13f1f79af9830c5d7441a9ae 100644 (file)
@@ -195,7 +195,7 @@ static void print_help(void)
        printf ("    (formats that can be compiled into blender, not available on all systems)\n");
        printf ("    \tHDR TIFF EXR MULTILAYER MPEG AVICODEC QUICKTIME CINEON DPX DDS\n");
        printf ("    -x <bool>\tSet option to add the file extension to the end of the file.\n");
-       printf ("    -t <threads>\tUse amount of <threads> for rendering.\n");
+       printf ("    -t <threads>\tUse amount of <threads> for rendering (background mode only).\n");
        printf ("      [1-8], 0 for systems processor count.\n");
        printf ("\nAnimation playback options:\n");
        printf ("  -a <file(s)>\tPlayback <file(s)>, only operates this way when -b is not used.\n");
@@ -723,6 +723,8 @@ int main(int argc, char **argv)
                                a++;
                                if(G.background) {
                                        RE_set_max_threads(atoi(argv[a]));
+                               } else {
+                                       printf("Warning: threads can only be set in background mode\n");
                                }
                                break;
                        case 'x': /* extension */