diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-12-22 14:45:06 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-12-22 14:50:57 +0300 |
commit | df0ecd73af9218608b5436761d6a298cb4985709 (patch) | |
tree | 187c52f03ac7aac11eeb1293753d145ad293723c /source/blender/blenkernel/BKE_subsurf.h | |
parent | 50f1c9a8afeffc81580bc12a19d8ffd01c3a9e6f (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.h | 6 |
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 |