Move paint modulation after color space xform when drawing images

The paint color has already been transformed to the destination color
space, so this prevents a double-transform when doing alpha-image draws.

Bug: skia:10555
Change-Id: I9d026d231199b22d9a67bc92bfe9a615295490b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306855
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp
index e06e8b1..9fbdca1 100644
--- a/src/gpu/SkGpuDevice_drawTexture.cpp
+++ b/src/gpu/SkGpuDevice_drawTexture.cpp
@@ -501,15 +501,12 @@
     } else {
         fp = producer->createFragmentProcessor(textureMatrix, subset, domain, sampler);
     }
-    if (fp) {
-        fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kModulate);
-    }
-    fp = GrColorSpaceXformEffect::Make(std::move(fp),
-                                       producer->colorSpace(), producer->alphaType(),
-                                       rtc->colorInfo().colorSpace(), kPremul_SkAlphaType);
     if (!fp) {
         return;
     }
+    fp = GrColorSpaceXformEffect::Make(std::move(fp), producer->colorSpace(), producer->alphaType(),
+                                       rtc->colorInfo().colorSpace(), kPremul_SkAlphaType);
+    fp = GrBlendFragmentProcessor::Make(std::move(fp), nullptr, SkBlendMode::kModulate);
 
     GrPaint grPaint;
     if (!SkPaintToGrPaintWithTexture(context, rtc->colorInfo(), paint, matrixProvider,