Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 1063493002: cc: Remove all traces of synchronous GPU rasterization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_settings.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 6060 matching lines...) Expand 10 before | Expand all | Expand 10 after
6071 EndTest(); 6071 EndTest();
6072 return draw_result; 6072 return draw_result;
6073 } 6073 }
6074 void AfterTest() override {} 6074 void AfterTest() override {}
6075 6075
6076 FakeContentLayerClient client_; 6076 FakeContentLayerClient client_;
6077 }; 6077 };
6078 6078
6079 MULTI_THREAD_IMPL_TEST_F(RasterizeWithGpuRasterizationCreatesResources); 6079 MULTI_THREAD_IMPL_TEST_F(RasterizeWithGpuRasterizationCreatesResources);
6080 6080
6081 class SynchronousGpuRasterizationRasterizesVisibleOnly 6081 class GpuRasterizationRasterizesBorderTiles : public LayerTreeHostTest {
6082 : public LayerTreeHostTest {
6083 protected: 6082 protected:
6084 SynchronousGpuRasterizationRasterizesVisibleOnly() 6083 GpuRasterizationRasterizesBorderTiles() : viewport_size_(1024, 2048) {}
6085 : viewport_size_(1024, 2048) {}
6086 6084
6087 void InitializeSettings(LayerTreeSettings* settings) override { 6085 void InitializeSettings(LayerTreeSettings* settings) override {
6088 settings->impl_side_painting = true; 6086 settings->impl_side_painting = true;
6089 settings->gpu_rasterization_enabled = true; 6087 settings->gpu_rasterization_enabled = true;
6090 settings->gpu_rasterization_forced = true; 6088 settings->gpu_rasterization_forced = true;
6091 settings->threaded_gpu_rasterization_enabled = false;
6092 } 6089 }
6093 6090
6094 void SetupTree() override { 6091 void SetupTree() override {
6095 client_.set_fill_with_nonsolid_color(true);
6096
6097 scoped_ptr<FakePicturePile> pile(
6098 new FakePicturePile(ImplSidePaintingSettings().minimum_contents_scale,
6099 ImplSidePaintingSettings().default_tile_grid_size));
6100 scoped_refptr<FakePictureLayer> root =
6101 FakePictureLayer::CreateWithRecordingSource(&client_, pile.Pass());
6102 root->SetBounds(gfx::Size(viewport_size_.width(), 10000));
6103 root->SetContentsOpaque(true);
6104
6105 layer_tree_host()->SetRootLayer(root);
6106 LayerTreeHostTest::SetupTree();
6107 layer_tree_host()->SetViewportSize(viewport_size_);
6108 }
6109
6110 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
6111
6112 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
6113 LayerTreeHostImpl::FrameData* frame_data,
6114 DrawResult draw_result) override {
6115 EXPECT_EQ(4u, host_impl->resource_provider()->num_resources());
6116
6117 // Verify which tiles got resources using an eviction iterator, which has to
6118 // return all tiles that have resources.
6119 scoped_ptr<EvictionTilePriorityQueue> eviction_queue(
6120 host_impl->BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES));
6121 int tile_count = 0;
6122 for (; !eviction_queue->IsEmpty(); eviction_queue->Pop()) {
6123 Tile* tile = eviction_queue->Top();
6124 // Ensure this tile is within the viewport.
6125 EXPECT_TRUE(tile->content_rect().Intersects(gfx::Rect(viewport_size_)));
6126 // Ensure that the tile is 1/4 of the viewport tall (plus padding).
6127 EXPECT_EQ(tile->content_rect().height(),
6128 (viewport_size_.height() / 4) + 2);
6129 ++tile_count;
6130 }
6131 EXPECT_EQ(4, tile_count);
6132 EndTest();
6133 return draw_result;
6134 }
6135
6136 void AfterTest() override {}
6137
6138 private:
6139 FakeContentLayerClient client_;
6140 gfx::Size viewport_size_;
6141 };
6142
6143 MULTI_THREAD_IMPL_TEST_F(SynchronousGpuRasterizationRasterizesVisibleOnly);
6144
6145 class ThreadedGpuRasterizationRasterizesBorderTiles : public LayerTreeHostTest {
6146 protected:
6147 ThreadedGpuRasterizationRasterizesBorderTiles()
6148 : viewport_size_(1024, 2048) {}
6149
6150 void InitializeSettings(LayerTreeSettings* settings) override {
6151 settings->impl_side_painting = true;
6152 settings->gpu_rasterization_enabled = true;
6153 settings->gpu_rasterization_forced = true;
6154 settings->threaded_gpu_rasterization_enabled = true;
6155 }
6156
6157 void SetupTree() override {
6158 client_.set_fill_with_nonsolid_color(true); 6092 client_.set_fill_with_nonsolid_color(true);
6159 6093
6160 scoped_ptr<FakePicturePile> pile( 6094 scoped_ptr<FakePicturePile> pile(
6161 new FakePicturePile(ImplSidePaintingSettings().minimum_contents_scale, 6095 new FakePicturePile(ImplSidePaintingSettings().minimum_contents_scale,
6162 ImplSidePaintingSettings().default_tile_grid_size)); 6096 ImplSidePaintingSettings().default_tile_grid_size));
6163 scoped_refptr<FakePictureLayer> root = 6097 scoped_refptr<FakePictureLayer> root =
6164 FakePictureLayer::CreateWithRecordingSource(&client_, pile.Pass()); 6098 FakePictureLayer::CreateWithRecordingSource(&client_, pile.Pass());
6165 root->SetBounds(gfx::Size(10000, 10000)); 6099 root->SetBounds(gfx::Size(10000, 10000));
6166 root->SetContentsOpaque(true); 6100 root->SetContentsOpaque(true);
6167 6101
(...skipping 12 matching lines...) Expand all
6180 return draw_result; 6114 return draw_result;
6181 } 6115 }
6182 6116
6183 void AfterTest() override {} 6117 void AfterTest() override {}
6184 6118
6185 private: 6119 private:
6186 FakeContentLayerClient client_; 6120 FakeContentLayerClient client_;
6187 gfx::Size viewport_size_; 6121 gfx::Size viewport_size_;
6188 }; 6122 };
6189 6123
6190 MULTI_THREAD_IMPL_TEST_F(ThreadedGpuRasterizationRasterizesBorderTiles); 6124 MULTI_THREAD_IMPL_TEST_F(GpuRasterizationRasterizesBorderTiles);
6191 6125
6192 class LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles 6126 class LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles
6193 : public LayerTreeHostTest { 6127 : public LayerTreeHostTest {
6194 protected: 6128 protected:
6195 LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles() 6129 LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles()
6196 : playback_allowed_event_(true, true) {} 6130 : playback_allowed_event_(true, true) {}
6197 6131
6198 void InitializeSettings(LayerTreeSettings* settings) override { 6132 void InitializeSettings(LayerTreeSettings* settings) override {
6199 settings->impl_side_painting = true; 6133 settings->impl_side_painting = true;
6200 } 6134 }
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
6664 6598
6665 void AfterTest() override {} 6599 void AfterTest() override {}
6666 6600
6667 private: 6601 private:
6668 scoped_refptr<Layer> child_; 6602 scoped_refptr<Layer> child_;
6669 }; 6603 };
6670 6604
6671 SINGLE_AND_MULTI_THREAD_TEST_F(LayerPreserveRenderSurfaceFromOutputRequests); 6605 SINGLE_AND_MULTI_THREAD_TEST_F(LayerPreserveRenderSurfaceFromOutputRequests);
6672 6606
6673 } // namespace cc 6607 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698