skia2/modules/sksg/src
Florin Malita 0f11e115d7 [skottie] Fix motion blur asserts
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>
2019-09-23 17:34:42 +00:00
..
SkSGClipEffect.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGColorFilter.cpp stop calling legacy 255-biased colormatrix 2019-04-30 16:59:36 +00:00
SkSGDraw.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGEffectNode.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGGeometryNode.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGGeometryTransform.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGGradient.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGGroup.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGImage.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGInvalidationController.cpp [skottie] Expose SG inval controller on seek() 2019-07-22 16:33:15 +00:00
SkSGMaskEffect.cpp [sksg] Fix mask/context overrides interaction 2019-09-04 14:09:44 +00:00
SkSGMerge.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGNode.cpp [sksg] RenderNode visibility control 2019-06-19 00:49:15 +00:00
SkSGNodePriv.h [skottie] Caching motion tile 2019-07-10 19:13:41 +00:00
SkSGOpacityEffect.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGPaint.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGPath.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGPlane.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGRect.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGRenderEffect.cpp Update skottie/sksg to use new filter factories 2019-08-02 14:51:42 +00:00
SkSGRenderNode.cpp [skottie] Fix motion blur asserts 2019-09-23 17:34:42 +00:00
SkSGRoundEffect.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGScene.cpp [skottie] Expose SG inval controller on seek() 2019-07-22 16:33:15 +00:00
SkSGText.cpp Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
SkSGTransform.cpp [skottie] Parented camera support 2019-04-25 17:02:49 +00:00
SkSGTransformPriv.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSGTrimEffect.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00