Clean up the texture cache
Categories
(Core :: Graphics: WebRender, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox94 | --- | fixed |
People
(Reporter: nical, Assigned: nical)
Details
Attachments
(8 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
The texture cache code is more complicated than I would like and it's current structure gets in the way of implementing texture cache compaction and better eviction heuristics.
The plan:
- Put the picture tile handling into its own separate thing, as far as I can tell we don't get anything from abstracting over the cache and the picture tiles.
- Move to a lru cache per Texture instead of one per type of content. I need this for better eviction heuristics.
- Separate the entry data from the lru cache.
- whatever else itches along the way.
I'm hoping that with that these changes will split the texture cache into a few independent pieces that are easier to move rather than the current state of affairs where everything sort of needs to be aware of the rest.
| Assignee | ||
Comment 1•4 years ago
|
||
The shelf allocator is better in all scenarios, we don't need to keep that code around.
Depends on D126681
| Assignee | ||
Comment 2•4 years ago
|
||
Depends on D126682
| Assignee | ||
Comment 3•4 years ago
|
||
Depends on D126683
| Assignee | ||
Comment 4•4 years ago
|
||
Depends on D126684
| Assignee | ||
Comment 5•4 years ago
|
||
Last step before PictureTextures can be used independently.
Depends on D126685
| Assignee | ||
Comment 6•4 years ago
|
||
Depends on D126686
| Assignee | ||
Comment 7•4 years ago
|
||
Depends on D126687
| Assignee | ||
Comment 8•4 years ago
|
||
They are used all over the place, these kinds of types usually go in internal_types.rs
Depends on D126688
Comment 10•4 years ago
|
||
Comment 11•4 years ago
|
||
Comment 12•4 years ago
|
||
| Assignee | ||
Updated•4 years ago
|
Comment 13•4 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/ec364c6654f2
https://hg.mozilla.org/mozilla-central/rev/8c8b31e75522
https://hg.mozilla.org/mozilla-central/rev/69d53e668d9a
https://hg.mozilla.org/mozilla-central/rev/8de24748f946
https://hg.mozilla.org/mozilla-central/rev/8a362f24929f
https://hg.mozilla.org/mozilla-central/rev/bf39693fa599
https://hg.mozilla.org/mozilla-central/rev/a5cecdbf4d7d
https://hg.mozilla.org/mozilla-central/rev/3e54ce015458
Description
•