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

Side by Side Diff: cc/benchmarks/rasterize_and_record_benchmark_impl.cc

Issue 2175553002: Raster PictureLayerTiling with fractional translation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: combined Created 3 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/base/scale_translate2d.cc ('k') | cc/blink/web_content_layer_impl.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 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 "cc/benchmarks/rasterize_and_record_benchmark_impl.h" 5 #include "cc/benchmarks/rasterize_and_record_benchmark_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
11 11
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "cc/base/lap_timer.h" 13 #include "cc/base/lap_timer.h"
14 #include "cc/base/scale_translate2d.h"
14 #include "cc/layers/layer_impl.h" 15 #include "cc/layers/layer_impl.h"
15 #include "cc/layers/picture_layer_impl.h" 16 #include "cc/layers/picture_layer_impl.h"
16 #include "cc/raster/raster_buffer_provider.h" 17 #include "cc/raster/raster_buffer_provider.h"
17 #include "cc/trees/layer_tree_host_common.h" 18 #include "cc/trees/layer_tree_host_common.h"
18 #include "cc/trees/layer_tree_host_impl.h" 19 #include "cc/trees/layer_tree_host_impl.h"
19 #include "cc/trees/layer_tree_impl.h" 20 #include "cc/trees/layer_tree_impl.h"
20 #include "ui/gfx/geometry/rect.h" 21 #include "ui/gfx/geometry/rect.h"
21 22
22 namespace cc { 23 namespace cc {
23 24
(...skipping 21 matching lines...) Expand all
45 kTimeCheckInterval); 46 kTimeCheckInterval);
46 SkColor color = SK_ColorTRANSPARENT; 47 SkColor color = SK_ColorTRANSPARENT;
47 *is_solid_color = raster_source->PerformSolidColorAnalysis( 48 *is_solid_color = raster_source->PerformSolidColorAnalysis(
48 content_rect, contents_scale, &color); 49 content_rect, contents_scale, &color);
49 50
50 do { 51 do {
51 SkBitmap bitmap; 52 SkBitmap bitmap;
52 bitmap.allocPixels(SkImageInfo::MakeN32Premul(content_rect.width(), 53 bitmap.allocPixels(SkImageInfo::MakeN32Premul(content_rect.width(),
53 content_rect.height())); 54 content_rect.height()));
54 SkCanvas canvas(bitmap); 55 SkCanvas canvas(bitmap);
55 raster_source->PlaybackToCanvas(&canvas, gfx::ColorSpace(), content_rect, 56 raster_source->PlaybackToCanvas(
56 content_rect, contents_scale, 57 &canvas, gfx::ColorSpace(), content_rect, content_rect,
57 RasterSource::PlaybackSettings()); 58 ScaleTranslate2d(contents_scale, gfx::Vector2dF()),
59 RasterSource::PlaybackSettings());
58 60
59 timer.NextLap(); 61 timer.NextLap();
60 } while (!timer.HasTimeLimitExpired()); 62 } while (!timer.HasTimeLimitExpired());
61 base::TimeDelta duration = 63 base::TimeDelta duration =
62 base::TimeDelta::FromMillisecondsD(timer.MsPerLap()); 64 base::TimeDelta::FromMillisecondsD(timer.MsPerLap());
63 if (duration < *min_time) 65 if (duration < *min_time)
64 *min_time = duration; 66 *min_time = duration;
65 } 67 }
66 } 68 }
67 69
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 // really matter. 172 // really matter.
171 const LayerTreeSettings& settings = layer->layer_tree_impl()->settings(); 173 const LayerTreeSettings& settings = layer->layer_tree_impl()->settings();
172 std::unique_ptr<PictureLayerTilingSet> tiling_set = 174 std::unique_ptr<PictureLayerTilingSet> tiling_set =
173 PictureLayerTilingSet::Create( 175 PictureLayerTilingSet::Create(
174 layer->GetTree(), &client, settings.tiling_interest_area_padding, 176 layer->GetTree(), &client, settings.tiling_interest_area_padding,
175 settings.skewport_target_time_in_seconds, 177 settings.skewport_target_time_in_seconds,
176 settings.skewport_extrapolation_limit_in_screen_pixels, 178 settings.skewport_extrapolation_limit_in_screen_pixels,
177 settings.max_preraster_distance_in_screen_pixels); 179 settings.max_preraster_distance_in_screen_pixels);
178 180
179 PictureLayerTiling* tiling = 181 PictureLayerTiling* tiling =
180 tiling_set->AddTiling(1.f, layer->GetRasterSource()); 182 tiling_set->AddTiling(ScaleTranslate2d(), layer->GetRasterSource());
181 tiling->set_resolution(HIGH_RESOLUTION); 183 tiling->set_resolution(HIGH_RESOLUTION);
182 tiling->CreateAllTilesForTesting(); 184 tiling->CreateAllTilesForTesting();
183 RasterSource* raster_source = tiling->raster_source().get(); 185 RasterSource* raster_source = tiling->raster_source().get();
184 for (PictureLayerTiling::CoverageIterator it(tiling, 1.f, 186 for (PictureLayerTiling::CoverageIterator it(tiling, 1.f,
185 layer->visible_layer_rect()); 187 layer->visible_layer_rect());
186 it; ++it) { 188 it; ++it) {
187 DCHECK(*it); 189 DCHECK(*it);
188 190
189 gfx::Rect content_rect = (*it)->content_rect(); 191 gfx::Rect content_rect = (*it)->content_rect();
190 float contents_scale = (*it)->contents_scale(); 192 float contents_scale = (*it)->raster_transform().scale();
191 193
192 base::TimeDelta min_time; 194 base::TimeDelta min_time;
193 bool is_solid_color = false; 195 bool is_solid_color = false;
194 RunBenchmark(raster_source, content_rect, contents_scale, 196 RunBenchmark(raster_source, content_rect, contents_scale,
195 rasterize_repeat_count_, &min_time, &is_solid_color); 197 rasterize_repeat_count_, &min_time, &is_solid_color);
196 198
197 int tile_size = content_rect.width() * content_rect.height(); 199 int tile_size = content_rect.width() * content_rect.height();
198 if (layer->contents_opaque()) 200 if (layer->contents_opaque())
199 rasterize_results_.pixels_rasterized_as_opaque += tile_size; 201 rasterize_results_.pixels_rasterized_as_opaque += tile_size;
200 202
(...skipping 15 matching lines...) Expand all
216 pixels_rasterized_as_opaque(0), 218 pixels_rasterized_as_opaque(0),
217 total_memory_usage(0), 219 total_memory_usage(0),
218 total_layers(0), 220 total_layers(0),
219 total_picture_layers(0), 221 total_picture_layers(0),
220 total_picture_layers_with_no_content(0), 222 total_picture_layers_with_no_content(0),
221 total_picture_layers_off_screen(0) {} 223 total_picture_layers_off_screen(0) {}
222 224
223 RasterizeAndRecordBenchmarkImpl::RasterizeResults::~RasterizeResults() {} 225 RasterizeAndRecordBenchmarkImpl::RasterizeResults::~RasterizeResults() {}
224 226
225 } // namespace cc 227 } // namespace cc
OLDNEW
« no previous file with comments | « cc/base/scale_translate2d.cc ('k') | cc/blink/web_content_layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698