| Index: cc/trees/thread_proxy.cc
|
| diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc
|
| index c9bd06f7d13c867ca3fb2ae4f256b5e1c9462e36..8ce9c3773463946ba6b71ee4a9093a15f273df19 100644
|
| --- a/cc/trees/thread_proxy.cc
|
| +++ b/cc/trees/thread_proxy.cc
|
| @@ -97,18 +97,12 @@ ThreadProxy::MainThreadOrBlockedMainThread::MainThreadOrBlockedMainThread(
|
|
|
| ThreadProxy::MainThreadOrBlockedMainThread::~MainThreadOrBlockedMainThread() {}
|
|
|
| -PrioritizedResourceManager*
|
| -ThreadProxy::MainThreadOrBlockedMainThread::contents_texture_manager() {
|
| - return layer_tree_host->contents_texture_manager();
|
| -}
|
| -
|
| ThreadProxy::CompositorThreadOnly::CompositorThreadOnly(
|
| ThreadProxy* proxy,
|
| int layer_tree_host_id,
|
| RenderingStatsInstrumentation* rendering_stats_instrumentation,
|
| scoped_ptr<BeginFrameSource> external_begin_frame_source)
|
| : layer_tree_host_id(layer_tree_host_id),
|
| - contents_texture_manager(NULL),
|
| commit_completion_event(NULL),
|
| completion_event_for_commit_held_on_tree_activation(NULL),
|
| next_frame_is_newly_committed_frame(false),
|
| @@ -212,22 +206,6 @@ void ThreadProxy::DidLoseOutputSurface() {
|
| TRACE_EVENT0("cc", "ThreadProxy::DidLoseOutputSurface");
|
| DCHECK(IsMainThread());
|
| layer_tree_host()->DidLoseOutputSurface();
|
| -
|
| - {
|
| - DebugScopedSetMainThreadBlocked main_thread_blocked(this);
|
| -
|
| - // Return lost resources to their owners immediately.
|
| - BlockingTaskRunner::CapturePostTasks blocked(
|
| - blocking_main_thread_task_runner());
|
| -
|
| - CompletionEvent completion;
|
| - Proxy::ImplThreadTaskRunner()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ThreadProxy::DeleteContentsTexturesOnImplThread,
|
| - impl_thread_weak_ptr_,
|
| - &completion));
|
| - completion.Wait();
|
| - }
|
| }
|
|
|
| void ThreadProxy::RequestNewOutputSurface() {
|
| @@ -421,32 +399,6 @@ void ThreadProxy::PostAnimationEventsToMainThreadOnImplThread(
|
| base::Passed(&events)));
|
| }
|
|
|
| -bool ThreadProxy::ReduceContentsTextureMemoryOnImplThread(size_t limit_bytes,
|
| - int priority_cutoff) {
|
| - DCHECK(IsImplThread());
|
| -
|
| - if (!impl().contents_texture_manager)
|
| - return false;
|
| - if (!impl().layer_tree_host_impl->resource_provider())
|
| - return false;
|
| -
|
| - bool reduce_result =
|
| - impl().contents_texture_manager->ReduceMemoryOnImplThread(
|
| - limit_bytes,
|
| - priority_cutoff,
|
| - impl().layer_tree_host_impl->resource_provider());
|
| - if (!reduce_result)
|
| - return false;
|
| -
|
| - // The texture upload queue may reference textures that were just purged,
|
| - // clear them from the queue.
|
| - if (impl().current_resource_update_controller) {
|
| - impl()
|
| - .current_resource_update_controller->DiscardUploadsToEvictedResources();
|
| - }
|
| - return true;
|
| -}
|
| -
|
| bool ThreadProxy::IsInsideDraw() { return impl().inside_draw; }
|
|
|
| void ThreadProxy::SetNeedsRedraw(const gfx::Rect& damage_rect) {
|
| @@ -796,17 +748,6 @@ void ThreadProxy::BeginMainFrame(
|
| layer_tree_host()->AnimateLayers(
|
| begin_main_frame_state->begin_frame_args.frame_time);
|
|
|
| - // Unlink any backings that the impl thread has evicted, so that we know to
|
| - // re-paint them in UpdateLayers.
|
| - if (blocked_main().contents_texture_manager()) {
|
| - blocked_main().contents_texture_manager()->UnlinkAndClearEvictedBackings();
|
| -
|
| - blocked_main().contents_texture_manager()->SetMaxMemoryLimitBytes(
|
| - begin_main_frame_state->memory_allocation_limit_bytes);
|
| - blocked_main().contents_texture_manager()->SetExternalPriorityCutoff(
|
| - begin_main_frame_state->memory_allocation_priority_cutoff);
|
| - }
|
| -
|
| // Recreate all UI resources if there were evicted UI resources when the impl
|
| // thread initiated the commit.
|
| if (begin_main_frame_state->evicted_ui_resources)
|
| @@ -916,28 +857,6 @@ void ThreadProxy::StartCommitOnImplThread(CompletionEvent* completion,
|
|
|
| scoped_ptr<ResourceUpdateQueue> queue(raw_queue);
|
|
|
| - if (impl().contents_texture_manager) {
|
| - DCHECK_EQ(impl().contents_texture_manager,
|
| - blocked_main().contents_texture_manager());
|
| - } else {
|
| - // Cache this pointer that was created on the main thread side to avoid a
|
| - // data race between creating it and using it on the compositor thread.
|
| - impl().contents_texture_manager = blocked_main().contents_texture_manager();
|
| - }
|
| -
|
| - if (impl().contents_texture_manager) {
|
| - if (impl().contents_texture_manager->LinkedEvictedBackingsExist()) {
|
| - // Clear any uploads we were making to textures linked to evicted
|
| - // resources
|
| - queue->ClearUploadsToEvictedResources();
|
| - // Some textures in the layer tree are invalid. Kick off another commit
|
| - // to fill them again.
|
| - SetNeedsCommitOnImplThread();
|
| - }
|
| -
|
| - impl().contents_texture_manager->PushTexturePrioritiesToBackings();
|
| - }
|
| -
|
| impl().commit_completion_event = completion;
|
| impl().current_resource_update_controller = ResourceUpdateController::Create(
|
| this,
|
| @@ -1213,16 +1132,6 @@ void ThreadProxy::InitializeImplOnImplThread(CompletionEvent* completion) {
|
| completion->Signal();
|
| }
|
|
|
| -void ThreadProxy::DeleteContentsTexturesOnImplThread(
|
| - CompletionEvent* completion) {
|
| - TRACE_EVENT0("cc", "ThreadProxy::DeleteContentsTexturesOnImplThread");
|
| - DCHECK(IsImplThread());
|
| - DCHECK(IsMainThreadBlocked());
|
| - layer_tree_host()->DeleteContentsTexturesOnImplThread(
|
| - impl().layer_tree_host_impl->resource_provider());
|
| - completion->Signal();
|
| -}
|
| -
|
| void ThreadProxy::InitializeOutputSurfaceOnImplThread(
|
| scoped_ptr<OutputSurface> output_surface) {
|
| TRACE_EVENT0("cc", "ThreadProxy::InitializeOutputSurfaceOnImplThread");
|
| @@ -1263,8 +1172,6 @@ void ThreadProxy::LayerTreeHostClosedOnImplThread(CompletionEvent* completion) {
|
| TRACE_EVENT0("cc", "ThreadProxy::LayerTreeHostClosedOnImplThread");
|
| DCHECK(IsImplThread());
|
| DCHECK(IsMainThreadBlocked());
|
| - layer_tree_host()->DeleteContentsTexturesOnImplThread(
|
| - impl().layer_tree_host_impl->resource_provider());
|
| impl().current_resource_update_controller = nullptr;
|
| impl().scheduler = nullptr;
|
| impl().layer_tree_host_impl = nullptr;
|
| @@ -1273,7 +1180,6 @@ void ThreadProxy::LayerTreeHostClosedOnImplThread(CompletionEvent* completion) {
|
| // holding while still on the compositor thread. This also ensures any
|
| // callbacks holding a ThreadProxy pointer are cancelled.
|
| impl().smoothness_priority_expiration_notifier.Shutdown();
|
| - impl().contents_texture_manager = NULL;
|
| completion->Signal();
|
| }
|
|
|
| @@ -1339,10 +1245,9 @@ void ThreadProxy::RenewTreePriority() {
|
| if (impl().smoothness_priority_expiration_notifier.HasPendingNotification())
|
| priority = SMOOTHNESS_TAKES_PRIORITY;
|
|
|
| - // New content always takes priority when the active tree has
|
| - // evicted resources or there is an invalid viewport size.
|
| - if (impl().layer_tree_host_impl->active_tree()->ContentsTexturesPurged() ||
|
| - impl().layer_tree_host_impl->active_tree()->ViewportSizeInvalid() ||
|
| + // New content always takes priority when there is an invalid viewport size or
|
| + // ui resources have been evicted.
|
| + if (impl().layer_tree_host_impl->active_tree()->ViewportSizeInvalid() ||
|
| impl().layer_tree_host_impl->EvictedUIResourcesExist() ||
|
| impl().input_throttled_until_commit) {
|
| // Once we enter NEW_CONTENTS_TAKES_PRIORITY mode, visible tiles on active
|
|
|