Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-12-22 14:45:06 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-12-22 14:50:57 +0300
commitdf0ecd73af9218608b5436761d6a298cb4985709 (patch)
tree187c52f03ac7aac11eeb1293753d145ad293723c /source/blender/blenkernel/BKE_subsurf.h
parent50f1c9a8afeffc81580bc12a19d8ffd01c3a9e6f (diff)
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,
Diffstat (limited to 'source/blender/blenkernel/BKE_subsurf.h')
-rw-r--r--source/blender/blenkernel/BKE_subsurf.h6
1 files changed, 6 insertions, 0 deletions
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