For now this is not part of copy-on-write, and needs extra animation
evaluation.
Details
Diff Detail
- Repository
- rB Blender
Event Timeline
Great! But I think it should be placed inside of BKE_animsys_evaluate_all_animation() to keep it consistent?
This could call BKE_mask_evaluate_all_masks to simplify the code.
The deeper problem is really that it should be creating a depsgraph copy to fully evaluate the scene and everything that is uses, including masks. Hardcoding masks as a special case in BKE_animsys_evaluate_all_animation also seems weak.
Will leave it up to @Sergey Sharybin (sergey) to decide if this kind of workaround is ok, or if we want to solve this better. This is fixing one specific datablock, but there will be a bunch of other things broken too I expect.
I would use BKE_mask_evaluate_all_masks() in render pipeline.c for now. Adding the call to BKE_animsys_evaluate_all_animation doesn't really make sense since masks do not use animsys and use own lighter weight structure to define animation.
The proper solution would of course be to construct minimal dependency graph and update it, but this is a more involved project and here at the studio artists will benefit a lot if we solve the masking issue by a workaround.