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) &&

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to