[GTK][WPE] Remove UpdateAtlas
authormagomez@igalia.com <magomez@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2018 12:30:10 +0000 (12:30 +0000)
committermagomez@igalia.com <magomez@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Mar 2018 12:30:10 +0000 (12:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=184042

Reviewed by Žan Doberšek.

Source/WebCore:

Remove UpdateAtlas and AreaAllocator classes. Instead of using UpdateAtlas as a cache
of buffers to render tiles with cairo, allocate a new buffer for each tile instead.

Covered by existent tests.

* loader/EmptyClients.h:
* page/ChromeClient.h:
* platform/TextureMapper.cmake:
* platform/graphics/texmap/coordinated/AreaAllocator.cpp: Removed.
* platform/graphics/texmap/coordinated/AreaAllocator.h: Removed.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
* platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
(): Deleted.
* platform/graphics/texmap/coordinated/UpdateAtlas.cpp: Removed.
* platform/graphics/texmap/coordinated/UpdateAtlas.h: Removed.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):

Source/WebKit:

Remove all the code related to UpdateAtlas handling.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::syncUpdateAtlases): Deleted.
(WebKit::CoordinatedGraphicsScene::createUpdateAtlas): Deleted.
(WebKit::CoordinatedGraphicsScene::removeUpdateAtlas): Deleted.
(WebKit::CoordinatedGraphicsScene::releaseUpdateAtlases): Deleted.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::releaseUpdateAtlases): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::delegatedScrollRequested):
(WebKit::WebChromeClient::resetUpdateAtlasForTesting): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Deleted.
* WebProcess/WebPage/AcceleratedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::clearPendingStateChanges):
(WebKit::CompositingCoordinator::renderNextFrame):
(WebKit::CompositingCoordinator::purgeBackingStores):
(WebKit::CompositingCoordinator::createUpdateAtlas): Deleted.
(WebKit::CompositingCoordinator::removeUpdateAtlas): Deleted.
(WebKit::CompositingCoordinator::getCoordinatedBuffer): Deleted.
(): Deleted.
(WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases): Deleted.
(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired): Deleted.
(WebKit::CompositingCoordinator::releaseAtlases): Deleted.
(WebKit::CompositingCoordinator::clearUpdateAtlases): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::setIsDiscardable):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230028 268f45cc-cd09-0410-ab3c-d52691b4dbfc

30 files changed:
Source/WebCore/ChangeLog
Source/WebCore/loader/EmptyClients.h
Source/WebCore/page/ChromeClient.h
Source/WebCore/platform/TextureMapper.cmake
Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.cpp [deleted file]
Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.h [deleted file]
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h
Source/WebCore/platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h
Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp [deleted file]
Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.h [deleted file]
Source/WebCore/testing/Internals.cpp
Source/WebKit/ChangeLog
Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp
Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h
Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h
Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.cpp
Source/WebKit/WebProcess/WebPage/AcceleratedDrawingArea.h
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h
Source/WebKit/WebProcess/WebPage/DrawingArea.h
Source/WebKit/WebProcess/WebPage/LayerTreeHost.h

index 99a8923..857d344 100644 (file)
@@ -1,3 +1,31 @@
+2018-03-28  Miguel Gomez  <magomez@igalia.com>
+
+        [GTK][WPE] Remove UpdateAtlas
+        https://bugs.webkit.org/show_bug.cgi?id=184042
+
+        Reviewed by Žan Doberšek.
+
+        Remove UpdateAtlas and AreaAllocator classes. Instead of using UpdateAtlas as a cache
+        of buffers to render tiles with cairo, allocate a new buffer for each tile instead.
+
+        Covered by existent tests.
+
+        * loader/EmptyClients.h:
+        * page/ChromeClient.h:
+        * platform/TextureMapper.cmake:
+        * platform/graphics/texmap/coordinated/AreaAllocator.cpp: Removed.
+        * platform/graphics/texmap/coordinated/AreaAllocator.h: Removed.
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+        (WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
+        * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
+        (): Deleted.
+        * platform/graphics/texmap/coordinated/UpdateAtlas.cpp: Removed.
+        * platform/graphics/texmap/coordinated/UpdateAtlas.h: Removed.
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+
 2018-03-27  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         Unreviewed, rolling out r230008.
 2018-03-27  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         Unreviewed, rolling out r230008.
index 5c606a1..f5293e3 100644 (file)
@@ -108,7 +108,6 @@ class EmptyChromeClient : public ChromeClient {
 
 #if USE(COORDINATED_GRAPHICS)
     void delegatedScrollRequested(const IntPoint&) final { }
 
 #if USE(COORDINATED_GRAPHICS)
     void delegatedScrollRequested(const IntPoint&) final { }
-    void resetUpdateAtlasForTesting() final { }
 #endif
 
     IntPoint screenToRootView(const IntPoint& p) const final { return p; }
 #endif
 
     IntPoint screenToRootView(const IntPoint& p) const final { return p; }
index 275faea..5477ecb 100644 (file)
@@ -166,7 +166,6 @@ public:
 
 #if USE(COORDINATED_GRAPHICS)
     virtual void delegatedScrollRequested(const IntPoint&) = 0;
 
 #if USE(COORDINATED_GRAPHICS)
     virtual void delegatedScrollRequested(const IntPoint&) = 0;
-    virtual void resetUpdateAtlasForTesting() = 0;
 #endif
 
     virtual IntPoint screenToRootView(const IntPoint&) const = 0;
 #endif
 
     virtual IntPoint screenToRootView(const IntPoint&) const = 0;
index 5a4e957..ea926ce 100644 (file)
@@ -36,12 +36,10 @@ if (USE_COORDINATED_GRAPHICS)
         platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp
         platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp
 
         platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp
         platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp
 
-        platform/graphics/texmap/coordinated/AreaAllocator.cpp
         platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
         platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp
         platform/graphics/texmap/coordinated/Tile.cpp
         platform/graphics/texmap/coordinated/TiledBackingStore.cpp
         platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
         platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp
         platform/graphics/texmap/coordinated/Tile.cpp
         platform/graphics/texmap/coordinated/TiledBackingStore.cpp
-        platform/graphics/texmap/coordinated/UpdateAtlas.cpp
     )
 
     # FIXME: Move this into Nicosia.cmake once the component is set for long-term use.
     )
 
     # FIXME: Move this into Nicosia.cmake once the component is set for long-term use.
diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.cpp b/Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.cpp
deleted file mode 100644 (file)
index 99dac5d..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-#include "config.h"
-#include "AreaAllocator.h"
-
-#if USE(COORDINATED_GRAPHICS)
-
-namespace WebCore {
-
-AreaAllocator::AreaAllocator(const IntSize& size)
-    : m_size(size)
-    , m_minAlloc(1, 1)
-    , m_margin(0, 0)
-{
-}
-
-AreaAllocator::~AreaAllocator()
-{
-}
-
-void AreaAllocator::expand(const IntSize& size)
-{
-    m_size = m_size.expandedTo(size);
-}
-
-void AreaAllocator::expandBy(const IntSize& size)
-{
-    m_size += size;
-}
-
-void AreaAllocator::release(const IntRect&)
-{
-}
-
-int AreaAllocator::overhead() const
-{
-    return 0;
-}
-
-IntSize AreaAllocator::roundAllocation(const IntSize& size) const
-{
-    int width = size.width() + m_margin.width();
-    int height = size.height() + m_margin.height();
-    int extra = width % m_minAlloc.width();
-    if (extra)
-        width += m_minAlloc.width() - extra;
-    extra = height % m_minAlloc.height();
-    if (extra)
-        height += m_minAlloc.height() - extra;
-
-    return IntSize(width, height);
-}
-
-GeneralAreaAllocator::GeneralAreaAllocator(const IntSize& size)
-    : AreaAllocator(nextPowerOfTwo(size))
-{
-    m_root = new Node();
-    m_root->rect = IntRect(0, 0, m_size.width(), m_size.height());
-    m_root->largestFree = m_size;
-    m_nodeCount = 1;
-    setMinimumAllocation(IntSize(8, 8));
-}
-
-GeneralAreaAllocator::~GeneralAreaAllocator()
-{
-    freeNode(m_root);
-}
-
-void GeneralAreaAllocator::freeNode(Node* node)
-{
-    if (node) {
-        freeNode(node->left);
-        freeNode(node->right);
-    }
-    delete node;
-}
-
-void GeneralAreaAllocator::expand(const IntSize& size)
-{
-    AreaAllocator::expand(nextPowerOfTwo(size));
-
-    if (m_root->rect.size() == m_size)
-        return; // No change.
-
-    if (!m_root->left && m_root->largestFree.width() > 0) {
-        // No allocations have occurred, so just adjust the root size.
-        m_root->rect = IntRect(0, 0, m_size.width(), m_size.height());
-        m_root->largestFree = m_size;
-        return;
-    }
-
-    // Add extra nodes above the current root to expand the tree.
-    Node* oldRoot = m_root;
-    Split split;
-    if (m_size.width() >= m_size.height())
-        split = SplitOnX;
-    else
-        split = SplitOnY;
-
-    while (m_root->rect.size() != m_size) {
-        if (m_root->rect.width() == m_size.width())
-            split = SplitOnY;
-        else if (m_root->rect.height() == m_size.height())
-            split = SplitOnX;
-        Node* parent = new Node();
-        Node* right = new Node();
-        m_nodeCount += 2;
-        m_root->parent = parent;
-        parent->parent = nullptr;
-        parent->left = m_root;
-        parent->right = right;
-        parent->largestFree = m_root->rect.size();
-        right->parent = parent;
-        right->left = nullptr;
-        right->right = nullptr;
-        right->largestFree = m_root->rect.size();
-        if (split == SplitOnX) {
-            parent->rect = IntRect(m_root->rect.x(), m_root->rect.y(),
-                m_root->rect.width() * 2, m_root->rect.height());
-            right->rect = IntRect(m_root->rect.x() + m_root->rect.width(), m_root->rect.y(),
-                m_root->rect.width(), m_root->rect.height());
-        } else {
-            parent->rect = IntRect(m_root->rect.x(), m_root->rect.y(),
-                m_root->rect.width(), m_root->rect.height() * 2);
-            right->rect = IntRect(m_root->rect.x(), m_root->rect.y() + m_root->rect.width(),
-                m_root->rect.width(), m_root->rect.height());
-        }
-        split = (split == SplitOnX ? SplitOnY : SplitOnX);
-        m_root = parent;
-    }
-    updateLargestFree(oldRoot);
-}
-
-static inline bool fitsWithin(const IntSize& size1, const IntSize& size2)
-{
-    return size1.width() <= size2.width() && size1.height() <= size2.height();
-}
-
-IntRect GeneralAreaAllocator::allocate(const IntSize& size)
-{
-    IntSize rounded = roundAllocation(size);
-    rounded = nextPowerOfTwo(rounded);
-    if (rounded.width() <= 0 || rounded.width() > m_size.width()
-        || rounded.height() <= 0 || rounded.height() > m_size.height())
-        return IntRect();
-
-    IntPoint point = allocateFromNode(rounded, m_root);
-    if (point.x() >= 0)
-        return IntRect(point, size);
-    return IntRect();
-}
-
-IntPoint GeneralAreaAllocator::allocateFromNode(const IntSize& size, Node* node)
-{
-    // Find the best node to insert into, which should be
-    // a node with the least amount of unused space that is
-    // big enough to contain the requested size.
-    while (node) {
-        // Go down a level and determine if the left or right
-        // sub-tree contains the best chance of allocation.
-        Node* left = node->left;
-        Node* right = node->right;
-        if (left && fitsWithin(size, left->largestFree)) {
-            if (right && fitsWithin(size, right->largestFree)) {
-                if (left->largestFree.width() < right->largestFree.width()
-                    || left->largestFree.height() < right->largestFree.height()) {
-                    // The largestFree values may be a little oversized,
-                    // so try the left sub-tree and then the right sub-tree.
-                    IntPoint point = allocateFromNode(size, left);
-                    if (point.x() >= 0)
-                        return point;
-                    return allocateFromNode(size, right);
-                }
-                node = right;
-            } else
-                node = left;
-        } else if (right && fitsWithin(size, right->largestFree))
-            node = right;
-        else if (left || right) {
-            // Neither sub-node has enough space to allocate from.
-            return IntPoint(-1, -1);
-        } else if (fitsWithin(size, node->largestFree)) {
-            // Do we need to split this node into smaller pieces?
-            Split split;
-            if (fitsWithin(IntSize(size.width() * 2, size.height() * 2), node->largestFree)) {
-                // Split in either direction: choose the inverse of
-                // the parent node's split direction to try to balance
-                // out the wasted space as further subdivisions happen.
-                if (node->parent
-                    && node->parent->left->rect.x() == node->parent->right->rect.x())
-                    split = SplitOnX;
-                else if (node->parent)
-                    split = SplitOnY;
-                else if (node->rect.width() >= node->rect.height())
-                    split = SplitOnX;
-                else
-                    split = SplitOnY;
-            } else if (fitsWithin(IntSize(size.width() * 2, size.height()), node->largestFree)) {
-                // Split along the X direction.
-                split = SplitOnX;
-            } else if (fitsWithin(IntSize(size.width(), size.height() * 2), node->largestFree)) {
-                // Split along the Y direction.
-                split = SplitOnY;
-            } else {
-                // Cannot split further - allocate this node.
-                node->largestFree = IntSize(0, 0);
-                updateLargestFree(node);
-                return node->rect.location();
-            }
-
-            // Split the node, then go around again using the left sub-tree.
-            node = splitNode(node, split);
-        } else {
-            // Cannot possibly fit into this node.
-            break;
-        }
-    }
-    return IntPoint(-1, -1);
-}
-
-GeneralAreaAllocator::Node* GeneralAreaAllocator::splitNode(Node* node, Split split)
-{
-    Node* left = new Node();
-    left->parent = node;
-    Node* right = new Node();
-    right->parent = node;
-    node->left = left;
-    node->right = right;
-    m_nodeCount += 2;
-
-    if (split == SplitOnX) {
-        left->rect = IntRect(node->rect.x(), node->rect.y(),
-            node->rect.width() / 2, node->rect.height());
-        right->rect = IntRect(left->rect.maxX(), node->rect.y(),
-            node->rect.width() / 2, node->rect.height());
-    } else {
-        left->rect = IntRect(node->rect.x(), node->rect.y(),
-            node->rect.width(), node->rect.height() / 2);
-        right->rect = IntRect(node->rect.x(), left->rect.maxY(),
-            node->rect.width(), node->rect.height() / 2);
-    }
-
-    left->largestFree = left->rect.size();
-    right->largestFree = right->rect.size();
-    node->largestFree = right->largestFree;
-    return left;
-}
-
-void GeneralAreaAllocator::updateLargestFree(Node* node)
-{
-    while ((node = node->parent)) {
-        node->largestFree = IntSize(
-            std::max(node->left->largestFree.width(), node->right->largestFree.width()),
-            std::max(node->left->largestFree.height(), node->right->largestFree.height())
-            );
-    }
-}
-
-void GeneralAreaAllocator::release(const IntRect& rect)
-{
-    // Locate the node that contains the allocated region.
-    Node* node = m_root;
-    IntPoint point = rect.location();
-    while (node) {
-        if (node->left && node->left->rect.contains(point))
-            node = node->left;
-        else if (node->right && node->right->rect.contains(point))
-            node = node->right;
-        else if (node->rect.contains(point))
-            break;
-        else
-            return; // Point is completely outside the tree.
-    }
-    if (!node)
-        return;
-
-    // Mark the node as free and then work upwards through the tree
-    // recombining and deleting nodes until we reach a sibling
-    // that is still allocated.
-    node->largestFree = node->rect.size();
-    while (node->parent) {
-        if (node->parent->left == node) {
-            if (node->parent->right->largestFree != node->parent->right->rect.size())
-                break;
-        } else {
-            if (node->parent->left->largestFree != node->parent->left->rect.size())
-                break;
-        }
-        node = node->parent;
-        freeNode(node->left);
-        freeNode(node->right);
-        m_nodeCount -= 2;
-        node->left = nullptr;
-        node->right = nullptr;
-        node->largestFree = node->rect.size();
-    }
-
-    // Make the rest of our ancestors have the correct "largest free size".
-    updateLargestFree(node);
-}
-
-int GeneralAreaAllocator::overhead() const
-{
-    return m_nodeCount * sizeof(Node);
-}
-
-} // namespace WebKit
-
-#endif // USE(COORDINATED_GRAPHICS)
diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.h b/Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.h
deleted file mode 100644 (file)
index cfdc8f7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-#pragma once
-
-#if USE(COORDINATED_GRAPHICS)
-
-#include "IntPoint.h"
-#include "IntRect.h"
-#include "IntSize.h"
-
-namespace WebCore {
-
-inline int nextPowerOfTwo(int number)
-{
-    // This is a fast trick to get nextPowerOfTwo for an integer.
-    --number;
-    number |= number >> 1;
-    number |= number >> 2;
-    number |= number >> 4;
-    number |= number >> 8;
-    number |= number >> 16;
-    number++;
-    return number;
-}
-
-inline IntSize nextPowerOfTwo(const IntSize& size)
-{
-    return IntSize(nextPowerOfTwo(size.width()), nextPowerOfTwo(size.height()));
-}
-
-class AreaAllocator {
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    explicit AreaAllocator(const IntSize&);
-    virtual ~AreaAllocator();
-
-    IntSize size() const { return m_size; }
-
-    IntSize minimumAllocation() const { return m_minAlloc; }
-    void setMinimumAllocation(const IntSize& size) { m_minAlloc = size; }
-
-    IntSize margin() const { return m_margin; }
-    void setMargin(const IntSize &margin) { m_margin = margin; }
-
-    virtual void expand(const IntSize&);
-    void expandBy(const IntSize&);
-
-    virtual IntRect allocate(const IntSize&) = 0;
-    virtual void release(const IntRect&);
-
-    virtual int overhead() const;
-
-protected:
-    IntSize m_size;
-    IntSize m_minAlloc;
-    IntSize m_margin;
-
-    IntSize roundAllocation(const IntSize&) const;
-};
-
-class GeneralAreaAllocator final : public AreaAllocator {
-    WTF_MAKE_FAST_ALLOCATED;
-public:
-    explicit GeneralAreaAllocator(const IntSize&);
-    virtual ~GeneralAreaAllocator();
-
-    void expand(const IntSize&) override;
-    IntRect allocate(const IntSize&) override;
-    void release(const IntRect&) override;
-    int overhead() const override;
-
-private:
-    enum Split { SplitOnX, SplitOnY };
-
-    struct Node {
-        WTF_MAKE_FAST_ALLOCATED;
-    public:
-        IntRect rect;
-        IntSize largestFree;
-        Node* parent { nullptr };
-        Node* left { nullptr };
-        Node* right { nullptr };
-    };
-
-    Node* m_root;
-    int m_nodeCount;
-
-    static void freeNode(Node*);
-    IntPoint allocateFromNode(const IntSize&, Node*);
-    Node* splitNode(Node*, Split);
-    static void updateLargestFree(Node*);
-};
-
-} // namespace WebCore
-
-#endif // USE(COORDINATED_GRAPHICS)
index 18dd0fe..ac17a36 100644 (file)
@@ -977,20 +977,17 @@ void CoordinatedGraphicsLayer::updateContentBuffers()
             auto& tileRect = tile.rect();
             auto& dirtyRect = tile.dirtyRect();
 
             auto& tileRect = tile.rect();
             auto& dirtyRect = tile.dirtyRect();
 
