When in material display mode, mesh_calc_modifiers() calculates the orco DerivedMesh, which uses a different CustomDataMask. In particular, it does not necessarily include the current modifier's requiredDataMask, so those layers might get set to NO_COPY. For the skin modifier, this resulted in a crash when the modifier internally copies the DerivedMesh and the output does not contain the expected MVertSkin layer. Fixed by adding the requiredDataMask to the orco DM's CustomDataMask. Also added a debugging function to customdata.c: customData_mask_layers__print(CustomDataMask mask); This will print out the names of all the CD layer types in the mask.
93 KiB
93 KiB