Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upSync changes from mozilla-central gfx/wr #3944
Merged
+368
−316
Conversation
added 2 commits
May 11, 2020
… r=Bert The public clip API allows clips to be defined with either a parent hierarchy, or via a clip-chain display item where a list of clips are provided. The WR internals represent both of these as an internal clip-chain, where clips are parented and stored in a linked list (although the elements themselves are in a contiguous array). Previously, WR would convert the public clip nodes into clip-chains as soon as the clips were defined. However, this complicates many other parts of the code. For example, we want to be able to re-parent clips to the root clip node of an iframe, and we need to extract shared clips that can be handled by parent surfaces. With this change, clips defined in the public API are mapped into a ClipTemplate. The internal clip-chains that WR uses are not created until the primitive is defined. With this change, we can easily insert or modify how the primitive's clip-chain is created. In this patch, the `ClipChainBuilder` is used to add the iframe clip root to any primitives inside the iframe. In future patches, it will also be used to handle clips from redundant stacking contexts, which will allow the removal of all the Push/PopClipChain display items. Differential Revision: https://phabricator.services.mozilla.com/D74347 [ghsync] From https://hg.mozilla.org/mozilla-central/rev/5313bc3ed301224926fcf1c116e5c9d1d983b5de
Previously, the spatial node index for a clip was stored as part of the interning key. However, if a new display list is sent where the clip has the same transform, but the shape of the spatial-tree had changed (e.g. due to a new transform being inserted due to a DOM change), this could result in those clip(s) being detected as different. This can cause unnecessary invalidations of picture cache tiles. With this patch, the spatial node index is stored inside the instance structures (ClipInstance and ClipChainNode), meaning that picture cache tiles are no longer invalidated if the spatial tree shape changes. Differential Revision: https://phabricator.services.mozilla.com/D74363 [ghsync] From https://hg.mozilla.org/mozilla-central/rev/22227ba866f7e720947856905d092242cfc8f8f0
|
@bors-servo r=auto |
|
|
|
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
moz-gfx commentedMay 11, 2020
No description provided.