+            auto coordinatedBuffer = Nicosia::Buffer::create(dirtyRect.size(), contentsOpaque() ? Nicosia::Buffer::NoFlags : Nicosia::Buffer::SupportsAlpha);
             SurfaceUpdateInfo updateInfo;
             SurfaceUpdateInfo updateInfo;
-            IntRect targetRect;
-            auto coordinatedBuffer = m_coordinator->getCoordinatedBuffer(dirtyRect.size(),
-                contentsOpaque() ? Nicosia::Buffer::NoFlags : Nicosia::Buffer::SupportsAlpha,
-                updateInfo.atlasID, targetRect);
+            updateInfo.updateRect = dirtyRect;
+            updateInfo.updateRect.move(-tileRect.x(), -tileRect.y());
+            updateInfo.buffer = coordinatedBuffer.copyRef();
 
             if (!m_coordinator->paintingEngine().paint(*this, WTFMove(coordinatedBuffer),
                 dirtyRect, m_mainBackingStore->mapToContents(dirtyRect),
 
             if (!m_coordinator->paintingEngine().paint(*this, WTFMove(coordinatedBuffer),
                 dirtyRect, m_mainBackingStore->mapToContents(dirtyRect),
-                targetRect, m_mainBackingStore->contentsScale()))
+                IntRect { { 0, 0 }, dirtyRect.size() }, m_mainBackingStore->contentsScale()))
                 continue;
 
                 continue;
 
-            updateInfo.surfaceOffset = targetRect.location();
-            updateInfo.updateRect = dirtyRect;
-            updateInfo.updateRect.move(-tileRect.x(), -tileRect.y());
             updateTile(tile.tileID(), updateInfo, tileRect);
 
             tile.markClean();
             updateTile(tile.tileID(), updateInfo, tileRect);
 
             tile.markClean();
index 4fc681e..e6ca865 100644 (file)
@@ -51,7 +51,6 @@ public:
     virtual FloatRect visibleContentsRect() const = 0;
     virtual Ref<CoordinatedImageBacking> createImageBackingIfNeeded(Image&) = 0;
     virtual void detachLayer(CoordinatedGraphicsLayer*) = 0;
     virtual FloatRect visibleContentsRect() const = 0;
     virtual Ref<CoordinatedImageBacking> createImageBackingIfNeeded(Image&) = 0;
     virtual void detachLayer(CoordinatedGraphicsLayer*) = 0;
-    virtual Ref<Nicosia::Buffer> getCoordinatedBuffer(const IntSize&, Nicosia::Buffer::Flags, uint32_t&, IntRect&) = 0;
     virtual Nicosia::PaintingEngine& paintingEngine() = 0;
 
     virtual void syncLayerState(CoordinatedLayerID, CoordinatedGraphicsLayerState&) = 0;
     virtual Nicosia::PaintingEngine& paintingEngine() = 0;
 
     virtual void syncLayerState(CoordinatedLayerID, CoordinatedGraphicsLayerState&) = 0;
index 71a4430..c3db106 100644 (file)
@@ -189,8 +189,6 @@ struct CoordinatedGraphicsState {
     Vector<CoordinatedImageBackingID> imagesToRemove;
     Vector<std::pair<CoordinatedImageBackingID, RefPtr<Nicosia::Buffer>>> imagesToUpdate;
     Vector<CoordinatedImageBackingID> imagesToClear;
     Vector<CoordinatedImageBackingID> imagesToRemove;
     Vector<std::pair<CoordinatedImageBackingID, RefPtr<Nicosia::Buffer>>> imagesToUpdate;
     Vector<CoordinatedImageBackingID> imagesToClear;
-
-    Vector<std::pair<uint32_t /* atlasID */, RefPtr<Nicosia::Buffer>>> updateAtlasesToCreate;
 };
 
 } // namespace WebCore
 };
 
 } // namespace WebCore
index 0e749be..c674989 100644 (file)
@@ -23,6 +23,7 @@
 #if USE(COORDINATED_GRAPHICS)
 
 #include "IntRect.h"
 #if USE(COORDINATED_GRAPHICS)
 
 #include "IntRect.h"
+#include "NicosiaBuffer.h"
 
 namespace WebCore {
 
 
 namespace WebCore {
 
@@ -34,11 +35,8 @@ public:
     // The rect to be updated.
     IntRect updateRect;
 
     // The rect to be updated.
     IntRect updateRect;
 
-    // The id of the update atlas including the shareable bitmap containing the updates.
-    uint32_t atlasID { 0 };
-
-    // The offset in the bitmap where the rendered contents are.
-    IntPoint surfaceOffset;
+    // The buffer where the tile has been rendered
+    RefPtr<Nicosia::Buffer> buffer;
 };
 
 } // namespace WebCore
 };
 
 } // namespace WebCore
diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp b/Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp
deleted file mode 100644 (file)
index 31c5682..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies)
- Copyright (C) 2012 Company 100, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB.  If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "UpdateAtlas.h"
-
-#if USE(COORDINATED_GRAPHICS)
-
-#include "CoordinatedGraphicsState.h"
-#include "IntRect.h"
-
-namespace WebCore {
-
-UpdateAtlas::UpdateAtlas(Client& client, const IntSize& size, Nicosia::Buffer::Flags flags)
-    : m_client(client)
-    , m_buffer(Nicosia::Buffer::create(size, flags))
-{
-    static ID s_nextID { 0 };
-    m_id = ++s_nextID;
-
-    m_client.createUpdateAtlas(m_id, m_buffer.copyRef());
-}
-
-UpdateAtlas::~UpdateAtlas()
-{
-    m_client.removeUpdateAtlas(m_id);
-}
-
-void UpdateAtlas::buildLayoutIfNeeded()
-{
-    if (m_areaAllocator)
-        return;
-    m_areaAllocator = std::make_unique<GeneralAreaAllocator>(size());
-    m_areaAllocator->setMinimumAllocation(IntSize(32, 32));
-}
-
-void UpdateAtlas::didSwapBuffers()
-{
-    m_areaAllocator = nullptr;
-}
-
-RefPtr<Nicosia::Buffer> UpdateAtlas::getCoordinatedBuffer(const IntSize& size, uint32_t& atlasID, IntRect& allocatedRect)
-{
-    m_inactivityInSeconds = 0;
-    buildLayoutIfNeeded();
-    allocatedRect = m_areaAllocator->allocate(size);
-
-    if (allocatedRect.isEmpty())
-        return nullptr;
-
-    atlasID = m_id;
-    return m_buffer.copyRef();
-}
-
-} // namespace WebCore
-
-#endif // USE(COORDINATED_GRAPHICS)
diff --git a/Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.h b/Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.h
deleted file mode 100644 (file)
index 6ed5057..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies)
- Copyright (C) 2012 Company 100, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB.  If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
- */
-
-#pragma once
-
-#include "AreaAllocator.h"
-#include "NicosiaBuffer.h"
-#include <wtf/RefPtr.h>
-
-#if USE(COORDINATED_GRAPHICS)
-
-namespace WebCore {
-
-class IntRect;
-class IntSize;
-
-class UpdateAtlas {
-    WTF_MAKE_FAST_ALLOCATED;
-    WTF_MAKE_NONCOPYABLE(UpdateAtlas);
-public:
-    using ID = uint32_t;
-
-    class Client {
-    public:
-        virtual void createUpdateAtlas(ID, Ref<Nicosia::Buffer>&&) = 0;
-        virtual void removeUpdateAtlas(ID) = 0;
-    };
-
-    WEBCORE_EXPORT UpdateAtlas(Client&, const IntSize&, Nicosia::Buffer::Flags);
-    WEBCORE_EXPORT ~UpdateAtlas();
-
-    const IntSize& size() const { return m_buffer->size(); }
-
-    WEBCORE_EXPORT RefPtr<Nicosia::Buffer> getCoordinatedBuffer(const IntSize&, uint32_t&, IntRect&);
-    WEBCORE_EXPORT void didSwapBuffers();
-    bool supportsAlpha() const { return m_buffer->supportsAlpha(); }
-
-    void addTimeInactive(double seconds)
-    {
-        ASSERT(!isInUse());
-        m_inactivityInSeconds += seconds;
-    }
-    bool isInactive() const
-    {
-        const double inactiveSecondsTolerance = 3;
-        return m_inactivityInSeconds > inactiveSecondsTolerance;
-    }
-    bool isInUse() const { return !!m_areaAllocator; }
-
-private:
-    void buildLayoutIfNeeded();
-
-    ID m_id { 0 };
-    Client& m_client;
-    std::unique_ptr<GeneralAreaAllocator> m_areaAllocator;
-    Ref<Nicosia::Buffer> m_buffer;
-    double m_inactivityInSeconds { 0 };
-};
-
-} // namespace WebCore
-
-#endif // USE(COORDINATED_GRAPHICS)
index 60e8da5..978596b 100644 (file)
@@ -431,7 +431,6 @@ void Internals::resetToConsistentState(Page& page)
         mainFrameView->setFixedLayoutSize(IntSize());
 #if USE(COORDINATED_GRAPHICS)
         mainFrameView->setFixedVisibleContentRect(IntRect());
         mainFrameView->setFixedLayoutSize(IntSize());
 #if USE(COORDINATED_GRAPHICS)
         mainFrameView->setFixedVisibleContentRect(IntRect());
-        page.chrome().client().resetUpdateAtlasForTesting();
 #endif
         if (auto* backing = mainFrameView->tiledBacking())
             backing->setTileSizeUpdateDelayDisabledForTesting(false);
 #endif
         if (auto* backing = mainFrameView->tiledBacking())
             backing->setTileSizeUpdateDelayDisabledForTesting(false);
