[Bf-blender-cvs] [9bb6c301cd1] temp-lineart-contained: LineArt: Fix thread intersection duplication
YimingWu
noreply at git.blender.org
Mon Nov 8 10:36:36 CET 2021
Commit: 9bb6c301cd1ea92b0dcf8391b76e5167ba8ab688
Author: YimingWu
Date: Mon Nov 8 17:36:14 2021 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rB9bb6c301cd1ea92b0dcf8391b76e5167ba8ab688
LineArt: Fix thread intersection duplication
===================================================================
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 b2a8881a98b..e08df5cb5a0 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -70,6 +70,7 @@ typedef struct LineartIsecSingle {
LineartTriangle *tri1, *tri2;
} LineartIsecSingle;
typedef struct LineartIsecThread {
+ int thread_id;
/* Thread triangle data. */
/* Used to roughly spread the load. */
int count_pending;
@@ -2938,6 +2939,7 @@ static void lineart_init_isec_thread(LineartIsecData *d, LineartRenderBuffer *rb
it->array = MEM_mallocN(sizeof(LineartIsecSingle) * 100, "LineartIsecSingle arr");
it->max = 100;
it->current = 0;
+ it->thread_id = i;
}
#define OBJ_PER_ISEC_THREAD 8 /* Largely arbitrary, no need to be big. */
@@ -3001,10 +3003,10 @@ static void lineart_triangle_intersect_in_bounding_area(LineartRenderBuffer *rb,
testing_triangle = ba->linked_triangles[i];
tt = (LineartTriangleThread *)testing_triangle;
- if (testing_triangle == tri || tt->testing_e[0] == (LineartEdge *)tri) {
+ if (testing_triangle == tri || tt->testing_e[th->thread_id] == (LineartEdge *)tri) {
continue;
}
- tt->testing_e[0] = (LineartEdge *)tri;
+ tt->testing_e[th->thread_id] = (LineartEdge *)tri;
if ((testing_triangle->flags & LRT_TRIANGLE_NO_INTERSECTION) ||
((testing_triangle->flags & LRT_TRIANGLE_INTERSECTION_ONLY) &&
More information about the Bf-blender-cvs
mailing list