0f11e115d7
MotionBlurEffect makes use of many abilities some consider to be unnatural. Notably, it mutates the state of its subtree at render time (gasp) to sample various time points. Mutation triggers scene graph invalidation, which bubbles up the ancestor chain. While we immediately revalidate the subtree, we cannot do the same for ancestors (no full scene knowledge). This means post-rendering, we leave some SG nodes dirty - which triggers various debug asserts). The easiest fix is to temporarily suppress invalidation bubbling at the MotionBlurEffect node level (this is safe, because we always revalidate the subtree). Also add a post-render assert for tighter state validation. Change-Id: I376b7a8880f71d85e595c419334b42bc4720ac65 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/243420 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org> |
||
---|---|---|
.. | ||
SkSGClipEffect.cpp | ||
SkSGColorFilter.cpp | ||
SkSGDraw.cpp | ||
SkSGEffectNode.cpp | ||
SkSGGeometryNode.cpp | ||
SkSGGeometryTransform.cpp | ||
SkSGGradient.cpp | ||
SkSGGroup.cpp | ||
SkSGImage.cpp | ||
SkSGInvalidationController.cpp | ||
SkSGMaskEffect.cpp | ||
SkSGMerge.cpp | ||
SkSGNode.cpp | ||
SkSGNodePriv.h | ||
SkSGOpacityEffect.cpp | ||
SkSGPaint.cpp | ||
SkSGPath.cpp | ||
SkSGPlane.cpp | ||
SkSGRect.cpp | ||
SkSGRenderEffect.cpp | ||
SkSGRenderNode.cpp | ||
SkSGRoundEffect.cpp | ||
SkSGScene.cpp | ||
SkSGText.cpp | ||
SkSGTransform.cpp | ||
SkSGTransformPriv.h | ||
SkSGTrimEffect.cpp |