index 76a11fc..3a56187 100644 (file)
@@ -1,3 +1,57 @@
+2018-03-28  Miguel Gomez  <magomez@igalia.com>
+
+        [GTK][WPE] Remove UpdateAtlas
+        https://bugs.webkit.org/show_bug.cgi?id=184042
+
+        Reviewed by Žan Doberšek.
+
+        Remove all the code related to UpdateAtlas handling.
+
+        * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
+        (WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded):
+        (WebKit::CoordinatedGraphicsScene::commitSceneState):
+        (WebKit::CoordinatedGraphicsScene::purgeGLResources):
+        (WebKit::CoordinatedGraphicsScene::syncUpdateAtlases): Deleted.
+        (WebKit::CoordinatedGraphicsScene::createUpdateAtlas): Deleted.
+        (WebKit::CoordinatedGraphicsScene::removeUpdateAtlas): Deleted.
+        (WebKit::CoordinatedGraphicsScene::releaseUpdateAtlases): Deleted.
+        * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
+        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
+        (WebKit::ThreadedCompositor::renderLayerTree):
+        (WebKit::ThreadedCompositor::releaseUpdateAtlases): Deleted.
+        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::delegatedScrollRequested):
+        (WebKit::WebChromeClient::resetUpdateAtlasForTesting): Deleted.
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+        * WebProcess/WebPage/AcceleratedDrawingArea.cpp:
+        (WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Deleted.
+        * WebProcess/WebPage/AcceleratedDrawingArea.h:
+        * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
+        (WebKit::CompositingCoordinator::CompositingCoordinator):
+        (WebKit::CompositingCoordinator::flushPendingLayerChanges):
+        (WebKit::CompositingCoordinator::clearPendingStateChanges):
+        (WebKit::CompositingCoordinator::renderNextFrame):
+        (WebKit::CompositingCoordinator::purgeBackingStores):
+        (WebKit::CompositingCoordinator::createUpdateAtlas): Deleted.
+        (WebKit::CompositingCoordinator::removeUpdateAtlas): Deleted.
+        (WebKit::CompositingCoordinator::getCoordinatedBuffer): Deleted.
+        (): Deleted.
+        (WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases): Deleted.
+        (WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired): Deleted.
+        (WebKit::CompositingCoordinator::releaseAtlases): Deleted.
+        (WebKit::CompositingCoordinator::clearUpdateAtlases): Deleted.
+        * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
+        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
+        (WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Deleted.
+        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
+        * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
+        (WebKit::ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases): Deleted.
+        * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
+        * WebProcess/WebPage/DrawingArea.h:
+        * WebProcess/WebPage/LayerTreeHost.h:
+        (WebKit::LayerTreeHost::setIsDiscardable):
+
 2018-03-28  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         REGRESSION(r229998): WebDriver: MiniBrowser is crashing in a lot of tests after r229998
 2018-03-28  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         REGRESSION(r229998): WebDriver: MiniBrowser is crashing in a lot of tests after r229998
index 98c25d3..2a38767 100644 (file)
@@ -380,38 +380,11 @@ void CoordinatedGraphicsScene::updateTilesIfNeeded(TextureMapperLayer* layer, co
     for (auto& tile : state.tilesToUpdate) {
         const SurfaceUpdateInfo& surfaceUpdateInfo = tile.updateInfo;
 
     for (auto& tile : state.tilesToUpdate) {
         const SurfaceUpdateInfo& surfaceUpdateInfo = tile.updateInfo;
 
-        auto surfaceIt = m_surfaces.find(surfaceUpdateInfo.atlasID);
-        ASSERT(surfaceIt != m_surfaces.end());
-
-        backingStore->updateTile(tile.tileID, surfaceUpdateInfo.updateRect, tile.tileRect, surfaceIt->value.copyRef(), surfaceUpdateInfo.surfaceOffset);
+        backingStore->updateTile(tile.tileID, surfaceUpdateInfo.updateRect, tile.tileRect, surfaceUpdateInfo.buffer.copyRef(), { 0, 0 });
         commitScope.backingStoresWithPendingBuffers.add(backingStore);
     }
 }
 
         commitScope.backingStoresWithPendingBuffers.add(backingStore);
     }
 }
 
-void CoordinatedGraphicsScene::syncUpdateAtlases(const CoordinatedGraphicsState& state)
-{
-    for (auto& atlas : state.updateAtlasesToCreate)
-        createUpdateAtlas(atlas.first, atlas.second.copyRef());
-}
-
-void CoordinatedGraphicsScene::createUpdateAtlas(uint32_t atlasID, RefPtr<Nicosia::Buffer>&& buffer)
-{
-    ASSERT(!m_surfaces.contains(atlasID));
-    m_surfaces.add(atlasID, WTFMove(buffer));
-}
-
-void CoordinatedGraphicsScene::removeUpdateAtlas(uint32_t atlasID)
-{
-    ASSERT(m_surfaces.contains(atlasID));
-    m_surfaces.remove(atlasID);
-}
-
-void CoordinatedGraphicsScene::releaseUpdateAtlases(const Vector<uint32_t>& atlasesToRemove)
-{
-    for (auto& atlas : atlasesToRemove)
-        removeUpdateAtlas(atlas);
-}
-
 void CoordinatedGraphicsScene::syncImageBackings(const CoordinatedGraphicsState& state, CommitScope& commitScope)
 {
     for (auto& image : state.imagesToRemove)
 void CoordinatedGraphicsScene::syncImageBackings(const CoordinatedGraphicsState& state, CommitScope& commitScope)
 {
     for (auto& image : state.imagesToRemove)
@@ -495,7 +468,6 @@ void CoordinatedGraphicsScene::commitSceneState(const CoordinatedGraphicsState&
         setRootLayerID(state.rootCompositingLayer);
 
     syncImageBackings(state, commitScope);
         setRootLayerID(state.rootCompositingLayer);
 
     syncImageBackings(state, commitScope);
-    syncUpdateAtlases(state);
 
     for (auto& layer : state.layersToUpdate)
         setLayerState(layer.first, layer.second, commitScope);
 
     for (auto& layer : state.layersToUpdate)
         setLayerState(layer.first, layer.second, commitScope);
@@ -531,7 +503,6 @@ void CoordinatedGraphicsScene::purgeGLResources()
         proxy->invalidate();
     m_platformLayerProxies.clear();
 #endif
         proxy->invalidate();
     m_platformLayerProxies.clear();
 #endif
-    m_surfaces.clear();
 
     m_rootLayer = nullptr;
     m_rootLayerID = InvalidCoordinatedLayerID;
 
     m_rootLayer = nullptr;
     m_rootLayerID = InvalidCoordinatedLayerID;
index ad4c815..2659f78 100644 (file)
@@ -87,8 +87,6 @@ public:
     void setViewBackgroundColor(const WebCore::Color& color) { m_viewBackgroundColor = color; }
     WebCore::Color viewBackgroundColor() const { return m_viewBackgroundColor; }
 
     void setViewBackgroundColor(const WebCore::Color& color) { m_viewBackgroundColor = color; }
     WebCore::Color viewBackgroundColor() const { return m_viewBackgroundColor; }
 
-    void releaseUpdateAtlases(const Vector<uint32_t>&);
-
 private:
     struct CommitScope {
         CommitScope() = default;
 private:
     struct CommitScope {
         CommitScope() = default;
@@ -112,10 +110,6 @@ private:
     void syncPlatformLayerIfNeeded(WebCore::TextureMapperLayer*, const WebCore::CoordinatedGraphicsLayerState&);
     void setLayerRepaintCountIfNeeded(WebCore::TextureMapperLayer*, const WebCore::CoordinatedGraphicsLayerState&);
 
     void syncPlatformLayerIfNeeded(WebCore::TextureMapperLayer*, const WebCore::CoordinatedGraphicsLayerState&);
     void setLayerRepaintCountIfNeeded(WebCore::TextureMapperLayer*, const WebCore::CoordinatedGraphicsLayerState&);
 
-    void syncUpdateAtlases(const WebCore::CoordinatedGraphicsState&);
-    void createUpdateAtlas(uint32_t atlasID, RefPtr<Nicosia::Buffer>&&);
-    void removeUpdateAtlas(uint32_t atlasID);
-
     void syncImageBackings(const WebCore::CoordinatedGraphicsState&, CommitScope&);
     void createImageBacking(WebCore::CoordinatedImageBackingID);
     void updateImageBacking(WebCore::CoordinatedImageBackingID, RefPtr<Nicosia::Buffer>&&, CommitScope&);
     void syncImageBackings(const WebCore::CoordinatedGraphicsState&, CommitScope&);
     void createImageBacking(WebCore::CoordinatedImageBackingID);
     void updateImageBacking(WebCore::CoordinatedImageBackingID, RefPtr<Nicosia::Buffer>&&, CommitScope&);
@@ -159,8 +153,6 @@ private:
     HashMap<WebCore::TextureMapperLayer*, RefPtr<WebCore::TextureMapperPlatformLayerProxy>> m_platformLayerProxies;
 #endif
 
     HashMap<WebCore::TextureMapperLayer*, RefPtr<WebCore::TextureMapperPlatformLayerProxy>> m_platformLayerProxies;
 #endif
 
-    HashMap<uint32_t /* atlasID */, RefPtr<Nicosia::Buffer>> m_surfaces;
-
     // Below two members are accessed by only the main thread. The painting thread must lock the main thread to access both members.
     CoordinatedGraphicsSceneClient* m_client;
     bool m_isActive { false };
     // Below two members are accessed by only the main thread. The painting thread must lock the main thread to access both members.
     CoordinatedGraphicsSceneClient* m_client;
     bool m_isActive { false };
index 9d767a8..78824d4 100644 (file)
@@ -195,7 +195,6 @@ void ThreadedCompositor::renderLayerTree()
     bool drawsBackground;
     bool needsResize;
     Vector<WebCore::CoordinatedGraphicsState> states;
     bool drawsBackground;
     bool needsResize;
     Vector<WebCore::CoordinatedGraphicsState> states;
-    Vector<uint32_t> atlasesToRemove;
 
     {
         LockHolder locker(m_attributes.lock);
 
     {
         LockHolder locker(m_attributes.lock);
@@ -206,7 +205,6 @@ void ThreadedCompositor::renderLayerTree()
         needsResize = m_attributes.needsResize;
 
         states = WTFMove(m_attributes.states);
         needsResize = m_attributes.needsResize;
 
         states = WTFMove(m_attributes.states);
-        atlasesToRemove = WTFMove(m_attributes.atlasesToRemove);
 
         if (!states.isEmpty()) {
             // Client has to be notified upon finishing this scene update.
 
         if (!states.isEmpty()) {
             // Client has to be notified upon finishing this scene update.
@@ -241,7 +239,6 @@ void ThreadedCompositor::renderLayerTree()
     }
 
     m_scene->applyStateChanges(states);
     }
 
     m_scene->applyStateChanges(states);
-    m_scene->releaseUpdateAtlases(atlasesToRemove);
     m_scene->paintToCurrentGLContext(viewportTransform, 1, FloatRect { FloatPoint { }, viewportSize },
         Color::transparent, !drawsBackground, scrollPosition, m_paintFlags);
 
     m_scene->paintToCurrentGLContext(viewportTransform, 1, FloatRect { FloatPoint { }, viewportSize },
         Color::transparent, !drawsBackground, scrollPosition, m_paintFlags);
 
@@ -293,13 +290,6 @@ void ThreadedCompositor::updateSceneState(const CoordinatedGraphicsState& state)
     m_compositingRunLoop->scheduleUpdate();
 }
 
     m_compositingRunLoop->scheduleUpdate();
 }
 
-void ThreadedCompositor::releaseUpdateAtlases(const Vector<uint32_t>& atlasesToRemove)
-{
-    LockHolder locker(m_attributes.lock);
-    m_attributes.atlasesToRemove.appendVector(atlasesToRemove);
-    m_compositingRunLoop->scheduleUpdate();
-}
-
 #if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
 RefPtr<WebCore::DisplayRefreshMonitor> ThreadedCompositor::displayRefreshMonitor(PlatformDisplayID)
 {
 #if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
 RefPtr<WebCore::DisplayRefreshMonitor> ThreadedCompositor::displayRefreshMonitor(PlatformDisplayID)
 {
index cf3042e..fe37b21 100644 (file)
@@ -76,7 +76,6 @@ public:
     void setDrawsBackground(bool);
 
     void updateSceneState(const WebCore::CoordinatedGraphicsState&);
     void setDrawsBackground(bool);
 
     void updateSceneState(const WebCore::CoordinatedGraphicsState&);
-    void releaseUpdateAtlases(const Vector<uint32_t>&);
 
     void invalidate();
 
 
     void invalidate();
 
@@ -121,7 +120,6 @@ private:
         bool needsResize { false };
 
         Vector<WebCore::CoordinatedGraphicsState> states;
         bool needsResize { false };
 
         Vector<WebCore::CoordinatedGraphicsState> states;
-        Vector<uint32_t> atlasesToRemove;
 
         bool clientRendersNextFrame { false };
         bool coordinateUpdateCompletionWithClient { false };
 
         bool clientRendersNextFrame { false };
         bool coordinateUpdateCompletionWithClient { false };
index d4eee32..a76c273 100644 (file)
@@ -554,11 +554,6 @@ void WebChromeClient::delegatedScrollRequested(const IntPoint& scrollOffset)
 {
     m_page.pageDidRequestScroll(scrollOffset);
 }
 {
     m_page.pageDidRequestScroll(scrollOffset);
 }
-
-void WebChromeClient::resetUpdateAtlasForTesting()
-{
-    m_page.drawingArea()->resetUpdateAtlasForTesting();
-}
 #endif
 
 IntPoint WebChromeClient::screenToRootView(const IntPoint& point) const
 #endif
 
 IntPoint WebChromeClient::screenToRootView(const IntPoint& point) const
index 2252c51..66049eb 100644 (file)
@@ -111,7 +111,6 @@ private:
 
 #if USE(COORDINATED_GRAPHICS)
     void delegatedScrollRequested(const WebCore::IntPoint& scrollOffset) final;
 
 #if USE(COORDINATED_GRAPHICS)
     void delegatedScrollRequested(const WebCore::IntPoint& scrollOffset) final;
-    void resetUpdateAtlasForTesting() final;
 #endif
 
     WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const final;
 #endif
 
     WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const final;
index 6bfebfb..44518d4 100644 (file)
@@ -383,16 +383,6 @@ void AcceleratedDrawingArea::exitAcceleratedCompositingModeSoon()
     m_exitCompositingTimer.startOneShot(0_s);
 }
 
     m_exitCompositingTimer.startOneShot(0_s);
 }
 
-#if USE(COORDINATED_GRAPHICS)
-void AcceleratedDrawingArea::resetUpdateAtlasForTesting()
-{
-    if (!m_layerTreeHost || exitAcceleratedCompositingModePending())
-        return;
-
-    m_layerTreeHost->clearUpdateAtlases();
-}
-#endif
-
 void AcceleratedDrawingArea::exitAcceleratedCompositingModeNow()
 {
     ASSERT(!m_layerTreeStateIsFrozen);
 void AcceleratedDrawingArea::exitAcceleratedCompositingModeNow()
 {
     ASSERT(!m_layerTreeStateIsFrozen);
index 3b64947..efc650e 100644 (file)
@@ -75,7 +75,6 @@ protected:
 
 #if USE(COORDINATED_GRAPHICS)
     void didChangeViewportAttributes(WebCore::ViewportAttributes&&) override;
 
 #if USE(COORDINATED_GRAPHICS)
     void didChangeViewportAttributes(WebCore::ViewportAttributes&&) override;
-    void resetUpdateAtlasForTesting() override;
 #endif
 
 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER)
 #endif
 
 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER)
index 788662e..1918244 100644 (file)
@@ -51,11 +51,7 @@ CompositingCoordinator::CompositingCoordinator(Page* page, CompositingCoordinato
     : m_page(page)
     , m_client(client)
     , m_paintingEngine(Nicosia::PaintingEngine::create())
     : m_page(page)
     , m_client(client)
     , m_paintingEngine(Nicosia::PaintingEngine::create())
-    , m_releaseInactiveAtlasesTimer(RunLoop::main(), this, &CompositingCoordinator::releaseInactiveAtlasesTimerFired)
 {
 {
-#if USE(GLIB_EVENT_LOOP)
-    m_releaseInactiveAtlasesTimer.setPriority(RunLoopSourcePriority::ReleaseUnusedResourcesTimer);
-#endif
 }
 
 CompositingCoordinator::~CompositingCoordinator()
 }
 
 CompositingCoordinator::~CompositingCoordinator()
@@ -138,10 +134,6 @@ bool CompositingCoordinator::flushPendingLayerChanges()
 
         m_client.commitSceneState(m_state);
 
 
         m_client.commitSceneState(m_state);
 
-        if (!m_atlasesToRemove.isEmpty())
-            m_client.releaseUpdateAtlases(m_atlasesToRemove);
-        m_atlasesToRemove.clear();
-
         clearPendingStateChanges();
         m_shouldSyncFrame = false;
     }
         clearPendingStateChanges();
         m_shouldSyncFrame = false;
     }
@@ -179,8 +171,6 @@ void CompositingCoordinator::clearPendingStateChanges()
     m_state.imagesToRemove.clear();
     m_state.imagesToUpdate.clear();
     m_state.imagesToClear.clear();
     m_state.imagesToRemove.clear();
     m_state.imagesToUpdate.clear();
     m_state.imagesToClear.clear();
-
-    m_state.updateAtlasesToCreate.clear();
 }
 
 void CompositingCoordinator::initializeRootCompositingLayerIfNeeded()
 }
 
 void CompositingCoordinator::initializeRootCompositingLayerIfNeeded()
@@ -285,18 +275,6 @@ std::unique_ptr<GraphicsLayer> CompositingCoordinator::createGraphicsLayer(Graph
     return std::unique_ptr<GraphicsLayer>(layer);
 }
 
     return std::unique_ptr<GraphicsLayer>(layer);
 }
 
-void CompositingCoordinator::createUpdateAtlas(UpdateAtlas::ID id, Ref<Nicosia::Buffer>&& buffer)
-{
-    m_state.updateAtlasesToCreate.append(std::make_pair(id, WTFMove(buffer)));
-}
-
-void CompositingCoordinator::removeUpdateAtlas(UpdateAtlas::ID id)
-{
-    if (m_isPurging)
-        return;
-    m_atlasesToRemove.append(id);
-}
-
 FloatRect CompositingCoordinator::visibleContentsRect() const
 {
     return m_visibleContentsRect;
 FloatRect CompositingCoordinator::visibleContentsRect() const
 {
     return m_visibleContentsRect;
@@ -356,8 +334,6 @@ void CompositingCoordinator::detachLayer(CoordinatedGraphicsLayer* layer)
 
 void CompositingCoordinator::renderNextFrame()
 {
 
 void CompositingCoordinator::renderNextFrame()
 {
-    for (auto& atlas : m_updateAtlases)
-        atlas->didSwapBuffers();
 }
 
 void CompositingCoordinator::purgeBackingStores()
 }
 
 void CompositingCoordinator::purgeBackingStores()
@@ -368,28 +344,6 @@ void CompositingCoordinator::purgeBackingStores()
         registeredLayer->purgeBackingStores();
 
     m_imageBackings.clear();
         registeredLayer->purgeBackingStores();
 
     m_imageBackings.clear();
-    m_updateAtlases.clear();
-}
-
-Ref<Nicosia::Buffer> CompositingCoordinator::getCoordinatedBuffer(const IntSize& size, Nicosia::Buffer::Flags flags, uint32_t& atlasID, IntRect& allocatedRect)
-{
-    for (auto& atlas : m_updateAtlases) {
-        if (atlas->supportsAlpha() == (flags & Nicosia::Buffer::SupportsAlpha)) {
-            if (auto buffer = atlas->getCoordinatedBuffer(size, atlasID, allocatedRect))
-                return *buffer;
-        }
-    }
-
-    static const IntSize s_atlasSize { 1024, 1024 }; // This should be a square.
-    m_updateAtlases.append(std::make_unique<UpdateAtlas>(*this, s_atlasSize, flags));
-    scheduleReleaseInactiveAtlases();
-
-    // Specified size should always fit into a newly-created UpdateAtlas and a non-null
-    // CoordinatedBuffer value should be returned from UpdateAtlas::getCoordinatedBuffer().
-    // We use a RELEASE_ASSERT() to stop any malfunctioning at the earliest point.
-    auto buffer = m_updateAtlases.last()->getCoordinatedBuffer(size, atlasID, allocatedRect);
-    RELEASE_ASSERT(buffer);
-    return *buffer;
 }
 
 Nicosia::PaintingEngine& CompositingCoordinator::paintingEngine()
 }
 
 Nicosia::PaintingEngine& CompositingCoordinator::paintingEngine()
@@ -397,64 +351,6 @@ Nicosia::PaintingEngine& CompositingCoordinator::paintingEngine()
     return *m_paintingEngine;
 }
 
     return *m_paintingEngine;
 }
 
