Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix handling of SubtreeCaptureId in EffectTree and draw_property_utils #29332

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

This CL addresses 2 related issues:

  1. When determining whether an EffectNode is drawn, we only check if
    current node has a valid subtree capture id, instead of checking whether
    it belongs to a subtree that is being captured.
  2. When checking if LayerShouldBeSkippedForDrawPropertiesComputation()
    in draw_property_utils, we also only look at the subtree capture id,
    instead of checking whether the layer's node belongs to a captured
    subtree.

Those 2 issues cause the layer's quads not to be emitted to a render
pass (they both cause the layer to not be considered as contributing to
drawn render surface), even if it seems that they should, since they are
being captured. Note that this CL should not change any visible
behavior, since the EffectTree::EffectiveOpacity() still uses
subtree_hidden attribute of EffectNode to determine whether it should
be transparent, and therefore the CL won't fix the bug 999305 yet.

Other changes:

  • Add ToString() on AggregatedRenderFrame, along with the
    AsValueInto() methods to AggregatedRenderFrame and
    AggregatedRenderPass to help with the investigations. Those are called
    from viz::Display post-aggregation if VLOG level is set to 3.
  • Slightly tweak CompositorRenderPass::AsValueInto() to include
    properties specific to CompositorRenderPass().
  • Add logging of subtree_hidden in EffectNode's AsValueInto(), reorder
    the code to align it a bit more with declaration order in the .h file
    (the JSON output should stay the same as the properties will be listed
    in alphabetical order anyway).

Bug: 999305
Change-Id: I9a1d6efb750aee82106c0f30afe7f44f2f948ca6
Reviewed-on: https://chromium-review.googlesource.com/2923120
WPT-Export-Revision: d5e108d97ca5b4af8e45668ef7c339c8b0045d65

This CL addresses 2 related issues:
1. When determining whether an EffectNode is drawn, we only check if
current node has a valid subtree capture id, instead of checking whether
it belongs to a subtree that is being captured.
2. When checking if LayerShouldBeSkippedForDrawPropertiesComputation()
in draw_property_utils, we also only look at the subtree capture id,
instead of checking whether the layer's node belongs to a captured
subtree.

Those 2 issues cause the layer's quads not to be emitted to a render
pass (they both cause the layer to not be considered as contributing to
drawn render surface), even if it seems that they should, since they are
being captured. Note that this CL should not change any visible
behavior, since the EffectTree::EffectiveOpacity() still uses
`subtree_hidden` attribute of EffectNode to determine whether it should
be transparent, and therefore the CL won't fix the bug 999305 yet.

Other changes:
- Add `ToString()` on AggregatedRenderFrame, along with the
`AsValueInto()` methods to AggregatedRenderFrame and
AggregatedRenderPass to help with the investigations. Those are called
from viz::Display post-aggregation if VLOG level is set to 3.
- Slightly tweak CompositorRenderPass::AsValueInto() to include
properties specific to CompositorRenderPass().
- Add logging of `subtree_hidden` in EffectNode's AsValueInto(), reorder
the code to align it a bit more with declaration order in the .h file
(the JSON output should stay the same as the properties will be listed
in alphabetical order anyway).

Bug: 999305
Change-Id: I9a1d6efb750aee82106c0f30afe7f44f2f948ca6
Copy link
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants