summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-02-29 14:55:53 -0800
committerChris Craik <ccraik@google.com>2012-02-29 17:08:36 -0800
commit868265ada276afa86d397c7a6771138ffe6add91 (patch)
tree9174948456d7502db4395b287d40b408d1d546ed /Source
parent0104dd8872053465f6c61881d447239223832be0 (diff)
downloadexternal_webkit-868265ada276afa86d397c7a6771138ffe6add91.zip
external_webkit-868265ada276afa86d397c7a6771138ffe6add91.tar.gz
external_webkit-868265ada276afa86d397c7a6771138ffe6add91.tar.bz2
fix stalls in tile updates
Disable layer readiness check when in single surface mode Disregard painter change in TransferQueue::checkObsolete bug:6091207 Change-Id: I556fca3faf2482beffd81ecbcf7a03a43d297cb9
Diffstat (limited to 'Source')
-rw-r--r--Source/WebCore/platform/graphics/android/SurfaceCollection.cpp9
-rw-r--r--Source/WebCore/platform/graphics/android/TransferQueue.cpp3
2 files changed, 10 insertions, 2 deletions
diff --git a/Source/WebCore/platform/graphics/android/SurfaceCollection.cpp b/Source/WebCore/platform/graphics/android/SurfaceCollection.cpp
index 66688cf..48e4f27 100644
--- a/Source/WebCore/platform/graphics/android/SurfaceCollection.cpp
+++ b/Source/WebCore/platform/graphics/android/SurfaceCollection.cpp
@@ -149,6 +149,15 @@ bool SurfaceCollection::isReady()
if (!m_baseLayer->isReady())
return false;
+ if (!m_compositedRoot)
+ return true;
+
+ // Override layer readiness check for single surface mode
+ if (m_compositedRoot->state()->layersRenderingMode() > GLWebViewState::kClippedTextures) {
+ // TODO: single surface mode should be properly double buffered
+ return true;
+ }
+
for (unsigned int i = 0; i < m_layerGroups.size(); i++) {
if (!m_layerGroups[i]->isReady()) {
XLOG("layer group %p isn't ready", m_layerGroups[i]);
diff --git a/Source/WebCore/platform/graphics/android/TransferQueue.cpp b/Source/WebCore/platform/graphics/android/TransferQueue.cpp
index 107bd82..8ad9119 100644
--- a/Source/WebCore/platform/graphics/android/TransferQueue.cpp
+++ b/Source/WebCore/platform/graphics/android/TransferQueue.cpp
@@ -156,8 +156,7 @@ bool TransferQueue::checkObsolete(const TileTransferData* data)
if (tileInfo->m_x != baseTilePtr->x()
|| tileInfo->m_y != baseTilePtr->y()
- || tileInfo->m_scale != baseTilePtr->scale()
- || tileInfo->m_painter != baseTilePtr->painter()) {
+ || tileInfo->m_scale != baseTilePtr->scale()) {
XLOG("Mismatching x, y, scale or painter , such that the tile is obsolete");
return true;
}