Blender Git Commit Log
Git Commits -> Revision f0ac729
Revision f0ac729 by Joshua Leung (master) March 19, 2014, 13:23 (GMT) |
Fix T39207: FCurve evaluation regressions following 2aff243 This commit attempts to fix some of the FCurve evaluation regressions arising from an earlier commit to speed up the process using binary search. Further tweaks may still be needed though to get this to an acceptable level of reliability (namely, tuning the threshold defining which keyframes get considered "close together"). Since we're still in an early stage of the 2.71 dev cycle, for now it's still worth trying to get this working instead of simply reverting this (which can still be done later if it proves too problematic). Specific fixes: * The previous code was somewhat dangerous in that it allowed out-of-bounds accessing of memory when a == 0. It turns out this was more common than originally anticipated (as the assert I added here ended up failing in the "action_bug.blend" file in the report) * Tweaked the code used to test for closely-spaced points so that the "Clive.blend" example for driver curves won't fail. The approach used here has the downside though that since "exact" uses a might coarser threshold for equality, there may be some precision loss issues causing backwards compat issues (namely with closely spaced keyframes, or for certain NLA strips). For now, I've left in some debug prints that can be enabled by running Blender in debug mode (i.e. "blender -d"), which can provide some useful tuning info should we need to look more into our approach here. |
Commit Details:
Full Hash: f0ac7294fafcd12abc83aa706f41af909ddad96d
Parent Commit: d2660a0
Lines Changed: +14, -10
1 Modified Path:
/source/blender/blenkernel/intern/fcurve.c (+14, -10) (Diff)