| 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 |