Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index 546b0bf692a57b621d28ae7dd7e7a1b34b688ed5..da7907be9f5de1a43017416a02126612aef8fa3c 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -114,7 +114,7 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
} else { |
// Qualcomm Adreno drivers appear to have issues with texture storage. |
fTexStorageSupport = (version >= GR_GL_VER(3,0) && |
- kQualcomm_GrGLVendor != ctxInfo.vendor()) || |
+ kQualcomm_GrGLVendor != ctxInfo.vendor()) && |
ctxInfo.hasExtension("GL_EXT_texture_storage"); |
} |
@@ -360,12 +360,12 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
} else { |
// Unextended GLES2 doesn't have any buffer mapping. |
fMapBufferFlags = kNone_MapBufferType; |
- if (ctxInfo.hasExtension("GL_CHROMIUM_map_sub")) { |
- fMapBufferFlags = kCanMap_MapFlag | kSubset_MapFlag; |
- fMapBufferType = kChromium_MapBufferType; |
- } else if (version >= GR_GL_VER(3, 0) || ctxInfo.hasExtension("GL_EXT_map_buffer_range")) { |
+ if (version >= GR_GL_VER(3, 0) || ctxInfo.hasExtension("GL_EXT_map_buffer_range")) { |
fMapBufferFlags = kCanMap_MapFlag | kSubset_MapFlag; |
fMapBufferType = kMapBufferRange_MapBufferType; |
+ } else if (ctxInfo.hasExtension("GL_CHROMIUM_map_sub")) { |
+ fMapBufferFlags = kCanMap_MapFlag | kSubset_MapFlag; |
+ fMapBufferType = kChromium_MapBufferType; |
} else if (ctxInfo.hasExtension("GL_OES_mapbuffer")) { |
fMapBufferFlags = kCanMap_MapFlag; |
fMapBufferType = kMapBuffer_MapBufferType; |
@@ -520,6 +520,17 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
fTextureSwizzleSupport = false; |
} |
+ // TODO: remove after command buffer supports full ES 3.0. |
+ if (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3, 0) && |
+ kChromium_GrGLDriver == ctxInfo.driver()) { |
+ fTexStorageSupport = false; |
+ fSupportsInstancedDraws = false; |
+ fTextureSwizzleSupport = false; |
+ SkASSERT(ctxInfo.hasExtension("GL_CHROMIUM_map_sub")); |
+ fMapBufferFlags = kCanMap_MapFlag | kSubset_MapFlag; |
+ fMapBufferType = kChromium_MapBufferType; |
+ } |
+ |
// Requires fTextureRedSupport, fTextureSwizzleSupport, msaa support, ES compatibility have |
// already been detected. |
this->initConfigTable(ctxInfo, gli, glslCaps); |