diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp
index a730255..09bbd56 100644
--- a/gm/yuvtorgbeffect.cpp
+++ b/gm/yuvtorgbeffect.cpp
@@ -101,7 +101,6 @@
         constexpr SkScalar kDrawPad = 10.f;
         constexpr SkScalar kTestPad = 10.f;
         constexpr SkScalar kColorSpaceOffset = 36.f;
-        SkISize sizes[3] = {{YSIZE, YSIZE}, {USIZE, USIZE}, {VSIZE, VSIZE}};
 
         for (int space = kJPEG_SkYUVColorSpace; space <= kLastEnum_SkYUVColorSpace; ++space) {
             SkRect renderRect = SkRect::MakeWH(SkIntToScalar(fBmp[0].width()),
@@ -119,7 +118,6 @@
                         GrYUVtoRGBEffect::Make(proxy[indices[i][0]],
                                                proxy[indices[i][1]],
                                                proxy[indices[i][2]],
-                                               sizes,
                                                static_cast<SkYUVColorSpace>(space),
                                                false));
                 if (fp) {
@@ -227,7 +225,6 @@
         constexpr SkScalar kDrawPad = 10.f;
         constexpr SkScalar kTestPad = 10.f;
         constexpr SkScalar kColorSpaceOffset = 36.f;
-        SkISize sizes[3] = {{YSIZE, YSIZE}, {USIZE, USIZE}, {VSIZE, VSIZE}};
 
         for (int space = kJPEG_SkYUVColorSpace; space <= kLastEnum_SkYUVColorSpace; ++space) {
             SkRect renderRect =
@@ -239,7 +236,7 @@
 
             GrPaint grPaint;
             grPaint.setXPFactory(GrPorterDuffXPFactory::Get(SkBlendMode::kSrc));
-            auto fp = GrYUVtoRGBEffect::Make(proxy[0], proxy[1], proxy[2], sizes,
+            auto fp = GrYUVtoRGBEffect::Make(proxy[0], proxy[1], proxy[2],
                                              static_cast<SkYUVColorSpace>(space), true);
             if (fp) {
                 SkMatrix viewMatrix;
diff --git a/src/gpu/GrYUVProvider.cpp b/src/gpu/GrYUVProvider.cpp
index 8ffc491..3c6c7f7 100644
--- a/src/gpu/GrYUVProvider.cpp
+++ b/src/gpu/GrYUVProvider.cpp
@@ -124,7 +124,7 @@
             GrYUVtoRGBEffect::Make(std::move(yuvTextureProxies[0]),
                                    std::move(yuvTextureProxies[1]),
                                    std::move(yuvTextureProxies[2]),
-                                   yuvInfo.fSizeInfo.fSizes, yuvInfo.fColorSpace, false);
+                                   yuvInfo.fColorSpace, false);
     paint.addColorFragmentProcessor(std::move(yuvToRgbProcessor));
 
     // If the caller expects the pixels in a different color space than the one from the image,
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.cpp b/src/gpu/effects/GrYUVtoRGBEffect.cpp
index 814b69a..55e7902 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.cpp
+++ b/src/gpu/effects/GrYUVtoRGBEffect.cpp
@@ -27,22 +27,21 @@
                                                                     uProxy,
                                                             sk_sp<GrTextureProxy>
                                                                     vProxy,
-                                                            const SkISize sizes[3],
                                                             SkYUVColorSpace colorSpace,
                                                             bool nv12) {
     SkScalar w[3], h[3];
-    w[0] = SkIntToScalar(sizes[0].fWidth);
-    h[0] = SkIntToScalar(sizes[0].fHeight);
-    w[1] = SkIntToScalar(sizes[1].fWidth);
-    h[1] = SkIntToScalar(sizes[1].fHeight);
-    w[2] = SkIntToScalar(sizes[2].fWidth);
-    h[2] = SkIntToScalar(sizes[2].fHeight);
+    w[0] = SkIntToScalar(yProxy->width());
+    h[0] = SkIntToScalar(yProxy->height());
+    w[1] = SkIntToScalar(uProxy->width());
+    h[1] = SkIntToScalar(uProxy->height());
+    w[2] = SkIntToScalar(vProxy->width());
+    h[2] = SkIntToScalar(vProxy->height());
     SkMatrix yTransform = SkMatrix::I();
     SkMatrix uTransform = SkMatrix::MakeScale(w[1] / w[0], h[1] / h[0]);
     SkMatrix vTransform = SkMatrix::MakeScale(w[2] / w[0], h[2] / h[0]);
     GrSamplerState::Filter uvFilterMode =
-            ((sizes[1].fWidth != sizes[0].fWidth) || (sizes[1].fHeight != sizes[0].fHeight) ||
-             (sizes[2].fWidth != sizes[0].fWidth) || (sizes[2].fHeight != sizes[0].fHeight))
+            ((uProxy->width() != yProxy->width()) || (uProxy->height() != yProxy->height()) ||
+             (vProxy->width() != yProxy->width()) || (vProxy->height() != yProxy->height()))
                     ? GrSamplerState::Filter::kBilerp
                     : GrSamplerState::Filter::kNearest;
     SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.fp b/src/gpu/effects/GrYUVtoRGBEffect.fp
index 9b08fbd..e49feda 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.fp
+++ b/src/gpu/effects/GrYUVtoRGBEffect.fp
@@ -40,7 +40,6 @@
     static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> yProxy,
                                                      sk_sp<GrTextureProxy> uProxy,
                                                      sk_sp<GrTextureProxy> vProxy,
-                                                     const SkISize sizes[3],
                                                      SkYUVColorSpace colorSpace, bool nv12);
 }
 
@@ -69,24 +68,23 @@
     std::unique_ptr<GrFragmentProcessor> GrYUVtoRGBEffect::Make(sk_sp<GrTextureProxy> yProxy,
                                                                 sk_sp<GrTextureProxy> uProxy,
                                                                 sk_sp<GrTextureProxy> vProxy,
-                                                                const SkISize sizes[3],
                                                                 SkYUVColorSpace colorSpace,
                                                                 bool nv12) {
         SkScalar w[3], h[3];
-        w[0] = SkIntToScalar(sizes[0].fWidth);
-        h[0] = SkIntToScalar(sizes[0].fHeight);
-        w[1] = SkIntToScalar(sizes[1].fWidth);
-        h[1] = SkIntToScalar(sizes[1].fHeight);
-        w[2] = SkIntToScalar(sizes[2].fWidth);
-        h[2] = SkIntToScalar(sizes[2].fHeight);
+        w[0] = SkIntToScalar(yProxy->width());
+        h[0] = SkIntToScalar(yProxy->height());
+        w[1] = SkIntToScalar(uProxy->width());
+        h[1] = SkIntToScalar(uProxy->height());
+        w[2] = SkIntToScalar(vProxy->width());
+        h[2] = SkIntToScalar(vProxy->height());
         SkMatrix yTransform = SkMatrix::I();
         SkMatrix uTransform = SkMatrix::MakeScale(w[1] / w[0], h[1] / h[0]);
         SkMatrix vTransform = SkMatrix::MakeScale(w[2] / w[0], h[2] / h[0]);
         GrSamplerState::Filter uvFilterMode =
-            ((sizes[1].fWidth  != sizes[0].fWidth) ||
-             (sizes[1].fHeight != sizes[0].fHeight) ||
-             (sizes[2].fWidth  != sizes[0].fWidth) ||
-             (sizes[2].fHeight != sizes[0].fHeight)) ?
+            ((uProxy->width()  != yProxy->width()) ||
+             (uProxy->height() != yProxy->height()) ||
+             (vProxy->width()  != yProxy->width()) ||
+             (vProxy->height() != yProxy->height())) ?
             GrSamplerState::Filter::kBilerp :
             GrSamplerState::Filter::kNearest;
         SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.h b/src/gpu/effects/GrYUVtoRGBEffect.h
index 7008fbe..3d44285 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.h
+++ b/src/gpu/effects/GrYUVtoRGBEffect.h
@@ -18,7 +18,6 @@
     static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> yProxy,
                                                      sk_sp<GrTextureProxy> uProxy,
                                                      sk_sp<GrTextureProxy> vProxy,
-                                                     const SkISize sizes[3],
                                                      SkYUVColorSpace colorSpace, bool nv12);
     SkMatrix44 ySamplerTransform() const { return fYSamplerTransform; }
     SkMatrix44 uSamplerTransform() const { return fUSamplerTransform; }
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 7b24858..359782f7 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -439,14 +439,10 @@
 
     GrPaint paint;
     paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
-    // TODO: Move the sizes into GrYUVtoRGBEffect since this can just be done there.
-    SkISize sizes[] = {{yProxy->width(), yProxy->height()},
-                       {uProxy->width(), uProxy->height()},
-                       {vProxy->width(), vProxy->height()}};
     // TODO: Modify the fragment processor to sample from different channel instead of taking nv12
     // bool.
     paint.addColorFragmentProcessor(
-            GrYUVtoRGBEffect::Make(yProxy, uProxy, vProxy, sizes, colorSpace, nv12));
+            GrYUVtoRGBEffect::Make(yProxy, uProxy, vProxy, colorSpace, nv12));
 
     const SkRect rect = SkRect::MakeIWH(width, height);
 
