Commit 2d8dc2d0 authored by nduca@chromium.org's avatar nduca@chromium.org

[cc] Pass metadata about a tile to the raster system for benchmarks

There are a variety of benchmarks that want to measure the cost of
raster for now bin only, and similarly, only for low res tiles. This
patch provides very primitive infrastructure for this.

R=reveman
CC=egraether,skyostil

BUG=175976

Review URL: https://chromiumcodereview.appspot.com/12258004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182216 0039d316-1c4b-4281-b951-d872f2087c98
parent 38f52016
...@@ -69,6 +69,14 @@ std::string ValueToString(scoped_ptr<base::Value> value) ...@@ -69,6 +69,14 @@ std::string ValueToString(scoped_ptr<base::Value> value)
return str; return str;
} }
RasterTaskMetadata GetRasterTaskMetadata(const ManagedTileState& mts) {
RasterTaskMetadata raster_task_metadata;
raster_task_metadata.is_tile_in_pending_tree_now_bin =
mts.tree_bin[PENDING_TREE] == NOW_BIN;
raster_task_metadata.tile_resolution = mts.resolution;
return raster_task_metadata;
}
} // namespace } // namespace
scoped_ptr<base::Value> TileManagerBinAsValue(TileManagerBin bin) { scoped_ptr<base::Value> TileManagerBinAsValue(TileManagerBin bin) {
...@@ -771,7 +779,8 @@ void TileManager::DispatchOneRasterTask(scoped_refptr<Tile> tile) { ...@@ -771,7 +779,8 @@ void TileManager::DispatchOneRasterTask(scoped_refptr<Tile> tile) {
resource_id), resource_id),
tile->content_rect_, tile->content_rect_,
tile->contents_scale(), tile->contents_scale(),
use_cheapness_estimator_), use_cheapness_estimator_,
GetRasterTaskMetadata(tile->managed_state())),
base::Bind(&TileManager::OnRasterTaskCompleted, base::Bind(&TileManager::OnRasterTaskCompleted,
base::Unretained(this), base::Unretained(this),
tile, tile,
...@@ -788,6 +797,7 @@ void TileManager::PerformOneRaster(Tile* tile) { ...@@ -788,6 +797,7 @@ void TileManager::PerformOneRaster(Tile* tile) {
tile->content_rect_, tile->content_rect_,
tile->contents_scale(), tile->contents_scale(),
use_cheapness_estimator_, use_cheapness_estimator_,
GetRasterTaskMetadata(tile->managed_state()),
tile->picture_pile(), tile->picture_pile(),
&rendering_stats_); &rendering_stats_);
...@@ -893,9 +903,16 @@ void TileManager::PerformRaster(uint8* buffer, ...@@ -893,9 +903,16 @@ void TileManager::PerformRaster(uint8* buffer,
const gfx::Rect& rect, const gfx::Rect& rect,
float contents_scale, float contents_scale,
bool use_cheapness_estimator, bool use_cheapness_estimator,
const RasterTaskMetadata& raster_task_metadata,
PicturePileImpl* picture_pile, PicturePileImpl* picture_pile,
RenderingStats* stats) { RenderingStats* stats) {
TRACE_EVENT0("cc", "TileManager::PerformRaster"); TRACE_EVENT2(
"cc", "TileManager::PerformRaster",
"is_on_pending_tree",
raster_task_metadata.is_tile_in_pending_tree_now_bin,
"is_low_res",
raster_task_metadata.tile_resolution == LOW_RESOLUTION);
DCHECK(picture_pile); DCHECK(picture_pile);
DCHECK(buffer); DCHECK(buffer);
SkBitmap bitmap; SkBitmap bitmap;
......
...@@ -63,6 +63,12 @@ enum TileRasterState { ...@@ -63,6 +63,12 @@ enum TileRasterState {
scoped_ptr<base::Value> TileRasterStateAsValue( scoped_ptr<base::Value> TileRasterStateAsValue(
TileRasterState bin); TileRasterState bin);
// Metadata that is passed to raster tasks for diagnostic purposes.
struct RasterTaskMetadata {
bool is_tile_in_pending_tree_now_bin;
TileResolution tile_resolution;
};
// This is state that is specific to a tile that is // This is state that is specific to a tile that is
// managed by the TileManager. // managed by the TileManager.
class CC_EXPORT ManagedTileState { class CC_EXPORT ManagedTileState {
...@@ -175,6 +181,7 @@ class CC_EXPORT TileManager { ...@@ -175,6 +181,7 @@ class CC_EXPORT TileManager {
const gfx::Rect& rect, const gfx::Rect& rect,
float contents_scale, float contents_scale,
bool use_cheapness_estimator, bool use_cheapness_estimator,
const RasterTaskMetadata& raster_task_metadata,
PicturePileImpl* picture_pile, PicturePileImpl* picture_pile,
RenderingStats* stats); RenderingStats* stats);
static void RunImageDecodeTask(skia::LazyPixelRef* pixel_ref, static void RunImageDecodeTask(skia::LazyPixelRef* pixel_ref,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment