You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/Atom/Feature/Common/Code/Source/MorphTargets
Tommy Walton 3182dc37c3
Fix for ATOM-15488 : Rendering out an animation with shadows crashes the editor (#794)
Previously, the SkinnedMeshFeatureProcessor assumed there would only be one skinning pass. However, that's not always the case. When rendering with track view, the feature processor was getting a pass that only updated once every three frames, which could lead to a condition where a skinned mesh was released, but the pass never submitted and cleared the previously added dispatch items, and one or two frames later it would go to submit after the skinned mesh and all of its resources had already been released.

-Modified the skinning and morph target compute passes to pull dispatch items from the feature processor instead of the feature processor pushing them to the passes.
-If more than one skinning (or morph target) pass is active in the frame, whichever one is first will submit all the dispatch items, and clear the feature processor's dispatch items before the next one tries to submit anything
-Moved the logic for caching shader options from the SkinnedMeshComputePass to the SkinnedMeshFeatureProcessor, since there may be more than one pass but only one feature processor per scene
5 years ago
..
MorphTargetComputePass.cpp Fix for ATOM-15488 : Rendering out an animation with shadows crashes the editor (#794) 5 years ago
MorphTargetComputePass.h Fix for ATOM-15488 : Rendering out an animation with shadows crashes the editor (#794) 5 years ago
MorphTargetDispatchItem.cpp Fix for ATOM-15488 : Rendering out an animation with shadows crashes the editor (#794) 5 years ago
MorphTargetDispatchItem.h Fix for ATOM-15488 : Rendering out an animation with shadows crashes the editor (#794) 5 years ago
MorphTargetInputBuffers.cpp Atom-15447 : Crash on null buffer with many morph targets 5 years ago