Blender Git Loki
Git Commits -> Revision fe00175
Revision fe00175 by Sergey Sharybin (master) January 1, 2014, 16:32 (GMT) |
Fix crash happening in Cycles fcurve modifier Summary: Crash was happening because of fcurve modifier stack used modifier's DNA to store temporary data. Now made it so storage for such a thing is being allocated locally per object update so multiple objects which shares the same animation wouldn't run into threading conflict anymore. This storage might be a part of EvaluationContext, but that'd mean passing this context all over in object_where_is which will clutter API for now without actual benefit for this. Optimization notes: storage is only being allocated if there're Cycles modifier in the stack, so there're no extra allocations happening in all other cases. To make code a bit less cluttered with this storage passing all over the place added extra callbacks to the FModifier storage which runs evaluation with the given storage. Reviewers: brecht, campbellbarton, aligorith CC: plasmasolutions Differential Revision: https://developer.blender.org/D147 |
Commit Details:
Full Hash: fe00175c35a301a68518c583a4fab163ac8f32a0
Parent Commit: 5d701c6
Lines Changed: +154, -37
6 Modified Paths:
/source/blender/blenkernel/BKE_fcurve.h (+14, -3) (Diff)
/source/blender/blenkernel/intern/anim_sys.c (+8, -3) (Diff)
/source/blender/blenkernel/intern/fcurve.c (+8, -4) (Diff)
/source/blender/blenkernel/intern/fmodifier.c (+124, -25) (Diff)
/source/blender/blenloader/intern/readfile.c (+0, -1) (Diff)
/source/blender/makesdna/DNA_anim_types.h (+0, -1) (Diff)
/source/blender/blenkernel/intern/anim_sys.c (+8, -3) (Diff)
/source/blender/blenkernel/intern/fcurve.c (+8, -4) (Diff)
/source/blender/blenkernel/intern/fmodifier.c (+124, -25) (Diff)
/source/blender/blenloader/intern/readfile.c (+0, -1) (Diff)
/source/blender/makesdna/DNA_anim_types.h (+0, -1) (Diff)