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

Sync changes from mozilla-central gfx/wr #3887

Merged
merged 7 commits into from Mar 19, 2020
Merged

Conversation

@moz-gfx
Copy link

moz-gfx commented Mar 19, 2020

Fixes #3884,

Lee Salzman and others added 7 commits Mar 19, 2020
PowerPC and MIPS do not have AtomicU64, but AtomicUsize is a more
portable type that can be used as a replacement.

[import_pr] From #3884

Differential Revision: https://phabricator.services.mozilla.com/D67365

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/ff701e82864569f328f9466ba5fdbfb0273354d6
…=jrmuizel

This patch changes the underlying storage for WR display items in DisplayItemCache
from Vec<Option<CachedDisplayItem> to Vec<Vec<CachedDisplayItem>>.
This allows storing multiple WebRender display items for one Gecko display item.

The storage is populated by traversing BuiltDisplayList extra data portion
in display list format, which is roughly as follows:
RetainedItems(key k1)
Item1(..)
RetainedItems(key k2)
ItemN(..)
ItemN+1(..)

This would store Item1 under key k1, and ItemN and ItemN+1 under the key k2,
where k1 and k2 are arbitrary unique identifiers (currently of type uint16_t).

The entries in the storage are accessed by DisplayItemCache::get_iterator(key),
which is called by BuiltDisplayListIter, whenever it encounters a display item
DisplayItem::ReuseItems(key).

Differential Revision: https://phabricator.services.mozilla.com/D66443

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/cc263e909c61d2d9c7d7cc1ccb8d24c8d09bf5b7
…TREE

Backed out changeset e79e84e8819c (bug 1614655)
Backed out changeset cc263e909c61 (bug 1614655)
Backed out changeset 10897d6106a8 (bug 1614655)

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/4eeedb4337c8b945764997ea8d959ee3ff8c4de9
…=jrmuizel

This patch changes the underlying storage for WR display items in DisplayItemCache
from Vec<Option<CachedDisplayItem> to Vec<Vec<CachedDisplayItem>>.
This allows storing multiple WebRender display items for one Gecko display item.

The storage is populated by traversing BuiltDisplayList extra data portion
in display list format, which is roughly as follows:
RetainedItems(key k1)
Item1(..)
RetainedItems(key k2)
ItemN(..)
ItemN+1(..)

This would store Item1 under key k1, and ItemN and ItemN+1 under the key k2,
where k1 and k2 are arbitrary unique identifiers (currently of type uint16_t).

The entries in the storage are accessed by DisplayItemCache::get_iterator(key),
which is called by BuiltDisplayListIter, whenever it encounters a display item
DisplayItem::ReuseItems(key).

Differential Revision: https://phabricator.services.mozilla.com/D66443

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/aaed31bbe8f4e0a8892e632633c27033549eaf33
@moz-gfx
Copy link
Author

moz-gfx commented Mar 19, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Mar 19, 2020

📌 Commit 81d03c6 has been approved by auto

@bors-servo
Copy link
Contributor

bors-servo commented Mar 19, 2020

Testing commit 81d03c6 with merge cb6424a...

@bors-servo
Copy link
Contributor

bors-servo commented Mar 19, 2020

☀️ Test successful - status-appveyor, status-taskcluster
Approved by: auto
Pushing cb6424a to master...

@bors-servo bors-servo merged commit cb6424a into servo:master Mar 19, 2020
3 checks passed
3 checks passed
Community-TC (pull_request) TaskGroup: success
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
homu Test successful
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants
You can’t perform that action at this time.