summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-01-04 13:44:53 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-01-04 13:44:53 -0800
commit80c58cb414a3e2cd91386bb16ed7d4ee968afb4e (patch)
tree2f980357fda88ae9e013ce9eacee24ad0625846e
parent1bfa3eb111e0766c3cce52762a5ae1d2d70daa82 (diff)
parent08a2aede30839b296a2fad9d27939c4aaa6ccbb1 (diff)
downloadexternal_webkit-80c58cb414a3e2cd91386bb16ed7d4ee968afb4e.zip
external_webkit-80c58cb414a3e2cd91386bb16ed7d4ee968afb4e.tar.gz
external_webkit-80c58cb414a3e2cd91386bb16ed7d4ee968afb4e.tar.bz2
am 08a2aede: Merge "When in singlesurfacemode, resist switching out - DO NOT MERGE" into ics-mr1
* commit '08a2aede30839b296a2fad9d27939c4aaa6ccbb1': When in singlesurfacemode, resist switching out - DO NOT MERGE
-rw-r--r--Source/WebCore/platform/graphics/android/GLWebViewState.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
index 262d270..3bcda9a 100644
--- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
+++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
@@ -133,6 +133,7 @@ void GLWebViewState::setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval
m_zoomManager.swapPages(); // reset zoom state
m_tiledPageA->discardTextures();
m_tiledPageB->discardTextures();
+ m_layersRenderingMode = kAllTextures;
}
if (layer) {
XLOG("new base layer %p, (inval region empty %d) with child %p", layer, inval.isEmpty(), layer->getChild(0));
@@ -377,6 +378,12 @@ bool GLWebViewState::setLayersRenderingMode(TexturesResult& nbTexturesNeeded)
int maxTextures = TilesManager::instance()->maxLayerTextureCount();
LayersRenderingMode layersRenderingMode = m_layersRenderingMode;
+ if (m_layersRenderingMode == kSingleSurfaceRendering) {
+ // only switch out of SingleSurface mode, if we have 2x needed textures
+ // to avoid changing too often
+ maxTextures /= 2;
+ }
+
m_layersRenderingMode = kSingleSurfaceRendering;
if (nbTexturesNeeded.fixed < maxTextures)
m_layersRenderingMode = kFixedLayers;