Maniphest T60783

(Certain) shapekeys stopped working in 2.8
Closed, Resolved

Assigned To
Bastien Montagne (mont29)
Authored By
Daniel Salazar (zanqdo)
Jan 23 2019, 6:20 AM
Tags
  • BF Blender
Subscribers
Bastien Montagne (mont29)
Brecht Van Lommel (brecht)
Daniel Salazar (zanqdo)
Henrique Balduino Gonzaga (henriquebg88)
Philipp Oeser (lichtwerk)
William Reynish (billreynish)

Description

System Information
Operating system: Windows 10 64
Graphics card: GTX 1080

Blender Version
Broken: dc3b5024be1a

Short description of error
Recent builds broke shapekeys on this object. If you delete all shapekeys including base and add a new shapekey it will work.

Exact steps for others to reproduce the error
Open provided blend file and change value of shapekey 01. Nothing will happen even when the shapekey should show a deformation

Revisions and Commits

rB Blender

Related Objects

Mentioned Here
rB47be4e9a3379: Fix T60401: Shape key's from pointer being set to evaluated CoW ID.
T60249: Crash exporting fbx with shape keys
T60401: Shapekey transfer cause the crash of blender
rBdc3b5024be1a: Cleanup: add BEGIN/END to GPL headers

Event Timeline

Daniel Salazar (zanqdo) created this task.Jan 23 2019, 6:20 AM
Philipp Oeser (lichtwerk) lowered the priority of this task from 90 to 50.Jan 23 2019, 11:56 AM
Philipp Oeser (lichtwerk) added subscribers: Bastien Montagne (mont29), Philipp Oeser (lichtwerk).

Not sure if this has the same roots as T60401, T60249
There was also the fix by @Bastien Montagne (mont29) (rB47be4e9a3379)

But I can confirm example file is not working in 2.8 (if you append this into 2.79 it is working though...)

Philipp Oeser (lichtwerk) renamed this task from Shapekeys stopped working in 2.8 to (Certain) shapekeys stopped working in 2.8.Jan 23 2019, 11:57 AM
Philipp Oeser (lichtwerk) removed a project: BF Blender: 2.8.
Bastien Montagne (mont29) claimed this task.Jan 23 2019, 2:00 PM

Will check that

Bastien Montagne (mont29) lowered the priority of this task from 50 to 30.Jan 24 2019, 2:41 PM

This is kind of expected, since this mesh's shpaekey does not have the 'user' ('from') pointer set properly. This makes it a corrupted file, so what we need here is a way to reproduce such error.

(If you remove all shapekeys and add new one, everything works as expected).

Philipp Oeser (lichtwerk) added a comment.Jan 24 2019, 2:45 PM

just out of pure interest: are we stricter here in 2.8? (since 2.79 handles the appended ob nicely?)

Bastien Montagne (mont29) added a comment.Jan 24 2019, 5:53 PM

Yes, since shapekeys are now often evaluated in CoW context (i.e. with IDs that are not orig ones), the 'fix' that was setting 'from' pointer to correct ID when it was NULL is no more valid, and had to be removed (rB47be4e9a3379).

In any case, doing that sort of on-the-fly fixes is very, very bad practice, since it allows real bug(s) to remain unnoticed forever. So now we need to know how that bloody pointer can get NULLified.

Daniel Salazar (zanqdo) added a comment.Jan 24 2019, 9:13 PM

Oh boy.. we where using a blender build from about 2 weeks or so, that's all I can think of

Brecht Van Lommel (brecht) merged a task: T60858: Shape Keys stoped working.Jan 25 2019, 3:05 PM
Brecht Van Lommel (brecht) added subscribers: Henrique Balduino Gonzaga (henriquebg88), William Reynish (billreynish).
Brecht Van Lommel (brecht) added a subscriber: Brecht Van Lommel (brecht).Jan 25 2019, 3:08 PM

@Bastien Montagne (mont29), from might be NULL if it was saved with a COW id.

Can we do a version patch to fix such broken from pointers?

Bastien Montagne (mont29) added a comment.Jan 25 2019, 3:12 PM

@Brecht Van Lommel (brecht) actually, was thinking about doing a systematic check on load for that, and also add a check for that issue on write (in our optional 'check file validity' that was also used to track down the library issue at the studio).

Not sure which one is best, doing do_version only, or systematic check (at least for now), at read time?

Brecht Van Lommel (brecht) added a comment.Jan 25 2019, 3:25 PM

@Bastien Montagne (mont29), always doing it as part of lib linking seems fine too.

At some point we should really make Key not a datablock anymore, it makes no sense, but it's probably somewhat tricky.

Bastien Montagne (mont29) changed the task status from Unknown Status to Resolved by committing rBda6bda64839e: Fix T60783: (Certain) shapekeys stopped working in 2.8..Jan 25 2019, 5:48 PM
Bastien Montagne (mont29) added a commit: rBda6bda64839e: Fix T60783: (Certain) shapekeys stopped working in 2.8..