Maniphest T63332

Cached B-Bone segment transform data is lost when mode is toggled.
Closed, ResolvedBUG

Assigned To
Sergey Sharybin (sergey)
Authored By
Alexander Gavrilov (angavrilov)
Apr 6 2019, 12:31 PM
Tags
  • BF Blender
Subscribers
Alexander Gavrilov (angavrilov)
Sam (Sam200)

Description

Blender Version

Broken: 2.80-542725d3e973

Short description of error

Toggling the mode on the armature causes a COW update that destroys cached B-Bone segment transform data. This data is then not recomputed even if there are users that need it.

Exact steps for others to reproduce the error

  1. Open the file.
  2. In the properties panel there is a Copy Transforms constraint. Changing the head/tail value moves it along the B-Bone.
  3. Tab the armature to Object mode.
  4. Now changing the head/tail value will snap the constraint away from the B-Bone to its underlying straight shape.

This also happens with Armature modifier, but the constraint case is simpler to show.

Revisions and Commits

rB Blender

Event Timeline

Alexander Gavrilov (angavrilov) created this task.Apr 6 2019, 12:31 PM
Alexander Gavrilov (angavrilov) assigned this task to Sergey Sharybin (sergey).EditedApr 6 2019, 12:34 PM
Alexander Gavrilov (angavrilov) lowered the priority of this task from 90 to High.

I debugged this enough to see that it's COW that seems to destroy the data, but I have no idea how to fix this. This issue is especially confusing because you actually need to force update the user object to see that the data is gone.

P.S. Since you don't appear in chat to discuss, you get a bug :P

Sam (Sam200) added a subscriber: Sam (Sam200).Apr 6 2019, 4:57 PM

Actually, when stepping in debugger, you can see that the mode change itself actually recreates the data after freeing it.

It is the changing of the head-tail setting on the constraint that is freeing the data and not re-creating it.

Alexander Gavrilov (angavrilov) changed the task status from Unknown Status to Resolved by committing rB7ec6bca92fd0: Fix T63332: backup and restore bPoseChannel_Runtime data during COW..Apr 18 2019, 8:32 PM
Alexander Gavrilov (angavrilov) added a commit: rB7ec6bca92fd0: Fix T63332: backup and restore bPoseChannel_Runtime data during COW..