Revision: 58794
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58794
Author:   nazgul
Date:     2013-07-31 21:56:11 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
Small optimization to previous change of statistics output

Use boolean flag for detecting whether there're updated
objects instead of doing real object counter (which required
spin lock).

Modified Paths:
--------------
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c

Modified: 
branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c     
2013-07-31 21:56:06 UTC (rev 58793)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c     
2013-07-31 21:56:11 UTC (rev 58794)
@@ -1175,7 +1175,7 @@
 
        /* Execution statistics */
        ListBase statistics[BLENDER_MAX_THREADS];
-       int num_updated_objects;
+       bool has_updated_objects;
 } ThreadedObjectUpdateState;
 
 static void scene_update_object_add_task(void *node, void *user_data);
@@ -1200,9 +1200,7 @@
                        start_time = PIL_check_seconds_timer();
 
                        if (object->recalc & OB_RECALC_ALL) {
-                               BLI_spin_lock(&state->lock);
-                               state->num_updated_objects++;
-                               BLI_spin_unlock(&state->lock);
+                               state->has_updated_objects = true;
                        }
                }
 
@@ -1225,7 +1223,7 @@
        }
        else {
                PRINT("Threda %d: update node %s\n", threadid,
-                       DAG_threaded_update_get_node_name(node));
+                     DAG_threaded_update_get_node_name(node));
        }
 
        BLI_spin_lock(&state->lock);
@@ -1258,7 +1256,7 @@
                double total_time = 0.0;
                StatisicsEntry *entry;
 
-               if (state->num_updated_objects > 0) {
+               if (state->has_updated_objects) {
                        /* Don't pollute output if no objects were updated. */
                        for (entry = state->statistics[i].first;
                             entry;
@@ -1298,7 +1296,7 @@
        state.scene = scene;
        state.scene_parent = scene_parent;
        memset(state.statistics, 0, sizeof(state.statistics));
-       state.num_updated_objects = 0;
+       state.has_updated_objects = false;
        BLI_spin_init(&state.lock);
 
        task_pool = BLI_task_pool_create(task_scheduler, &state);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to