Closed
Bug 1507257
Opened 6 years ago
Closed 6 years ago
Reduce the memcpy overhead in create_primitive and add_primitive
Categories
(Core :: Graphics: WebRender, enhancement, P2)
Core
Graphics: WebRender
Tracking
()
RESOLVED
FIXED
People
(Reporter: gw, Assigned: gw)
References
(Blocks 1 open bug)
Details
When flattening the display list, we currently pay a large memcpy overhead cost inside create_primitive. This is mostly due to the large enum struct sizes that are copied around on the stack.
In some talos tests, this is ~35% of the time spent inside WR. We should be able to reduce this significantly by refactoring how create_primitive and primitive interning work in general, by using interners specific to the key / type, rather than a generic interner and primitive container.
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → gwatson
Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Blocks: stage-wr-trains
Priority: -- → P2
Updated•6 years ago
|
Blocks: content-full-paint-time
Assignee | ||
Comment 1•6 years ago
|
||
This has landed in https://github.com/servo/webrender/pull/3336.
The associated try run drops the dl_mutate talos performance to ~4700 (see https://treeherder.mozilla.org/#/jobs?repo=try&revision=7160b048de4bc64e76bee67a8b8401b5ec46217d&selectedJob=213316786).
Assignee | ||
Updated•6 years ago
|
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•