| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/run_loop.h" | 5 #include "base/run_loop.h" |
| 6 #include "base/thread_task_runner_handle.h" | 6 #include "base/thread_task_runner_handle.h" |
| 7 #include "cc/playback/display_list_raster_source.h" | 7 #include "cc/playback/display_list_raster_source.h" |
| 8 #include "cc/playback/display_list_recording_source.h" | 8 #include "cc/playback/display_list_recording_source.h" |
| 9 #include "cc/raster/raster_buffer.h" | 9 #include "cc/raster/raster_buffer.h" |
| 10 #include "cc/resources/resource_pool.h" | 10 #include "cc/resources/resource_pool.h" |
| (...skipping 1679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1690 } | 1690 } |
| 1691 } | 1691 } |
| 1692 | 1692 |
| 1693 // Fake TileTaskRunner that just no-ops all calls. | 1693 // Fake TileTaskRunner that just no-ops all calls. |
| 1694 class FakeTileTaskRunner : public TileTaskRunner, public TileTaskClient { | 1694 class FakeTileTaskRunner : public TileTaskRunner, public TileTaskClient { |
| 1695 public: | 1695 public: |
| 1696 FakeTileTaskRunner() {} | 1696 FakeTileTaskRunner() {} |
| 1697 ~FakeTileTaskRunner() override {} | 1697 ~FakeTileTaskRunner() override {} |
| 1698 | 1698 |
| 1699 // TileTaskRunner methods. | 1699 // TileTaskRunner methods. |
| 1700 void SetClient(TileTaskRunnerClient* client) override {} | |
| 1701 void Shutdown() override {} | 1700 void Shutdown() override {} |
| 1702 void CheckForCompletedTasks() override {} | 1701 void CheckForCompletedTasks() override {} |
| 1703 ResourceFormat GetResourceFormat(bool must_support_alpha) const override { | 1702 ResourceFormat GetResourceFormat(bool must_support_alpha) const override { |
| 1704 return ResourceFormat::RGBA_8888; | 1703 return ResourceFormat::RGBA_8888; |
| 1705 } | 1704 } |
| 1706 bool GetResourceRequiresSwizzle(bool must_support_alpha) const override { | 1705 bool GetResourceRequiresSwizzle(bool must_support_alpha) const override { |
| 1707 return false; | 1706 return false; |
| 1708 } | 1707 } |
| 1709 | 1708 |
| 1710 void ScheduleTasks(TileTaskQueue* queue) override {} | 1709 void ScheduleTasks(scoped_ptr<TaskGraph> graph) override {} |
| 1711 | 1710 |
| 1712 // TileTaskClient methods. | 1711 // TileTaskClient methods. |
| 1713 scoped_ptr<RasterBuffer> AcquireBufferForRaster( | 1712 scoped_ptr<RasterBuffer> AcquireBufferForRaster( |
| 1714 const Resource* resource, | 1713 const Resource* resource, |
| 1715 uint64_t resource_content_id, | 1714 uint64_t resource_content_id, |
| 1716 uint64_t previous_content_id) override { | 1715 uint64_t previous_content_id) override { |
| 1717 NOTREACHED(); | 1716 NOTREACHED(); |
| 1718 return nullptr; | 1717 return nullptr; |
| 1719 } | 1718 } |
| 1720 void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override {} | 1719 void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override {} |
| 1721 }; | 1720 }; |
| 1722 | 1721 |
| 1723 // Fake TileTaskRunner that just cancels all scheduled tasks immediately. | 1722 // Fake TileTaskRunner that just cancels all scheduled tasks immediately. |
| 1724 class CancellingTileTaskRunner : public FakeTileTaskRunner { | 1723 class CancellingTileTaskRunner : public FakeTileTaskRunner { |
| 1725 public: | 1724 public: |
| 1726 CancellingTileTaskRunner() {} | 1725 CancellingTileTaskRunner() {} |
| 1727 ~CancellingTileTaskRunner() override {} | 1726 ~CancellingTileTaskRunner() override {} |
| 1728 | 1727 |
| 1729 void ScheduleTasks(TileTaskQueue* queue) override { | 1728 void ScheduleTasks(scoped_ptr<TaskGraph> graph) override { |
| 1730 // Just call CompleteOnOriginThread on each item in the queue. As none of | 1729 // Just call CompleteOnOriginThread on each item in the queue. As none of |
| 1731 // these items have run yet, they will be treated as cancelled tasks. | 1730 // these items have run yet, they will be treated as cancelled tasks. |
| 1732 for (const auto& task : queue->items) { | 1731 for (const auto& node : graph->nodes) { |
| 1733 task.task->CompleteOnOriginThread(this); | 1732 static_cast<RasterTask*>(node.task)->CompleteOnOriginThread(this); |
| 1734 } | 1733 } |
| 1735 } | 1734 } |
| 1736 }; | 1735 }; |
| 1737 | 1736 |
| 1738 class PartialRasterTileManagerTest : public TileManagerTest { | 1737 class PartialRasterTileManagerTest : public TileManagerTest { |
| 1739 public: | 1738 public: |
| 1740 void CustomizeSettings(LayerTreeSettings* settings) override { | 1739 void CustomizeSettings(LayerTreeSettings* settings) override { |
| 1741 settings->use_partial_raster = true; | 1740 settings->use_partial_raster = true; |
| 1742 } | 1741 } |
| 1743 }; | 1742 }; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1796 host_impl_ = nullptr; | 1795 host_impl_ = nullptr; |
| 1797 } | 1796 } |
| 1798 | 1797 |
| 1799 // Fake TileTaskRunner that verifies the resource content ID of raster tasks. | 1798 // Fake TileTaskRunner that verifies the resource content ID of raster tasks. |
| 1800 class VerifyResourceContentIdTileTaskRunner : public FakeTileTaskRunner { | 1799 class VerifyResourceContentIdTileTaskRunner : public FakeTileTaskRunner { |
| 1801 public: | 1800 public: |
| 1802 explicit VerifyResourceContentIdTileTaskRunner(uint64_t expected_resource_id) | 1801 explicit VerifyResourceContentIdTileTaskRunner(uint64_t expected_resource_id) |
| 1803 : expected_resource_id_(expected_resource_id) {} | 1802 : expected_resource_id_(expected_resource_id) {} |
| 1804 ~VerifyResourceContentIdTileTaskRunner() override {} | 1803 ~VerifyResourceContentIdTileTaskRunner() override {} |
| 1805 | 1804 |
| 1806 void ScheduleTasks(TileTaskQueue* queue) override { | 1805 void ScheduleTasks(scoped_ptr<TaskGraph> graph) override { |
| 1807 for (const auto& task : queue->items) { | 1806 for (const auto& node : graph->nodes) { |
| 1807 RasterTask* task = static_cast<RasterTask*>(node.task); |
| 1808 // Triggers a call to AcquireBufferForRaster. | 1808 // Triggers a call to AcquireBufferForRaster. |
| 1809 task.task->ScheduleOnOriginThread(this); | 1809 task->ScheduleOnOriginThread(this); |
| 1810 // Calls TileManager as though task was cancelled. | 1810 // Calls TileManager as though task was cancelled. |
| 1811 task.task->CompleteOnOriginThread(this); | 1811 task->CompleteOnOriginThread(this); |
| 1812 } | 1812 } |
| 1813 } | 1813 } |
| 1814 | 1814 |
| 1815 // TileTaskClient methods. | 1815 // TileTaskClient methods. |
| 1816 scoped_ptr<RasterBuffer> AcquireBufferForRaster( | 1816 scoped_ptr<RasterBuffer> AcquireBufferForRaster( |
| 1817 const Resource* resource, | 1817 const Resource* resource, |
| 1818 uint64_t resource_content_id, | 1818 uint64_t resource_content_id, |
| 1819 uint64_t previous_content_id) override { | 1819 uint64_t previous_content_id) override { |
| 1820 EXPECT_EQ(expected_resource_id_, resource_content_id); | 1820 EXPECT_EQ(expected_resource_id_, resource_content_id); |
| 1821 return nullptr; | 1821 return nullptr; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1892 | 1892 |
| 1893 // Ensures that the tile manager does not attempt to reuse tiles when partial | 1893 // Ensures that the tile manager does not attempt to reuse tiles when partial |
| 1894 // raster is disabled. | 1894 // raster is disabled. |
| 1895 TEST_F(TileManagerTest, PartialRasterSuccessfullyDisabled) { | 1895 TEST_F(TileManagerTest, PartialRasterSuccessfullyDisabled) { |
| 1896 RunPartialRasterCheck(std::move(host_impl_), | 1896 RunPartialRasterCheck(std::move(host_impl_), |
| 1897 false /* partial_raster_enabled */); | 1897 false /* partial_raster_enabled */); |
| 1898 } | 1898 } |
| 1899 | 1899 |
| 1900 } // namespace | 1900 } // namespace |
| 1901 } // namespace cc | 1901 } // namespace cc |
| OLD | NEW |