Index: src/gpu/gl/GrGpuGL.cpp |
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp |
index a22988b01bbb8a117ea1262099dc8a934c076b25..35bc86e9b921d10e30a367f46a89d63d3267a39c 100644 |
--- a/src/gpu/gl/GrGpuGL.cpp |
+++ b/src/gpu/gl/GrGpuGL.cpp |
@@ -558,17 +558,10 @@ bool GrGpuGL::uploadTexData(const GrSurfaceDesc& desc, |
GrGLenum externalFormat = 0x0; // suprress warning |
GrGLenum externalType = 0x0;// suprress warning |
- // glTexStorage requires sized internal formats on both desktop and ES. ES2 requires an unsized |
- // format for glTexImage, unlike ES3 and desktop. However, we allow the driver to decide the |
- // size of the internal format whenever possible and so only use a sized internal format when |
- // using texture storage. |
- bool useSizedFormat = useTexStorage; |
- // Many versions of the ES3 drivers on various platforms will not accept GL_RED in |
- // glTexImage2D for the internal format but will accept GL_R8. |
- if (kGLES_GrGLStandard == this->glStandard() && this->glVersion() >= GR_GL_VER(3, 0) && |
- kAlpha_8_GrPixelConfig == dataConfig) { |
- useSizedFormat = true; |
- } |
+ // glTexStorage requires sized internal formats on both desktop and ES. |
+ // ES2 requires an unsized format for glTexImage. On ES3 and desktop we default to sized. |
+ bool useSizedFormat = useTexStorage || kGL_GrGLStandard == this->glStandard() || |
+ this->glVersion() >= GR_GL_VER(3, 0); |
if (!this->configToGLFormats(dataConfig, useSizedFormat, &internalFormat, |
&externalFormat, &externalType)) { |
return false; |
@@ -2170,7 +2163,8 @@ bool GrGpuGL::configToGLFormats(GrPixelConfig config, |
*internalFormat = GR_GL_RGB; |
*externalFormat = GR_GL_RGB; |
if (getSizedInternalFormat) { |
- if (this->glStandard() == kGL_GrGLStandard) { |
+ if (this->glStandard() == kGL_GrGLStandard && |
bsalomon
2014/12/16 15:28:18
won't this check happen in line 2130?
|
+ !this->glCaps().ES2CompatibilitySupport()) { |
return false; |
} else { |
*internalFormat = GR_GL_RGB565; |