Index: src/gpu/GrTextureToYUVPlanes.cpp |
diff --git a/src/gpu/GrTextureToYUVPlanes.cpp b/src/gpu/GrTextureToYUVPlanes.cpp |
index 6a8d7b6676e43a684c92e936419289a4b192cdd1..19283eef4b56ff8740d98e0092a424b0c3bb727c 100644 |
--- a/src/gpu/GrTextureToYUVPlanes.cpp |
+++ b/src/gpu/GrTextureToYUVPlanes.cpp |
@@ -170,7 +170,12 @@ bool GrTextureToYUVPlanes(GrTexture* texture, const SkISize sizes[3], void* cons |
SkASSERT(sizes[0] == sizes[1] && sizes[1] == sizes[2]); |
SkISize yuvSize = sizes[0]; |
// We have no kRGB_888 pixel format, so readback rgba and then copy three channels. |
+#if defined(GOOGLE3) |
+ // Stack frame size is limited in GOOGLE3. |
+ SkAutoSTMalloc<48 * 48, uint32_t> tempYUV(yuvSize.fWidth * yuvSize.fHeight); |
+#else |
SkAutoSTMalloc<128 * 128, uint32_t> tempYUV(yuvSize.fWidth * yuvSize.fHeight); |
+#endif |
if (!yuvTex->readPixels(0, 0, yuvSize.fWidth, yuvSize.fHeight, |
kRGBA_8888_GrPixelConfig, tempYUV.get(), 0)) { |
return false; |
@@ -207,7 +212,12 @@ bool GrTextureToYUVPlanes(GrTexture* texture, const SkISize sizes[3], void* cons |
SkASSERT(sizes[1].fWidth == sizes[2].fWidth); |
SkISize uvSize = sizes[1]; |
// We have no kRG_88 pixel format, so readback rgba and then copy two channels. |
+#if defined(GOOGLE3) |
+ // Stack frame size is limited in GOOGLE3. |
+ SkAutoSTMalloc<48 * 48, uint32_t> tempUV(uvSize.fWidth * uvSize.fHeight); |
+#else |
SkAutoSTMalloc<128 * 128, uint32_t> tempUV(uvSize.fWidth * uvSize.fHeight); |
+#endif |
if (!uvTex->readPixels(0, 0, uvSize.fWidth, uvSize.fHeight, |
kRGBA_8888_GrPixelConfig, tempUV.get(), 0)) { |
return false; |