Page MenuHome

ikSPline error with new depsgraph
Closed, ArchivedPublic

Description

System Information
Mint 17
CG:GTX 560Ti

Blender Version
Broken: 2.75a Official, hash: c27589e
Worked: Never, should work with new depsgraph :)

Short description of error

There is still fake dependency cycle with ikspline.
Let's take 2 sets of bones A and B, with no relation beetween each other (except they live in the same armature)
-Set A (4 parented bones) are ikSpline constrained on a curve
-Set B (2 bones with no parent/ no constraint) hooked 2 points of the curve (with hooked modifier on curve)

When mooving set B bones, Set A bones are jumping all over the place and a cycle is detected in consol even if there is no direct relation beetween them (except the armature object)

Exact steps for others to reproduce the error

-Open blender 2.75a or later with --enable-new-depsgraph argument
-open attached .blend file

  • move set B bones (called hook1 and hook2)

Thanks a lot !

Event Timeline

boris cohen (bobizib) raised the priority of this task from to 90.
boris cohen (bobizib) updated the task description. (Show Details)
boris cohen (bobizib) edited a custom field.

Forgot to assign to depsgraph project

Console Output

Dependency cycle detected:

'Armature[Object].POSE_INIT()' depends on 'BezierCurve[Object].GEOMETRY_UBEREVAL()' through '[Curve.Path -> Spline IK] DepsRel'
'BezierCurve[Object].GEOMETRY_UBEREVAL()' depends on 'BezierCurve[Object].GEOMETRY_MODIFIER(Hook-Armature.001)' through 'Object Geometry UberEval'
'BezierCurve[Object].GEOMETRY_MODIFIER(Hook-Armature.001)' depends on 'Armature[Object].Bone.005.BONE_DONE()' through 'Hook Modifier'
'Armature[Object].Bone.005.BONE_DONE()' depends on 'Armature[Object].Bone.005.BONE_READY()' through 'Ready -> Done'
'Armature[Object].Bone.005.BONE_READY()' depends on 'Armature[Object].Bone.005.BONE_POSE_PARENT()' through 'Pose -> Ready'
'Armature[Object].Bone.005.BONE_POSE_PARENT()' depends on 'Armature[Object].Bone.005.BONE_LOCAL()' through 'Bone Local - PoseSpace Link'
'Armature[Object].Bone.005.BONE_LOCAL()' depends on 'Armature[Object].POSE_INIT()' through 'PoseEval Source-Bone Link'

After mapping out these relationships, it looks like there is indeed a cycle still present, because the geometry evaluation hasn't been fully split up yet. Specifically:

Red lines indicate some of the main culprits of this problem

Joshua Leung (aligorith) lowered the priority of this task from 90 to 50.Aug 25 2015, 3:09 PM
Sergey Sharybin (sergey) changed the task status from Unknown Status to Unknown Status.Aug 25 2015, 3:41 PM
Sergey Sharybin (sergey) claimed this task.

Improving cycle solver in new dependency graph is still a todo. So thanks for the report, but closing it now.

P.S. Your setup wouldn't work reliably in old dependency graph either.