Open Bug 1073524 Opened 10 years ago Updated 2 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: