OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/trees/thread_proxy.h" | 5 #include "cc/trees/thread_proxy.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
933 } | 933 } |
934 | 934 |
935 layer_tree_host()->CommitComplete(); | 935 layer_tree_host()->CommitComplete(); |
936 layer_tree_host()->DidBeginMainFrame(); | 936 layer_tree_host()->DidBeginMainFrame(); |
937 } | 937 } |
938 | 938 |
939 void ThreadProxy::StartCommitOnImplThread( | 939 void ThreadProxy::StartCommitOnImplThread( |
940 CompletionEvent* completion, | 940 CompletionEvent* completion, |
941 ResourceUpdateQueue* raw_queue, | 941 ResourceUpdateQueue* raw_queue, |
942 scoped_refptr<ContextProvider> offscreen_context_provider) { | 942 scoped_refptr<ContextProvider> offscreen_context_provider) { |
943 scoped_ptr<ResourceUpdateQueue> queue(raw_queue); | |
944 | |
945 TRACE_EVENT0("cc", "ThreadProxy::StartCommitOnImplThread"); | 943 TRACE_EVENT0("cc", "ThreadProxy::StartCommitOnImplThread"); |
946 DCHECK(!commit_completion_event_on_impl_thread_); | 944 DCHECK(!commit_completion_event_on_impl_thread_); |
947 DCHECK(IsImplThread() && IsMainThreadBlocked()); | 945 DCHECK(IsImplThread() && IsMainThreadBlocked()); |
948 DCHECK(scheduler_on_impl_thread_); | 946 DCHECK(scheduler_on_impl_thread_); |
949 DCHECK(scheduler_on_impl_thread_->CommitPending()); | 947 DCHECK(scheduler_on_impl_thread_->CommitPending()); |
950 | 948 |
951 if (!layer_tree_host_impl_) { | 949 if (!layer_tree_host_impl_) { |
952 TRACE_EVENT0("cc", "EarlyOut_NoLayerTree"); | 950 TRACE_EVENT0("cc", "EarlyOut_NoLayerTree"); |
953 completion->Signal(); | 951 completion->Signal(); |
954 return; | 952 return; |
955 } | 953 } |
956 | 954 |
| 955 scoped_ptr<ResourceUpdateQueue> queue(raw_queue); |
| 956 |
957 if (offscreen_context_provider.get()) | 957 if (offscreen_context_provider.get()) |
958 offscreen_context_provider->BindToCurrentThread(); | 958 offscreen_context_provider->BindToCurrentThread(); |
959 layer_tree_host_impl_->SetOffscreenContextProvider( | 959 layer_tree_host_impl_->SetOffscreenContextProvider( |
960 offscreen_context_provider); | 960 offscreen_context_provider); |
961 | 961 |
962 if (contents_texture_manager_unsafe_) { | 962 if (contents_texture_manager_unsafe_) { |
963 DCHECK_EQ(contents_texture_manager_unsafe_, | 963 DCHECK_EQ(contents_texture_manager_unsafe_, |
964 contents_texture_manager_on_main_thread()); | 964 contents_texture_manager_on_main_thread()); |
965 } else { | 965 } else { |
966 // Cache this pointer that was created on the main thread side to avoid a | 966 // Cache this pointer that was created on the main thread side to avoid a |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1388 } | 1388 } |
1389 | 1389 |
1390 void ThreadProxy::InitializeImplOnImplThread(CompletionEvent* completion) { | 1390 void ThreadProxy::InitializeImplOnImplThread(CompletionEvent* completion) { |
1391 TRACE_EVENT0("cc", "ThreadProxy::InitializeImplOnImplThread"); | 1391 TRACE_EVENT0("cc", "ThreadProxy::InitializeImplOnImplThread"); |
1392 DCHECK(IsImplThread()); | 1392 DCHECK(IsImplThread()); |
1393 layer_tree_host_impl_ = layer_tree_host()->CreateLayerTreeHostImpl(this); | 1393 layer_tree_host_impl_ = layer_tree_host()->CreateLayerTreeHostImpl(this); |
1394 const LayerTreeSettings& settings = layer_tree_host()->settings(); | 1394 const LayerTreeSettings& settings = layer_tree_host()->settings(); |
1395 SchedulerSettings scheduler_settings; | 1395 SchedulerSettings scheduler_settings; |
1396 scheduler_settings.deadline_scheduling_enabled = | 1396 scheduler_settings.deadline_scheduling_enabled = |
1397 settings.deadline_scheduling_enabled; | 1397 settings.deadline_scheduling_enabled; |
| 1398 scheduler_settings.start_commit_before_draw_enabled = |
| 1399 settings.start_commit_before_draw_enabled; |
| 1400 scheduler_settings.start_commit_before_activate_enabled = |
| 1401 settings.start_commit_before_activate_enabled; |
1398 scheduler_settings.impl_side_painting = settings.impl_side_painting; | 1402 scheduler_settings.impl_side_painting = settings.impl_side_painting; |
1399 scheduler_settings.timeout_and_draw_when_animation_checkerboards = | 1403 scheduler_settings.timeout_and_draw_when_animation_checkerboards = |
1400 settings.timeout_and_draw_when_animation_checkerboards; | 1404 settings.timeout_and_draw_when_animation_checkerboards; |
1401 scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = | 1405 scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = |
1402 settings.maximum_number_of_failed_draws_before_draw_is_forced_; | 1406 settings.maximum_number_of_failed_draws_before_draw_is_forced_; |
1403 scheduler_settings.using_synchronous_renderer_compositor = | 1407 scheduler_settings.using_synchronous_renderer_compositor = |
1404 settings.using_synchronous_renderer_compositor; | 1408 settings.using_synchronous_renderer_compositor; |
1405 scheduler_settings.throttle_frame_production = | 1409 scheduler_settings.throttle_frame_production = |
1406 settings.throttle_frame_production; | 1410 settings.throttle_frame_production; |
1407 scheduler_on_impl_thread_ = Scheduler::Create(this, scheduler_settings, | 1411 scheduler_on_impl_thread_ = Scheduler::Create(this, scheduler_settings, |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1649 commit_to_activate_duration_history_.InsertSample( | 1653 commit_to_activate_duration_history_.InsertSample( |
1650 base::TimeTicks::HighResNow() - commit_complete_time_); | 1654 base::TimeTicks::HighResNow() - commit_complete_time_); |
1651 } | 1655 } |
1652 | 1656 |
1653 void ThreadProxy::DidManageTiles() { | 1657 void ThreadProxy::DidManageTiles() { |
1654 DCHECK(IsImplThread()); | 1658 DCHECK(IsImplThread()); |
1655 scheduler_on_impl_thread_->DidManageTiles(); | 1659 scheduler_on_impl_thread_->DidManageTiles(); |
1656 } | 1660 } |
1657 | 1661 |
1658 } // namespace cc | 1662 } // namespace cc |
OLD | NEW |