[Bf-blender-cvs] [f37e62c1ea3] lineart-fn-thread-loading: LineArt: Fix threading data assignment.

YimingWu noreply at git.blender.org
Tue Jun 1 15:32:25 CEST 2021


Commit: f37e62c1ea310d81e51f97815483d7a3c573e259
Author: YimingWu
Date:   Tue Mar 23 13:28:25 2021 +0800
Branches: lineart-fn-thread-loading
https://developer.blender.org/rBf37e62c1ea310d81e51f97815483d7a3c573e259

LineArt: Fix threading data assignment.

===================================================================

M	source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c

===================================================================

diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 06f662a4dec..02dcc664f3c 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1566,7 +1566,7 @@ static void lineart_geometry_object_load(Depsgraph *dg,
   if (ELEM(ob->type, OB_MESH, OB_MBALL, OB_CURVE, OB_SURF, OB_FONT)) {
 
     if (ob->type == OB_MESH) {
-      use_mesh = DEG_get_evaluated_object(dg, ob)->data;
+      use_mesh = ob->data;
     }
     else {
       use_mesh = BKE_mesh_new_from_object(NULL, ob, false, false);
@@ -1943,14 +1943,12 @@ static void lineart_main_load_geometries(
   /* This memory is in render buffer memory pool. so we don't need to free those after loading. */
   LineartObjectLoadTaskInfo *olti = lineart_mem_aquire(
       &rb->render_data_pool, sizeof(LineartObjectLoadTaskInfo) * thread_count);
-  olti->rb = rb;
-  olti->dg = depsgraph;
 
   int to_thread = 0;
   DEG_OBJECT_ITER_BEGIN (depsgraph, ob, flags) {
     LineartObjectInfo *obi = lineart_mem_aquire(&rb->render_data_pool, sizeof(LineartObjectInfo));
     obi->override_usage = lineart_usage_check(scene->master_collection, ob, rb);
-    obi->ob = ob;
+    obi->ob = DEG_get_evaluated_object(depsgraph, ob);
 
     obi->next = olti[to_thread].pending;
     olti[to_thread].pending = obi;
@@ -1965,6 +1963,8 @@ static void lineart_main_load_geometries(
   TaskPool *tp = BLI_task_pool_create(NULL, TASK_PRIORITY_HIGH);
 
   for (int i = 0; i < thread_count; i++) {
+    olti[i].rb = rb;
+    olti[i].dg = depsgraph;
     BLI_task_pool_push(tp, (TaskRunFunction)lineart_object_load_worker, &olti[i], 0, NULL);
   }
   BLI_task_pool_work_and_wait(tp);



More information about the Bf-blender-cvs mailing list