Canvas strokeText() becomes extremely slow with large lineWidth values

RESOLVED WONTFIX

Status

()

Core
Graphics
RESOLVED WONTFIX
8 years ago
4 years ago

People

(Reporter: Jordan Osete, Unassigned)

Tracking

(Blocks: 1 bug, {perf})

Firefox Tracking Flags

(Not tracked)

Details

(URL)

Attachments

(1 attachment)

(Reporter)

Description

8 years ago
User-Agent:       Mozilla/5.0 (X11; Linux i686; rv:2.0b7) Gecko/20100101 Firefox/4.0b7
Build Identifier: Mozilla/5.0 (X11; Linux i686; rv:2.0b7) Gecko/20100101 Firefox/4.0b7

When using large values for lineWidth, strokeText() becomes exponentially slow. See testcase for details.
This is useful when you want to add outlines to a text, for example.

Reproducible: Always
Worsforme on Mac, so sounds like more path tesselator crap, right?

Comment 2

8 years ago
How slow are you talking about? On Fedora I get.
Spread radius: 1, time: 0.035 sec
Spread radius: 10, time: 0.041 sec
Spread radius: 30, time: 0.116 sec
Spread radius: 100, time: 0.658 sec
Right.  And spending .7 seconds rendering three words is not really acceptable, right?  That's way out in "user-visible lag" territory.  Plus your numbers exactly show the nonlinear growth.

For comparison, on Mac where we don't use the cairo tesselator for this stuff, I get numbers like:

Spread radius: 1, time: 0.001 sec
Spread radius: 10, time: 0.008 sec
Spread radius: 30, time: 0.011 sec
Spread radius: 100, time: 0.033 sec
Blocks: 623923
Status: UNCONFIRMED → NEW
Component: Canvas: 2D → Graphics
Ever confirmed: true
QA Contact: canvas.2d → thebes
Created attachment 502000 [details]
Testcase without the jquery gunk
It seems very unlikely that we're going to invest time in fixing this in Cairo; it will likely be fixed by switching to Skia or some other backend as part of the Azure project.

FWIW, this is plenty fast when using a D2D backend, even when using Cairo.
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.