Chromium Code Reviews| Index: cc/trees/thread_proxy.cc |
| diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc |
| index 5c6533a43745501937d9987bf48cff0cd98263ef..62992d7c064035fc66e281fe34a81167fc0fd27d 100644 |
| --- a/cc/trees/thread_proxy.cc |
| +++ b/cc/trees/thread_proxy.cc |
| @@ -538,6 +538,12 @@ void ThreadProxy::SetNeedsRedrawOnImplThread() { |
| scheduler_on_impl_thread_->SetNeedsRedraw(); |
| } |
| +void ThreadProxy::SetNeedsManageTilesOnImplThread() { |
| + DCHECK(IsImplThread()); |
| + TRACE_EVENT0("cc", "ThreadProxy::SetNeedsManageTilesOnImplThread"); |
| + scheduler_on_impl_thread_->SetNeedsManageTiles(); |
| +} |
| + |
| void ThreadProxy::SetNeedsRedrawRectOnImplThread(gfx::Rect damage_rect) { |
| DCHECK(IsImplThread()); |
| layer_tree_host_impl_->SetViewportDamage(damage_rect); |
| @@ -1137,12 +1143,6 @@ DrawSwapReadbackResult ThreadProxy::DrawSwapReadbackInternal( |
| 50); |
| } |
| - // Update the tile state after drawing. This prevents manage tiles from |
| - // being in the critical path for getting things on screen, but still |
| - // makes sure that tile state is updated on a semi-regular basis. |
| - if (layer_tree_host_impl_->settings().impl_side_painting) |
| - layer_tree_host_impl_->ManageTiles(); |
| - |
| return result; |
| } |
| @@ -1187,6 +1187,13 @@ void ThreadProxy::ScheduledActionAcquireLayerTexturesForMainThread() { |
| texture_acquisition_completion_event_on_impl_thread_ = NULL; |
| } |
| +void ThreadProxy::ScheduledActionManageTiles() { |
| + TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionManageTiles"); |
| + // Only impl-side painting has threaded raster. |
| + if (layer_tree_host_impl_->settings().impl_side_painting) |
|
reveman
2013/09/11 15:27:45
nit: maybe move this conditional to LTHI where we
brianderson
2013/09/11 17:10:30
Should we also have a DCHECK to make sure SetNeeds
epennerAtGoogle
2013/09/11 18:43:00
Done.
epennerAtGoogle
2013/09/11 18:43:00
Done.
|
| + layer_tree_host_impl_->ManageTiles(); |
| +} |
| + |
| DrawSwapReadbackResult ThreadProxy::ScheduledActionDrawAndSwapIfPossible() { |
| TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionDrawAndSwap"); |
| bool forced_draw = false; |