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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 885443002: Roll Chrome into Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT mojo Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_pixeltest_filters.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 3fe5f4ac47fb704207c0bfd39391fbf3c8c98d1c..3d31e8ef5424cf76033958ffc1d32b581b1d02b0 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -295,7 +295,7 @@ void LayerTreeHostImpl::BeginCommit() {
// Ensure all textures are returned so partial texture updates can happen
// during the commit. Impl-side-painting doesn't upload during commits, so
// is unaffected.
- if (!settings_.impl_side_painting)
+ if (!settings_.impl_side_painting && output_surface_)
output_surface_->ForceReclaimResources();
if (UsePendingTreeForSync())
@@ -691,7 +691,7 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
render_surface->contributes_to_drawn_surface() ||
render_surface_layer->HasCopyRequest();
if (should_draw_into_render_pass)
- render_surface_layer->render_surface()->AppendRenderPasses(frame);
+ render_surface->AppendRenderPasses(frame);
}
// When we are displaying the HUD, change the root damage rect to cover the
@@ -1194,13 +1194,14 @@ void LayerTreeHostImpl::GetPictureLayerImplPairs(
}
}
-void LayerTreeHostImpl::BuildRasterQueue(RasterTilePriorityQueue* queue,
- TreePriority tree_priority,
- RasterTilePriorityQueue::Type type) {
+scoped_ptr<RasterTilePriorityQueue> LayerTreeHostImpl::BuildRasterQueue(
+ TreePriority tree_priority,
+ RasterTilePriorityQueue::Type type) {
TRACE_EVENT0("cc", "LayerTreeHostImpl::BuildRasterQueue");
picture_layer_pairs_.clear();
GetPictureLayerImplPairs(&picture_layer_pairs_, true);
- queue->Build(picture_layer_pairs_, tree_priority, type);
+ scoped_ptr<RasterTilePriorityQueue> queue(RasterTilePriorityQueue::Create(
+ picture_layer_pairs_, tree_priority, type));
if (!queue->IsEmpty()) {
// Only checking the Top() tile here isn't a definite answer that there is
@@ -1215,14 +1216,17 @@ void LayerTreeHostImpl::BuildRasterQueue(RasterTilePriorityQueue* queue,
} else {
required_for_draw_tile_is_top_of_raster_queue_ = false;
}
+ return queue;
}
-void LayerTreeHostImpl::BuildEvictionQueue(EvictionTilePriorityQueue* queue,
- TreePriority tree_priority) {
+scoped_ptr<EvictionTilePriorityQueue> LayerTreeHostImpl::BuildEvictionQueue(
+ TreePriority tree_priority) {
TRACE_EVENT0("cc", "LayerTreeHostImpl::BuildEvictionQueue");
+ scoped_ptr<EvictionTilePriorityQueue> queue(new EvictionTilePriorityQueue);
picture_layer_pairs_.clear();
GetPictureLayerImplPairs(&picture_layer_pairs_, false);
queue->Build(picture_layer_pairs_, tree_priority);
+ return queue;
}
const std::vector<PictureLayerImpl*>& LayerTreeHostImpl::GetPictureLayers()
@@ -1592,7 +1596,7 @@ bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) {
active_tree()->FinishSwapPromises(&metadata);
for (size_t i = 0; i < metadata.latency_info.size(); i++) {
TRACE_EVENT_FLOW_STEP0(
- "input",
+ "input,benchmark",
"LatencyInfo.Flow",
TRACE_ID_DONT_MANGLE(metadata.latency_info[i].trace_id),
"SwapBuffers");
@@ -1969,9 +1973,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
ContextProvider* context_provider = output_surface_->context_provider();
if (!context_provider) {
*resource_pool =
- ResourcePool::Create(resource_provider_.get(),
- GL_TEXTURE_2D,
- resource_provider_->best_texture_format());
+ ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
*tile_task_worker_pool = BitmapTileTaskWorkerPool::Create(
task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
@@ -1981,12 +1983,11 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
if (use_gpu_rasterization_) {
*resource_pool =
- ResourcePool::Create(resource_provider_.get(),
- GL_TEXTURE_2D,
- resource_provider_->best_texture_format());
+ ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
*tile_task_worker_pool = GpuTileTaskWorkerPool::Create(
- task_runner, TileTaskWorkerPool::GetTaskGraphRunner());
+ task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
+ resource_provider_.get());
return;
}
@@ -2001,8 +2002,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
if (settings_.use_zero_copy || IsSynchronousSingleThreaded()) {
*resource_pool =
- ResourcePool::Create(resource_provider_.get(), image_target,
- resource_provider_->best_texture_format());
+ ResourcePool::Create(resource_provider_.get(), image_target);
TaskGraphRunner* task_graph_runner;
if (IsSynchronousSingleThreaded()) {
@@ -2021,11 +2021,9 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
if (settings_.use_one_copy) {
// We need to create a staging resource pool when using copy rasterizer.
*staging_resource_pool =
- ResourcePool::Create(resource_provider_.get(), image_target,
- resource_provider_->best_texture_format());
+ ResourcePool::Create(resource_provider_.get(), image_target);
*resource_pool =
- ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D,
- resource_provider_->best_texture_format());
+ ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D);
*tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create(
task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
@@ -2036,8 +2034,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool(
}
*resource_pool = ResourcePool::Create(
- resource_provider_.get(), GL_TEXTURE_2D,
- resource_provider_->memory_efficient_texture_format());
+ resource_provider_.get(), GL_TEXTURE_2D);
*tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create(
task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), context_provider,
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_pixeltest_filters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698