Index: src/gpu/gl/GrGLCaps.cpp |
=================================================================== |
--- src/gpu/gl/GrGLCaps.cpp (revision 10811) |
+++ src/gpu/gl/GrGLCaps.cpp (working copy) |
@@ -159,11 +159,17 @@ |
fTextureUsageSupport = (kES_GrGLBinding == binding) && |
ctxInfo.hasExtension("GL_ANGLE_texture_usage"); |
- // Tex storage is in desktop 4.2 and can be an extension to desktop or ES. |
- fTexStorageSupport = (kDesktop_GrGLBinding == binding && |
- version >= GR_GL_VER(4,2)) || |
- ctxInfo.hasExtension("GL_ARB_texture_storage") || |
- ctxInfo.hasExtension("GL_EXT_texture_storage"); |
+ if (kDesktop_GrGLBinding == binding) { |
+ // The EXT version can apply to either GL or GLES. |
+ fTexStorageSupport = version >= GR_GL_VER(4,2) || |
+ ctxInfo.hasExtension("GL_ARB_texture_storage") || |
+ ctxInfo.hasExtension("GL_EXT_texture_storage"); |
+ } else { |
+ // Qualcomm Adreno drivers appear to have issues with texture storage. |
+ fTexStorageSupport = (version >= GR_GL_VER(3,0) && |
+ kQualcomm_GrGLVendor != ctxInfo.vendor()) || |
+ ctxInfo.hasExtension("GL_EXT_texture_storage"); |
+ } |
// ARB_texture_rg is part of OpenGL 3.0, but mesa doesn't support it if |
// it doesn't have ARB_texture_rg extension. |