diff options
| author | Chris Craik <ccraik@google.com> | 2012-02-29 14:55:53 -0800 |
|---|---|---|
| committer | Chris Craik <ccraik@google.com> | 2012-02-29 17:08:36 -0800 |
| commit | 868265ada276afa86d397c7a6771138ffe6add91 (patch) | |
| tree | 9174948456d7502db4395b287d40b408d1d546ed /Source | |
| parent | 0104dd8872053465f6c61881d447239223832be0 (diff) | |
| download | external_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.cpp | 9 | ||||
| -rw-r--r-- | Source/WebCore/platform/graphics/android/TransferQueue.cpp | 3 |
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; } |
