From df0ecd73af9218608b5436761d6a298cb4985709 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 22 Dec 2017 12:45:06 +0100 Subject: Subsurf: Avoid global lock for loops and orig index layers This is a bit annoying to have per-DM locking, but it's way better (as in, up to 4 times better) for playback speed when having lots of subsurf objects, --- source/blender/blenkernel/BKE_subsurf.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/blenkernel/BKE_subsurf.h') diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h index 92170325113..d7b9d20d7b0 100644 --- a/source/blender/blenkernel/BKE_subsurf.h +++ b/source/blender/blenkernel/BKE_subsurf.h @@ -34,6 +34,9 @@ /* struct DerivedMesh is used directly */ #include "BKE_DerivedMesh.h" +/* Thread sync primitives used directly. */ +#include "BLI_threads.h" + struct CCGElem; struct DMFlagMat; struct DMGridAdjacency; @@ -140,6 +143,9 @@ typedef struct CCGDerivedMesh { } multires; struct EdgeHash *ehash; + + ThreadRWMutex loops_cache_rwlock; + ThreadRWMutex origindex_cache_rwlock; } CCGDerivedMesh; #ifdef WITH_OPENSUBDIV -- cgit v1.2.3