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
path: root/source
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-12-14 17:28:24 +0300
committerJacques Lucke <jacques@blender.org>2020-12-14 17:29:50 +0300
commit9ee7270e0acc6d60c8eac9e25cca00aa384c0879 (patch)
treef36bc3cae2166c2cbe1d06a8f816492b492ad838 /source
parent6714b800d1716f7c7dec9a640d1c615bbf1a938f (diff)
Geometry Nodes: require vertex groups data in nodes modifier
Without this, the modifier evaluation code might remove any vertex groups from the mesh for performance reasons. We can't say for sure whether the node group will need the vertex groups, but it is quite likely. Ref T83357.
Diffstat (limited to 'source')
-rw-r--r--source/blender/modifiers/intern/MOD_nodes.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 6730ce1c8a8..652558655ce 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -1063,6 +1063,15 @@ static void freeData(ModifierData *md)
}
}
+static void requiredDataMask(Object *UNUSED(ob),
+ ModifierData *UNUSED(md),
+ CustomData_MeshMasks *r_cddata_masks)
+{
+ /* We don't know what the node tree will need. If there are vertex groups, it is likely that the
+ * node tree wants to access them. */
+ r_cddata_masks->vmask |= CD_MASK_MDEFORMVERT;
+}
+
ModifierTypeInfo modifierType_Nodes = {
/* name */ "GeometryNodes",
/* structName */ "NodesModifierData",
@@ -1087,7 +1096,7 @@ ModifierTypeInfo modifierType_Nodes = {
/* modifyVolume */ nullptr,
/* initData */ initData,
- /* requiredDataMask */ nullptr,
+ /* requiredDataMask */ requiredDataMask,
/* freeData */ freeData,
/* isDisabled */ isDisabled,
/* updateDepsgraph */ updateDepsgraph,