0

[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}
This commit is contained in:
Victor Miura 2025-03-28 18:44:30 -07:00 committed by Chromium LUCI CQ
parent 65b50c98bd
commit 0e2728e82d
4 changed files with 11 additions and 4 deletions
cc/mojo_embedder
components/viz/service/layers
services/viz/public/mojom/compositing
testing/buildbot/filters

@ -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);

@ -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");
}

@ -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;

@ -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