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