Closed Bug 1848050 Opened 1 year ago Closed 1 year ago

Optimize individual line drawing in canvas recording backend

Categories

(Core :: Graphics: Canvas2D, defect)

defect

Tracking

()

RESOLVED FIXED
118 Branch
Tracking Status
firefox118 --- fixed

People

(Reporter: bas.schouten, Assigned: bas.schouten)

References

(Blocks 1 open bug)

Details

(Keywords: perf-alert)

Attachments

(1 file)

MotionMark draws a lot of individual lines in the CanvasLines test. This is something we are currently not optimizing for. If we detect this scenario and add an optimized code path it saves a lot of space in the Canvas ring buffer by not having to transmit generic path descriptions, as well as allowing a backend like D2D to take an optimized drawing path.

https://treeherder.mozilla.org/jobs?repo=try&revision=18ef33c56cde080d259deac9afc5ad38376c09f6

This increases our score on the Canvas Lines test about 5-6x locally and makes for an overall 15-20% improvement to our MotionMark score. While I'm skeptical real users will see much of this it's probably a win we want to take, regardless.

Pushed by bschouten@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d752ac4b9df7
Optimize individual line drawing in canvas recording backend. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 118 Branch

== Change summary for alert #39299 (as of Mon, 14 Aug 2023 11:37:44 GMT) ==

Improvements:

Ratio Test Platform Options Absolute values (old vs new) Performance Profiles
3% motionmark-animometer windows10-64-shippable-qr fission webrender 45.62 -> 47.13 Before/After

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=39299

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: