| Index: src/gpu/gl/GrGpuGL.cpp
|
| diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
|
| index 52e3c33601fee7ed886385acf16f600d0cea666b..b62129fe879603fa421e216aef083ac9544f5f1d 100644
|
| --- a/src/gpu/gl/GrGpuGL.cpp
|
| +++ b/src/gpu/gl/GrGpuGL.cpp
|
| @@ -137,9 +137,7 @@ GrGpuGL::GrGpuGL(const GrGLContext& ctx, GrContext* context)
|
| GrPrintf("------ RENDERER %s\n", renderer);
|
| GrPrintf("------ VERSION %s\n", version);
|
| GrPrintf("------ EXTENSIONS\n");
|
| -#if 0 // TODO: Reenable this after GrGLInterface's extensions can be accessed safely.
|
| - ctx.extensions().print();
|
| -#endif
|
| + ctx.extensions().print();
|
| GrPrintf("\n");
|
| GrPrintf(this->glCaps().dump().c_str());
|
| }
|
| @@ -574,13 +572,21 @@ bool GrGpuGL::uploadTexData(const GrGLTexture::Desc& desc,
|
| }
|
|
|
| GrGLenum internalFormat;
|
| - GrGLenum externalFormat;
|
| - GrGLenum externalType;
|
| + 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.
|
| - if (!this->configToGLFormats(dataConfig, useTexStorage, &internalFormat,
|
| + bool useSizedFormat = useTexStorage;
|
| + // At least some versions of the desktop ES3 drivers for NVIDIA won't accept GL_RED in
|
| + // glTexImage2D for the internal format but will accept GL_R8.
|
| + if (!useSizedFormat && kNVIDIA_GrGLVendor == this->glContext().vendor() &&
|
| + kGLES_GrGLStandard == this->glStandard() && this->glVersion() >= GR_GL_VER(3, 0)) {
|
| + useSizedFormat = true;
|
| + }
|
| + if (!this->configToGLFormats(dataConfig, useSizedFormat, &internalFormat,
|
| &externalFormat, &externalType)) {
|
| return false;
|
| }
|
|
|