Index: cc/layers/surface_layer_impl.cc |
diff --git a/cc/layers/surface_layer_impl.cc b/cc/layers/surface_layer_impl.cc |
index 92e1371e2d9ce8cd4f873ea29d27649716ada6bd..691a495f982c2d0413900b1de39fa884ad8c053e 100644 |
--- a/cc/layers/surface_layer_impl.cc |
+++ b/cc/layers/surface_layer_impl.cc |
@@ -66,12 +66,16 @@ void SurfaceLayerImpl::AppendQuads(RenderPass* render_pass, |
AppendQuadsData* append_quads_data) { |
AppendRainbowDebugBorder(render_pass); |
SharedQuadState* common_shared_quad_state = nullptr; |
- auto* primary = CreateSurfaceDrawQuad( |
- render_pass, SurfaceDrawQuadType::PRIMARY, primary_surface_info_, |
- &append_quads_data->embedded_surfaces, &common_shared_quad_state); |
+ auto* primary = |
+ CreateSurfaceDrawQuad(render_pass, SurfaceDrawQuadType::PRIMARY, |
+ primary_surface_info_, &common_shared_quad_state); |
// Emitting a fallback SurfaceDrawQuad is unnecessary if the primary and |
// fallback surface Ids match. |
- if (primary && fallback_surface_info_.id() != primary_surface_info_.id()) { |
+ bool needs_fallback = |
+ fallback_surface_info_.id() != primary_surface_info_.id(); |
+ if (primary && needs_fallback) { |
+ // Add the primary surface ID as a dependency. |
+ append_quads_data->embedded_surfaces.push_back(primary_surface_info_.id()); |
// We can use the same SharedQuadState as the primary SurfaceDrawQuad if |
// we don't need a different transform on the fallback. |
bool use_common_shared_quad_state = |
@@ -80,7 +84,6 @@ void SurfaceLayerImpl::AppendQuads(RenderPass* render_pass, |
fallback_surface_info_.device_scale_factor(); |
primary->fallback_quad = CreateSurfaceDrawQuad( |
render_pass, SurfaceDrawQuadType::FALLBACK, fallback_surface_info_, |
- nullptr /* embedded_surfaces */, |
use_common_shared_quad_state ? &common_shared_quad_state : nullptr); |
} |
} |
@@ -89,7 +92,6 @@ SurfaceDrawQuad* SurfaceLayerImpl::CreateSurfaceDrawQuad( |
RenderPass* render_pass, |
SurfaceDrawQuadType surface_draw_quad_type, |
const SurfaceInfo& surface_info, |
- std::vector<SurfaceId>* embedded_surfaces, |
SharedQuadState** common_shared_quad_state) { |
if (!surface_info.is_valid()) |
return nullptr; |
@@ -139,8 +141,6 @@ SurfaceDrawQuad* SurfaceLayerImpl::CreateSurfaceDrawQuad( |
render_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
surface_draw_quad->SetNew(shared_quad_state, quad_rect, visible_quad_rect, |
surface_info.id(), surface_draw_quad_type, nullptr); |
- if (embedded_surfaces) |
- embedded_surfaces->push_back(surface_info.id()); |
return surface_draw_quad; |
} |