| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index 4d82b201e74374db6a3ac9f2683e448fe4ecde11..08eab55d26e0008cf5fbf53fd135489f1713e6c8 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -191,15 +191,19 @@ GrRenderTarget* SkGpuDevice::CreateRenderTarget(GrContext* context, SkBudgeted b
|
| SkColorType ct = origInfo.colorType();
|
| SkAlphaType at = origInfo.alphaType();
|
| SkColorProfileType pt = origInfo.profileType();
|
| - if (kRGB_565_SkColorType == ct) {
|
| + if (kRGB_565_SkColorType == ct || kGray_8_SkColorType == ct) {
|
| at = kOpaque_SkAlphaType; // force this setting
|
| - } else if (ct != kBGRA_8888_SkColorType && ct != kRGBA_8888_SkColorType) {
|
| - // Fall back from whatever ct was to default of kRGBA or kBGRA which is aliased as kN32
|
| - ct = kN32_SkColorType;
|
| }
|
| if (kOpaque_SkAlphaType != at) {
|
| at = kPremul_SkAlphaType; // force this setting
|
| }
|
| +
|
| + GrPixelConfig origConfig = SkImageInfo2GrPixelConfig(ct, at, pt, *context->caps());
|
| + if (!context->caps()->isConfigRenderable(origConfig, sampleCount > 0)) {
|
| + // Fall back from whatever ct was to default of kRGBA or kBGRA which is aliased as kN32
|
| + ct = kN32_SkColorType;
|
| + }
|
| +
|
| const SkImageInfo info = SkImageInfo::Make(origInfo.width(), origInfo.height(), ct, at, pt);
|
|
|
| GrSurfaceDesc desc;
|
|
|