When these features aren't used, there is no sense in storing the
corresponding data layers and using their values for computations. Avoiding that should increase performance in many operations that would otherwise have to read, write, or propagate these values. It also means decreased memory usage-- not just for sculpt mode but for any mesh that was in sculpt mode. Previously the mask, face set, and hide status layers were *always* allocated by sculpt mode. Here are a few basic tests when masking and face sets are not used: | Test | Before | After | | Subsurf Modifier | 148 ms | 126 ms | | Sculpt Overlay Extraction | 24 ms every redraw | 0 ms | | Memory usage | 252 MB | 236 MB | I wouldn't expect any difference when they are used though. The code changes are mostly just making sculpt features safe for when the layers aren't stored, and some changes to the conversion to and from the hide layers. Use of the ".hide_poly" attribute replaces testing whether face sets are negative in many places. Differential Revision: https://developer.blender.org/D15937
This commit is contained in:
@@ -136,9 +136,7 @@ eAttrDomain BKE_id_attribute_domain(const struct ID *UNUSED(id),
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Stubs of BKE_paint.h
|
||||
* \{ */
|
||||
bool paint_is_face_hidden(const struct MLoopTri *UNUSED(lt),
|
||||
const bool *UNUSED(hide_vert),
|
||||
const struct MLoop *UNUSED(mloop))
|
||||
bool paint_is_face_hidden(const struct MLoopTri *UNUSED(lt), const bool *UNUSED(hide_poly))
|
||||
{
|
||||
BLI_assert_unreachable();
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user