-const Seconds releaseInactiveAtlasesTimerInterval { 500_ms };
-
-void CompositingCoordinator::scheduleReleaseInactiveAtlases()
-{
-    if (!m_releaseInactiveAtlasesTimer.isActive())
-        m_releaseInactiveAtlasesTimer.startRepeating(releaseInactiveAtlasesTimerInterval);
-}
-
-void CompositingCoordinator::releaseInactiveAtlasesTimerFired()
-{
-    releaseAtlases(MemoryPressureHandler::singleton().isUnderMemoryPressure() ? ReleaseUnused : ReleaseInactive);
-}
-
-void CompositingCoordinator::releaseAtlases(ReleaseAtlasPolicy policy)
-{
-    // We always want to keep one atlas for root contents layer.
-    std::unique_ptr<UpdateAtlas> atlasToKeepAnyway;
-    bool foundActiveAtlasForRootContentsLayer = false;
-    for (int i = m_updateAtlases.size() - 1;  i >= 0; --i) {
-        UpdateAtlas* atlas = m_updateAtlases[i].get();
-        bool inUse = atlas->isInUse();
-        if (!inUse)
-            atlas->addTimeInactive(releaseInactiveAtlasesTimerInterval.value());
-        bool usableForRootContentsLayer = !atlas->supportsAlpha();
-        if (atlas->isInactive() || (!inUse && policy == ReleaseUnused)) {
-            if (!foundActiveAtlasForRootContentsLayer && !atlasToKeepAnyway && usableForRootContentsLayer)
-                atlasToKeepAnyway = WTFMove(m_updateAtlases[i]);
-            m_updateAtlases.remove(i);
-        } else if (usableForRootContentsLayer)
-            foundActiveAtlasForRootContentsLayer = true;
-    }
-
-    if (!foundActiveAtlasForRootContentsLayer && atlasToKeepAnyway)
-        m_updateAtlases.append(atlasToKeepAnyway.release());
-
-    m_updateAtlases.shrinkToFit();
-
-    if (m_updateAtlases.size() <= 1)
-        m_releaseInactiveAtlasesTimer.stop();
-
-    if (!m_atlasesToRemove.isEmpty())
-        m_client.releaseUpdateAtlases(m_atlasesToRemove);
-    m_atlasesToRemove.clear();
-}
-
-void CompositingCoordinator::clearUpdateAtlases()
-{
-    if (m_isPurging)
-        return;
-
-    m_releaseInactiveAtlasesTimer.stop();
-    m_updateAtlases.clear();
-
-    if (!m_atlasesToRemove.isEmpty())
-        m_client.releaseUpdateAtlases(m_atlasesToRemove);
-    m_atlasesToRemove.clear();
-}
-
 } // namespace WebKit
 
 #endif // USE(COORDINATED_GRAPHICS)
 } // namespace WebKit
 
 #endif // USE(COORDINATED_GRAPHICS)
