[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