| Index: src/gpu/GrTextureToYUVPlanes.cpp | 
| diff --git a/src/gpu/GrTextureToYUVPlanes.cpp b/src/gpu/GrTextureToYUVPlanes.cpp | 
| index 7a8647a86756254391c297bd49f0221500bcf0cc..5e7dafecf33e279eec008d406e953821c4f9378f 100644 | 
| --- a/src/gpu/GrTextureToYUVPlanes.cpp | 
| +++ b/src/gpu/GrTextureToYUVPlanes.cpp | 
| @@ -58,45 +58,48 @@ bool GrTextureToYUVPlanes(GrTexture* texture, const SkISize sizes[3], void* cons | 
| sk_sp<GrDrawContext> uDrawContext; | 
| sk_sp<GrDrawContext> vDrawContext; | 
|  | 
| -        GrPixelConfig singleChannelPixelConfig; | 
| -        if (context->caps()->isConfigRenderable(kAlpha_8_GrPixelConfig, false)) { | 
| -            singleChannelPixelConfig = kAlpha_8_GrPixelConfig; | 
| -        } else { | 
| -            singleChannelPixelConfig = kRGBA_8888_GrPixelConfig; | 
| -        } | 
| - | 
| // We issue draw(s) to convert from RGBA to Y, U, and V. All three planes may have different | 
| // sizes however we optimize for two other cases - all planes are the same (1 draw to YUV), | 
| // and U and V are the same but Y differs (2 draws, one for Y, one for UV). | 
| if (sizes[0] == sizes[1] && sizes[1] == sizes[2]) { | 
| -            yuvDrawContext = context->makeDrawContext(SkBackingFit::kApprox, | 
| -                                                      sizes[0].fWidth, sizes[0].fHeight, | 
| -                                                      kRGBA_8888_GrPixelConfig, nullptr); | 
| +            yuvDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox, | 
| +                                                                  sizes[0].fWidth, | 
| +                                                                  sizes[0].fHeight, | 
| +                                                                  kRGBA_8888_GrPixelConfig, | 
| +                                                                  nullptr); | 
| if (!yuvDrawContext) { | 
| return false; | 
| } | 
| } else { | 
| -            yDrawContext = context->makeDrawContext(SkBackingFit::kApprox, | 
| -                                                    sizes[0].fWidth, sizes[0].fHeight, | 
| -                                                    singleChannelPixelConfig, nullptr); | 
| +            yDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox, | 
| +                                                                sizes[0].fWidth, | 
| +                                                                sizes[0].fHeight, | 
| +                                                                kAlpha_8_GrPixelConfig, | 
| +                                                                nullptr); | 
| if (!yDrawContext) { | 
| return false; | 
| } | 
| if (sizes[1] == sizes[2]) { | 
| // TODO: Add support for GL_RG when available. | 
| -                uvDrawContext = context->makeDrawContext(SkBackingFit::kApprox, | 
| -                                                         sizes[1].fWidth, sizes[1].fHeight, | 
| -                                                         kRGBA_8888_GrPixelConfig, nullptr); | 
| +                uvDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox, | 
| +                                                                     sizes[1].fWidth, | 
| +                                                                     sizes[1].fHeight, | 
| +                                                                     kRGBA_8888_GrPixelConfig, | 
| +                                                                     nullptr); | 
| if (!uvDrawContext) { | 
| return false; | 
| } | 
| } else { | 
| -                uDrawContext = context->makeDrawContext(SkBackingFit::kApprox, | 
| -                                                        sizes[1].fWidth, sizes[1].fHeight, | 
| -                                                        singleChannelPixelConfig, nullptr); | 
| -                vDrawContext = context->makeDrawContext(SkBackingFit::kApprox, | 
| -                                                        sizes[2].fWidth, sizes[2].fHeight, | 
| -                                                        singleChannelPixelConfig, nullptr); | 
| +                uDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox, | 
| +                                                                    sizes[1].fWidth, | 
| +                                                                    sizes[1].fHeight, | 
| +                                                                    kAlpha_8_GrPixelConfig, | 
| +                                                                    nullptr); | 
| +                vDrawContext = context->makeDrawContextWithFallback(SkBackingFit::kApprox, | 
| +                                                                    sizes[2].fWidth, | 
| +                                                                    sizes[2].fHeight, | 
| +                                                                    kAlpha_8_GrPixelConfig, | 
| +                                                                    nullptr); | 
| if (!uDrawContext || !vDrawContext) { | 
| return false; | 
| } | 
|  |