| Index: src/gpu/gl/GrGpuGL.cpp
|
| diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
|
| index 2965cd4007c6bfaaab7f424142a35b2e0b6bd4f4..7d3920fad96349941eb51f6df07bd01fd65e08ea 100644
|
| --- a/src/gpu/gl/GrGpuGL.cpp
|
| +++ b/src/gpu/gl/GrGpuGL.cpp
|
| @@ -554,21 +554,14 @@ bool GrGLGpu::uploadTexData(const GrSurfaceDesc& desc,
|
| useTexStorage = desc.fConfig != kRGB_565_GrPixelConfig;
|
| }
|
|
|
| - GrGLenum internalFormat;
|
| - 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;
|
| - }
|
| + GrGLenum internalFormat = 0x0; // suppress warning
|
| + GrGLenum externalFormat = 0x0; // suppress warning
|
| + GrGLenum externalType = 0x0; // suppress warning
|
| +
|
| + // 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;
|
| @@ -2276,8 +2269,8 @@ bool GrGLGpu::configToGLFormats(GrPixelConfig config,
|
| *internalFormat = GR_GL_RGB;
|
| *externalFormat = GR_GL_RGB;
|
| if (getSizedInternalFormat) {
|
| - if (this->glStandard() == kGL_GrGLStandard) {
|
| - return false;
|
| + if (!this->glCaps().ES2CompatibilitySupport()) {
|
| + *internalFormat = GR_GL_RGB5;
|
| } else {
|
| *internalFormat = GR_GL_RGB565;
|
| }
|
|
|