From 0e2728e82dbc212c4502fde8bfda331afb5fc0b7 Mon Sep 17 00:00:00 2001 From: Victor Miura <vmiura@chromium.org> Date: Fri, 28 Mar 2025 18:44:30 -0700 Subject: [PATCH] [TreesInViz] Implement EffectNode.subtree_capture_id support Bug: 406272948 Change-Id: Ifcc39e7fb3c04dd41471453d690393e372522660 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6409377 Reviewed-by: Nasko Oskov <nasko@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Victor Miura <vmiura@chromium.org> Cr-Commit-Position: refs/heads/main@{#1439825} --- cc/mojo_embedder/viz_layer_context.cc | 4 ++++ components/viz/service/layers/layer_context_impl.cc | 3 +++ services/viz/public/mojom/compositing/layer.mojom | 4 ++++ testing/buildbot/filters/trees_in_viz.cc_unittests.filter | 4 ---- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_context.cc index d6a445e124928..1747255e753be 100644 --- a/cc/mojo_embedder/viz_layer_context.cc +++ b/cc/mojo_embedder/viz_layer_context.cc @@ -152,6 +152,8 @@ void ComputePropertyTreeNodeUpdate( old_node->opacity == new_node.opacity && old_node->render_surface_reason == new_node.render_surface_reason && old_node->surface_contents_scale == new_node.surface_contents_scale && + old_node->subtree_capture_id == new_node.subtree_capture_id && + old_node->subtree_size == new_node.subtree_size && old_node->blend_mode == new_node.blend_mode && old_node->target_id == new_node.target_id && old_node->has_copy_request == new_node.has_copy_request && @@ -174,6 +176,8 @@ void ComputePropertyTreeNodeUpdate( wire->has_render_surface = new_node.render_surface_reason != RenderSurfaceReason::kNone; wire->surface_contents_scale = new_node.surface_contents_scale; + wire->subtree_capture_id = new_node.subtree_capture_id; + wire->subtree_size = new_node.subtree_size; wire->blend_mode = base::checked_cast<uint32_t>(new_node.blend_mode); wire->target_id = new_node.target_id; wire->copy_output_requests = std::move(copy_requests); diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/viz/service/layers/layer_context_impl.cc index 8722bccba50e7..a0a9d312cde75 100644 --- a/components/viz/service/layers/layer_context_impl.cc +++ b/components/viz/service/layers/layer_context_impl.cc @@ -200,6 +200,9 @@ base::expected<void, std::string> UpdatePropertyTreeNode( } node.surface_contents_scale = wire.surface_contents_scale; + node.subtree_capture_id = wire.subtree_capture_id; + node.subtree_size = wire.subtree_size; + if (wire.blend_mode > static_cast<uint32_t>(SkBlendMode::kLastMode)) { return base::unexpected("Invalid blend_mode for effect node"); } diff --git a/services/viz/public/mojom/compositing/layer.mojom b/services/viz/public/mojom/compositing/layer.mojom index 089130ab4a4a0..af8fa55dc57d3 100644 --- a/services/viz/public/mojom/compositing/layer.mojom +++ b/services/viz/public/mojom/compositing/layer.mojom @@ -13,6 +13,7 @@ import "ui/gfx/mojom/rrect_f.mojom"; import "services/viz/public/mojom/compositing/filter_operations.mojom"; import "services/viz/public/mojom/compositing/copy_output_request.mojom"; import "services/viz/public/mojom/compositing/resource_id.mojom"; +import "services/viz/public/mojom/compositing/subtree_capture_id.mojom"; import "ui/gfx/mojom/transform.mojom"; // Extra fields in a cc::MirrorLayerImpl that has been added to a tree or @@ -286,6 +287,9 @@ struct EffectNode { // doesn't induce a render surface. gfx.mojom.Vector2dF surface_contents_scale; + SubtreeCaptureId subtree_capture_id; + gfx.mojom.Size subtree_size; + // This is an SkBlendMode, which has no mojom definition yet. Must be manually // validated to be no greater than SkBlendMode::kLastMode. uint32 blend_mode; diff --git a/testing/buildbot/filters/trees_in_viz.cc_unittests.filter b/testing/buildbot/filters/trees_in_viz.cc_unittests.filter index 73237a5cfc244..55704ae2ca50c 100644 --- a/testing/buildbot/filters/trees_in_viz.cc_unittests.filter +++ b/testing/buildbot/filters/trees_in_viz.cc_unittests.filter @@ -157,10 +157,6 @@ -All/LayerTreeHostTilesTestPartialInvalidationMultiThread.PartialRaster/SkiaGraphiteDawn_GPU -All/LayerTreeHostTilesTestPartialInvalidationMultiThread.PartialRaster/SkiaVulkan_GPU -# TODO(crbug.com/406272948) Implement EffectNode.subtree_capture_id support --LayerTreeHostCaptureTestLayerWithCaptureIdElevatesToSurface.RunMultiThread_DelegatingRenderer --LayerTreeHostCaptureTestLayerWithCaptureIdElevatesToSurface.RunSingleThread_DelegatingRenderer - # TODO(crbug.com/406273638) Implement single_thread_proxy_scheduler support -All/LayerTreeHostSynchronousPixelTest.OneContentLayerGpuRasterization/SkiaGL -All/LayerTreeHostSynchronousPixelTest.OneContentLayerGpuRasterization/SkiaGraphiteDawn