Fix Skeleton3D dirty update notification #78623
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #78470 (second try, my first PR fixed the another issue only)
Bisected the regression to #75901 and the change it made to Skeleton3D. After some testing, it's seems that at least
push_notification(NOTIFICATION_UPDATE_SKELETON);
must be called to catch all skeleton update paths in my test projects and in the linked MRP (even if the node is not in the scene tree). I leftnotify_deferred_thread_group(NOTIFICATION_UPDATE_SKELETON);
, but I'm not totally sure where it is needed. This place seems to be the only place in the entire Godot codebase where it is actually directly called so the behaviour is a bit hard to understand. reduz does discuss that in the node processing PR, but not very in-deph.So, feedback very much appreciated.
edit:
After some more digging (see my second post here), I'm becoming more convinced that the real solution to this bug and possibly #77548 is to either fix or tweak some notification / thread group processing changes done in #75901. I'm keeping this PR open for discussion or in case we actually want to revert to the old way of handling notifications in some places.