index 66954ff..61a2b62 100644 (file)
@@ -37,7 +37,6 @@
 #include <WebCore/GraphicsLayerFactory.h>
 #include <WebCore/IntRect.h>
 #include <WebCore/NicosiaBuffer.h>
 #include <WebCore/GraphicsLayerFactory.h>
 #include <WebCore/IntRect.h>
 #include <WebCore/NicosiaBuffer.h>
-#include <WebCore/UpdateAtlas.h>
 
 namespace Nicosia {
 class PaintingEngine;
 
 namespace Nicosia {
 class PaintingEngine;
@@ -54,7 +53,6 @@ namespace WebKit {
 class CompositingCoordinator final : public WebCore::GraphicsLayerClient
     , public WebCore::CoordinatedGraphicsLayerClient
     , public WebCore::CoordinatedImageBacking::Client
 class CompositingCoordinator final : public WebCore::GraphicsLayerClient
     , public WebCore::CoordinatedGraphicsLayerClient
     , public WebCore::CoordinatedImageBacking::Client
-    , public WebCore::UpdateAtlas::Client
     , public WebCore::GraphicsLayerFactory {
     WTF_MAKE_NONCOPYABLE(CompositingCoordinator);
 public:
     , public WebCore::GraphicsLayerFactory {
     WTF_MAKE_NONCOPYABLE(CompositingCoordinator);
 public:
@@ -63,14 +61,12 @@ public:
         virtual void didFlushRootLayer(const WebCore::FloatRect& visibleContentRect) = 0;
         virtual void notifyFlushRequired() = 0;
         virtual void commitSceneState(const WebCore::CoordinatedGraphicsState&) = 0;
         virtual void didFlushRootLayer(const WebCore::FloatRect& visibleContentRect) = 0;
         virtual void notifyFlushRequired() = 0;
         virtual void commitSceneState(const WebCore::CoordinatedGraphicsState&) = 0;
-        virtual void releaseUpdateAtlases(const Vector<uint32_t>&) = 0;
     };
 
     CompositingCoordinator(WebCore::Page*, CompositingCoordinator::Client&);
     virtual ~CompositingCoordinator();
 
     void invalidate();
     };
 
     CompositingCoordinator(WebCore::Page*, CompositingCoordinator::Client&);
     virtual ~CompositingCoordinator();
 
     void invalidate();
-    void clearUpdateAtlases();
 
     void setRootCompositingLayer(WebCore::GraphicsLayer*);
     void setViewOverlayRootLayer(WebCore::GraphicsLayer*);
 
     void setRootCompositingLayer(WebCore::GraphicsLayer*);
     void setViewOverlayRootLayer(WebCore::GraphicsLayer*);
@@ -95,11 +91,6 @@ public:
     double nextAnimationServiceTime() const;
 
 private:
     double nextAnimationServiceTime() const;
 
 private:
-    enum ReleaseAtlasPolicy {
-        ReleaseInactive,
-        ReleaseUnused
-    };
-
     // GraphicsLayerClient
     void notifyFlushRequired(const WebCore::GraphicsLayer*) override;
     float deviceScaleFactor() const override;
     // GraphicsLayerClient
     void notifyFlushRequired(const WebCore::GraphicsLayer*) override;
     float deviceScaleFactor() const override;
@@ -116,14 +107,9 @@ private:
     WebCore::FloatRect visibleContentsRect() const override;
     Ref<WebCore::CoordinatedImageBacking> createImageBackingIfNeeded(WebCore::Image&) override;
     void detachLayer(WebCore::CoordinatedGraphicsLayer*) override;
     WebCore::FloatRect visibleContentsRect() const override;
     Ref<WebCore::CoordinatedImageBacking> createImageBackingIfNeeded(WebCore::Image&) override;
     void detachLayer(WebCore::CoordinatedGraphicsLayer*) override;
-    Ref<Nicosia::Buffer> getCoordinatedBuffer(const WebCore::IntSize&, Nicosia::Buffer::Flags, uint32_t&, WebCore::IntRect&) override;
     Nicosia::PaintingEngine& paintingEngine() override;
     void syncLayerState(WebCore::CoordinatedLayerID, WebCore::CoordinatedGraphicsLayerState&) override;
 
     Nicosia::PaintingEngine& paintingEngine() override;
     void syncLayerState(WebCore::CoordinatedLayerID, WebCore::CoordinatedGraphicsLayerState&) override;
 
-    // UpdateAtlas::Client
-    void createUpdateAtlas(WebCore::UpdateAtlas::ID, Ref<Nicosia::Buffer>&&) override;
-    void removeUpdateAtlas(WebCore::UpdateAtlas::ID) override;
-
     // GraphicsLayerFactory
     std::unique_ptr<WebCore::GraphicsLayer> createGraphicsLayer(WebCore::GraphicsLayer::Type, WebCore::GraphicsLayerClient&) override;
 
     // GraphicsLayerFactory
     std::unique_ptr<WebCore::GraphicsLayer> createGraphicsLayer(WebCore::GraphicsLayer::Type, WebCore::GraphicsLayerClient&) override;
 
@@ -133,10 +119,6 @@ private:
 
     void purgeBackingStores();
 
 
     void purgeBackingStores();
 
-    void scheduleReleaseInactiveAtlases();
-    void releaseInactiveAtlasesTimerFired();
-    void releaseAtlases(ReleaseAtlasPolicy);
-
     double timestamp() const;
 
     WebCore::Page* m_page;
     double timestamp() const;
 
     WebCore::Page* m_page;
@@ -152,8 +134,6 @@ private:
     HashMap<WebCore::CoordinatedImageBackingID, RefPtr<WebCore::CoordinatedImageBacking>> m_imageBackings;
 
     std::unique_ptr<Nicosia::PaintingEngine> m_paintingEngine;
     HashMap<WebCore::CoordinatedImageBackingID, RefPtr<WebCore::CoordinatedImageBacking>> m_imageBackings;
 
     std::unique_ptr<Nicosia::PaintingEngine> m_paintingEngine;
-    Vector<std::unique_ptr<WebCore::UpdateAtlas>> m_updateAtlases;
-    Vector<uint32_t> m_atlasesToRemove;
 
     // We don't send the messages related to releasing resources to renderer during purging, because renderer already had removed all resources.
     bool m_isDestructing { false };
 
     // We don't send the messages related to releasing resources to renderer during purging, because renderer already had removed all resources.
     bool m_isDestructing { false };
@@ -163,7 +143,6 @@ private:
     bool m_didInitializeRootCompositingLayer { false };
 
     WebCore::FloatRect m_visibleContentsRect;
     bool m_didInitializeRootCompositingLayer { false };
 
     WebCore::FloatRect m_visibleContentsRect;
-    RunLoop::Timer<CompositingCoordinator> m_releaseInactiveAtlasesTimer;
 
     double m_lastAnimationServiceTime { 0 };
 };
 
     double m_lastAnimationServiceTime { 0 };
 };
index 3f105c8..092aa38 100644 (file)
@@ -236,10 +236,5 @@ void CoordinatedLayerTreeHost::scheduleAnimation()
     m_layerFlushTimer.startOneShot(1_s * m_coordinator.nextAnimationServiceTime());
 }
 
     m_layerFlushTimer.startOneShot(1_s * m_coordinator.nextAnimationServiceTime());
 }
 
