[Bf-blender-cvs] [dc5f6c0d4df] temp-lineart-contained: LineArt: Fix threading data assignment.

YimingWu noreply at git.blender.org
Tue Mar 23 06:28:48 CET 2021


Commit: dc5f6c0d4df272905e927939a2b17281cc280a89
Author: YimingWu
Date:   Tue Mar 23 13:28:25 2021 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rBdc5f6c0d4df272905e927939a2b17281cc280a89

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 a9391cc5e6b..0b67e6af8c2 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -1567,7 +1567,7 @@ static void lineart_geometry_object_load(Depsgraph *dg,
       ob->type == 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);
@@ -1929,14 +1929,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;
@@ -1951,6 +1949,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