0396316fa4b42f8da3630522fcfd3eaf0d66fee8
Ultimately, the issue was caused by updating sound sequence handle in `AUD_SequenceEntry_setSound` on each new frame regardless if the modifier data has changed. This commit fixes the issue by implementing a means for modifiers to check, if their parameters or inputs are changed. This is done by storing these parameters in `StripModifierDataRuntime` struct, that is shared between all modifier types. This is not ideal, but it significantly simplifies dependency graph runtime store/restore code. Function `strip_update_sound_modifiers` passes boolean `needs_update` to strip stack update functions. If any needs to be updated, it sets value of `needs_update` to true allowing following update functions to skip parameter checking to speed up the process. Original code updated sound sequence handle twice. Once by function `BKE_sound_update_scene_sound` then by `strip_update_sound_modifiers`. If sound modifier is used, only `strip_update_sound_modifiers` needs to be called, so there is condition to decide which one of these functions is called. Also fixes #139605 Pull Request: https://projects.blender.org/blender/blender/pulls/141595
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