-void CoordinatedLayerTreeHost::clearUpdateAtlases()
-{
-    m_coordinator.clearUpdateAtlases();
-}
-
 } // namespace WebKit
 #endif // USE(COORDINATED_GRAPHICS)
 } // namespace WebKit
 #endif // USE(COORDINATED_GRAPHICS)
index d6306cc..9159b68 100644 (file)
@@ -57,8 +57,6 @@ protected:
     void deviceOrPageScaleFactorChanged() override;
     void pageBackgroundTransparencyChanged() override;
 
     void deviceOrPageScaleFactorChanged() override;
     void pageBackgroundTransparencyChanged() override;
 
-    void clearUpdateAtlases() override;
-
     void setVisibleContentsRect(const WebCore::FloatRect&, const WebCore::FloatPoint&);
     void renderNextFrame();
 
     void setVisibleContentsRect(const WebCore::FloatRect&, const WebCore::FloatPoint&);
     void renderNextFrame();
 
@@ -72,7 +70,6 @@ protected:
     void didFlushRootLayer(const WebCore::FloatRect& visibleContentRect) override;
     void notifyFlushRequired() override { scheduleLayerFlush(); };
     void commitSceneState(const WebCore::CoordinatedGraphicsState&) override;
     void didFlushRootLayer(const WebCore::FloatRect& visibleContentRect) override;
     void notifyFlushRequired() override { scheduleLayerFlush(); };
     void commitSceneState(const WebCore::CoordinatedGraphicsState&) override;
-    void releaseUpdateAtlases(const Vector<uint32_t>&) override { };
 
 private:
     void layerFlushTimerFired();
 
 private:
     void layerFlushTimerFired();
index a4c1774..d0c4c26 100644 (file)
@@ -248,11 +248,6 @@ void ThreadedCoordinatedLayerTreeHost::commitSceneState(const CoordinatedGraphic
     m_compositor->updateSceneState(state);
 }
 
     m_compositor->updateSceneState(state);
 }
 
-void ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases(const Vector<uint32_t>& atlasesToRemove)
-{
-    m_compositor->releaseUpdateAtlases(atlasesToRemove);
-}
-
 void ThreadedCoordinatedLayerTreeHost::setIsDiscardable(bool discardable)
 {
     m_isDiscardable = discardable;
 void ThreadedCoordinatedLayerTreeHost::setIsDiscardable(bool discardable)
 {
     m_isDiscardable = discardable;
index 9eafbdb..629ddaf 100644 (file)
@@ -113,7 +113,6 @@ private:
     // CompositingCoordinator::Client
     void didFlushRootLayer(const WebCore::FloatRect&) override { }
     void commitSceneState(const WebCore::CoordinatedGraphicsState&) override;
     // CompositingCoordinator::Client
     void didFlushRootLayer(const WebCore::FloatRect&) override { }
     void commitSceneState(const WebCore::CoordinatedGraphicsState&) override;
-    void releaseUpdateAtlases(const Vector<uint32_t>&) override;
 
 #if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
     RefPtr<WebCore::DisplayRefreshMonitor> createDisplayRefreshMonitor(WebCore::PlatformDisplayID) override;
 
 #if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
     RefPtr<WebCore::DisplayRefreshMonitor> createDisplayRefreshMonitor(WebCore::PlatformDisplayID) override;
index b653e35..d2e2541 100644 (file)
@@ -138,7 +138,6 @@ public:
 
 #if USE(COORDINATED_GRAPHICS)
     virtual void didChangeViewportAttributes(WebCore::ViewportAttributes&&) = 0;
 
 #if USE(COORDINATED_GRAPHICS)
     virtual void didChangeViewportAttributes(WebCore::ViewportAttributes&&) = 0;
-    virtual void resetUpdateAtlasForTesting() = 0;
 #endif
 
 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER)
 #endif
 
 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER)
index e2c0733..85dd458 100644 (file)
@@ -89,7 +89,6 @@ public:
 #if USE(COORDINATED_GRAPHICS)
     virtual void scheduleAnimation() = 0;
     virtual void setIsDiscardable(bool) { };
 #if USE(COORDINATED_GRAPHICS)
     virtual void scheduleAnimation() = 0;
     virtual void setIsDiscardable(bool) { };
-    virtual void clearUpdateAtlases() = 0;
 #endif
 
 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(GTK)
 #endif
 
 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(GTK)