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