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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 14417014: cc: Add tile-free software compositing mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to 199251 Created 7 years, 7 months 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
« no previous file with comments | « cc/resources/tile_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 eb9697c67186cb00e7e62995057a51d7433ce702..efcc5295465539f182d6628e1092abb1ea3989fe 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -598,6 +598,8 @@ bool LayerTreeHostImpl::CalculateRenderPasses(FrameData* frame) {
occlusion_tracker.EnterLayer(it, prevent_occlusion);
AppendQuadsData append_quads_data(target_render_pass->id);
+ if (output_surface_->ForcedDrawToSoftwareDevice())
+ append_quads_data.allow_tile_draw_quads = false;
if (it.represents_target_render_surface()) {
if (it->HasRequestCopyCallback()) {
@@ -709,7 +711,8 @@ bool LayerTreeHostImpl::CalculateRenderPasses(FrameData* frame) {
DCHECK(!have_copy_request);
RemoveRenderPasses(CullRenderPassesWithNoQuads(), frame);
- renderer_->DecideRenderPassAllocationsForFrame(frame->render_passes);
+ if (!output_surface_->ForcedDrawToSoftwareDevice())
+ renderer_->DecideRenderPassAllocationsForFrame(frame->render_passes);
RemoveRenderPasses(CullRenderPassesWithCachedTextures(renderer_.get()),
frame);
@@ -1112,7 +1115,13 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame,
if (active_tree_->hud_layer())
active_tree_->hud_layer()->UpdateHudTexture(resource_provider_.get());
- renderer_->DrawFrame(&frame->render_passes);
+ if (output_surface_->ForcedDrawToSoftwareDevice()) {
+ scoped_ptr<SoftwareRenderer> temp_software_renderer =
+ SoftwareRenderer::Create(this, output_surface_.get(), NULL);
+ temp_software_renderer->DrawFrame(&frame->render_passes);
+ } else {
+ renderer_->DrawFrame(&frame->render_passes);
+ }
// The render passes should be consumed by the renderer.
DCHECK(frame->render_passes.empty());
frame->render_passes_by_id.clear();
« no previous file with comments | « cc/resources/tile_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698