Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index 431390697b2eea8e8a7796a947f771a478b24a82..6a34a30771fbb1ad0bf81fe7d56990527b837570 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -41,7 +41,6 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions, |
fMultiDrawIndirectSupport = false; |
fBaseInstanceSupport = false; |
fCanDrawIndirectToFloat = false; |
- fUseNonVBOVertexAndIndexDynamicData = false; |
fIsCoreProfile = false; |
fBindFragDataLocationSupport = false; |
fRectangleTextureSupport = false; |
@@ -132,18 +131,6 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
fImagingSupport = kGL_GrGLStandard == standard && |
ctxInfo.hasExtension("GL_ARB_imaging"); |
- // SGX and Mali GPUs that are based on a tiled-deferred architecture that have trouble with |
- // frequently changing VBOs. We've measured a performance increase using non-VBO vertex |
- // data for dynamic content on these GPUs. Perhaps we should read the renderer string and |
- // limit this decision to specific GPU families rather than basing it on the vendor alone. |
- if (!GR_GL_MUST_USE_VBO && |
- !fIsCoreProfile && |
- (kARM_GrGLVendor == ctxInfo.vendor() || |
- kImagination_GrGLVendor == ctxInfo.vendor() || |
- kQualcomm_GrGLVendor == ctxInfo.vendor())) { |
- fUseNonVBOVertexAndIndexDynamicData = true; |
- } |
- |
// A driver but on the nexus 6 causes incorrect dst copies when invalidate is called beforehand. |
// Thus we are blacklisting this extension for now on Adreno4xx devices. |
if (kAdreno4xx_GrGLRenderer != ctxInfo.renderer() && |
@@ -344,6 +331,18 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
} |
} |
+ // SGX and Mali GPUs that are based on a tiled-deferred architecture that have trouble with |
+ // frequently changing VBOs. We've measured a performance increase using non-VBO vertex |
+ // data for dynamic content on these GPUs. Perhaps we should read the renderer string and |
+ // limit this decision to specific GPU families rather than basing it on the vendor alone. |
+ if (!GR_GL_MUST_USE_VBO && |
+ !fIsCoreProfile && |
+ (kARM_GrGLVendor == ctxInfo.vendor() || |
+ kImagination_GrGLVendor == ctxInfo.vendor() || |
+ kQualcomm_GrGLVendor == ctxInfo.vendor())) { |
+ fPreferClientSideDynamicBuffers = true; |
+ } |
+ |
// fUsesMixedSamples must be set before calling initFSAASupport. |
this->initFSAASupport(ctxInfo, gli); |
this->initBlendEqationSupport(ctxInfo); |
@@ -1122,8 +1121,6 @@ SkString GrGLCaps::dump() const { |
r.appendf("Multi draw indirect support: %s\n", (fMultiDrawIndirectSupport ? "YES" : "NO")); |
r.appendf("Base instance support: %s\n", (fBaseInstanceSupport ? "YES" : "NO")); |
r.appendf("Can draw indirect to float: %s\n", (fCanDrawIndirectToFloat ? "YES" : "NO")); |
- r.appendf("Use non-VBO for dynamic data: %s\n", |
- (fUseNonVBOVertexAndIndexDynamicData ? "YES" : "NO")); |
r.appendf("RGBA 8888 pixel ops are slow: %s\n", (fRGBA8888PixelsOpsAreSlow ? "YES" : "NO")); |
r.appendf("Partial FBO read is slow: %s\n", (fPartialFBOReadIsSlow ? "YES" : "NO")); |
r.appendf("Bind uniform location support: %s\n", (fBindUniformLocationSupport ? "YES" : "NO")); |