Open Bug 1073524 Opened 11 years ago Updated 3 years ago

Increase our usage of gfxGradientCache

Categories

(Core :: Graphics, defect)

defect

Tracking

()

People

(Reporter: jwatt, Assigned: jwatt)

Details

(Keywords: perf)

Attachments

(1 file)

Right now we cache SVG gradient stops by calling gfxPattern::CacheColorStops in nsSVGPaintServerFrame::SetupPaintServer. This means two things: * We don't benefit from caching when nsSVGPaintServerFrame::GetPaintServerPattern is called directly by nsSVGIntegrationUtils::DrawableFromPaintServer or SVGTextContextPaint::Paint::GetPattern. * We enter junk into the cache when the GetPaintServerPattern() call in nsSVGPaintServerFrame::SetupPaintServer returns a pattern that is not a gradient pattern.
Attached patch patchSplinter Review
Attachment #8495935 - Flags: review?(bas)
This patch makes us do the caching in nsSVGGradientFrame::GetPaintServerPattern at the point that we actually create the gfxPattern that contains a gradient pattern, and adds DrawTarget arguments to a bunch of functions so that we can feed a DrawTarget through so that gfxPattern::CacheColorStops() can create stops that match the backend type.
Attachment #8495935 - Flags: review?(bas)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: