Closed Bug 593270 Opened 14 years ago Closed 14 years ago

EXTEND_PAD path is slow in cairo Quartz backend

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: roc, Assigned: roc)

References

Details

(Whiteboard: [painting-perf])

Attachments

(2 files)

See https://bugzilla.mozilla.org/show_bug.cgi?id=508716#c44.

EXTEND_PAD always takes us to the "generic SURFACE case" which involves constructing a CGPattern, and worse, actually repeats the image.

If I treat EXTEND_PAD the same as EXTEND_NONE instead, we get a 15-20% speedup in rendering a single scaled image tile. Patches coming.
This makes the code a bit cleaner to hack on. We factor out a source->type check.
Attachment #471755 - Flags: review?(jmuizelaar)
Whiteboard: [painting-perf]
Attachment #471755 - Flags: review?(jmuizelaar) → review+
Attachment #471756 - Flags: review?(jmuizelaar) → review+
Whiteboard: [painting-perf] → [painting-perf][needs landing]
Comment on attachment 471755 [details] [diff] [review]
Part 1: move surface setup code to a helper function

Performance improvement for Mac painting. I also want to land this because otherwise bug 579985 (blocker) will rot these patches.
Attachment #471755 - Flags: approval2.0?
Comment on attachment 471756 [details] [diff] [review]
Part 2: treat EXTEND_PAD like EXTEND_NONE instead of like EXTEND_REPEAT

Performance improvement for Mac painting. I also want to land this because otherwise bug 579985 (blocker) will rot these patches.
Attachment #471756 - Flags: approval2.0?
Attachment #471755 - Flags: approval2.0? → approval2.0+
Attachment #471756 - Flags: approval2.0? → approval2.0+
http://hg.mozilla.org/mozilla-central/rev/e08b136ecac6
http://hg.mozilla.org/mozilla-central/rev/33b77c31f13d
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: [painting-perf][needs landing] → [painting-perf]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: