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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 733773005: cc: GPU rasterize tiles synchronously in PrepareToDraw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove redundant completed_tasks_.clear() Created 6 years, 1 month 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
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 bb1be9856d093663f5533a2c4a6cff40c0a50cfd..90cf216cbdd0472445a477c51e172271fbd4ffb1 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -328,7 +328,7 @@ void LayerTreeHostImpl::CommitComplete() {
// more lazily when needed prior to drawing.
sync_tree()->UpdateDrawProperties();
// Start working on newly created tiles immediately if needed.
- if (tile_manager_ && tile_priorities_dirty_)
+ if (tile_manager_ && tile_priorities_dirty_ && !use_gpu_rasterization_)
vmiura 2014/11/20 02:27:11 Remove check for use_gpu_rasterization_, as we che
vmiura 2014/11/20 02:53:45 I take that back, since we need to run the "else"
ManageTiles();
else
NotifyReadyToActivate();
@@ -402,11 +402,23 @@ void LayerTreeHostImpl::Animate(base::TimeTicks monotonic_time) {
AnimateTopControls(monotonic_time);
}
+void LayerTreeHostImpl::RasterizeTiles() {
+ if (!tile_manager_)
+ return;
+ if (!tile_priorities_dirty_)
+ return;
+
+ tile_priorities_dirty_ = false;
+ tile_manager_->RasterizeTiles(global_tile_state_);
+}
+
void LayerTreeHostImpl::ManageTiles() {
if (!tile_manager_)
return;
if (!tile_priorities_dirty_)
return;
+ if (use_gpu_rasterization_)
+ return;
tile_priorities_dirty_ = false;
tile_manager_->ManageTiles(global_tile_state_);
@@ -1044,6 +1056,9 @@ DrawResult LayerTreeHostImpl::PrepareToDraw(FrameData* frame) {
bool ok = active_tree_->UpdateDrawProperties();
DCHECK(ok) << "UpdateDrawProperties failed during draw";
+ if (use_gpu_rasterization_)
+ RasterizeTiles();
brianderson 2014/11/20 02:40:19 Should we only RasterizeTiles if draw_result == DR
reveman 2014/11/20 15:20:59 How you considered rasterizing at draw time instea
vmiura 2014/11/20 18:28:57 I put it here in the prototype as it needs to be d
reveman 2014/11/20 19:07:54 Why before CalculateRenderPasses()?
+
frame->render_surface_layer_list = &active_tree_->RenderSurfaceLayerList();
frame->render_passes.clear();
frame->render_passes_by_id.clear();
@@ -1835,7 +1850,7 @@ void LayerTreeHostImpl::SetVisible(bool visible) {
// Evict tiles immediately if invisible since this tab may never get another
// draw or timer tick.
- if (!visible_)
+ if (!visible_ && !use_gpu_rasterization_)
vmiura 2014/11/20 02:27:11 Remove check for use_gpu_rasterization_, as we che
ManageTiles();
if (!renderer_)

Powered by Google App Engine
This is Rietveld 408576698