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 |