[skottie] Clamp OpacityEffect values

Animated opacities can yield values > 1, which trigger RenderContext
asserts.

Clamp explicitly to avoid this issue.  Also avoid allocating a new
RenderContext when the value is >= 1 (no op).

TBR=
Change-Id: I1639af7ab50f4ccf9cd79cb950f14b64dd2619ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/408256
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
diff --git a/modules/sksg/src/SkSGOpacityEffect.cpp b/modules/sksg/src/SkSGOpacityEffect.cpp
index bb1f94d..513909f6 100644
--- a/modules/sksg/src/SkSGOpacityEffect.cpp
+++ b/modules/sksg/src/SkSGOpacityEffect.cpp
@@ -18,6 +18,12 @@
     if (fOpacity <= 0)
         return;
 
+    // opacity >= 1 has no effect
+    if (fOpacity >= 1) {
+        this->INHERITED::onRender(canvas, ctx);
+        return;
+    }
+
     const auto local_context = ScopedRenderContext(canvas, ctx).modulateOpacity(fOpacity);
 
     this->INHERITED::onRender(canvas, local_context);