Closed Bug 1708989 Opened 3 years ago Closed 3 years ago

flashing during animation

Categories

(Core :: Graphics: Color Management, defect)

defect

Tracking

()

RESOLVED FIXED
91 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox88 --- unaffected
firefox89 --- fixed
firefox90 --- fixed
firefox91 --- fixed

People

(Reporter: tnikkel, Unassigned)

References

(Blocks 1 open bug, Regression, )

Details

(Keywords: regression)

We sync decode so macOS is doing some async when it color converts the surface to the screen or something?

Flags: needinfo?(jmuizelaar)

Set release status flags based on info from the regressing bug 1701760

Severity: -- → S3

Jeff, is that something that needs fixing in the 89 timeframe?

We should probably just back out bug 1701760 from 89 to buy us more time.

Flags: needinfo?(jmuizelaar)

Now also backed out from trunk (91) and beta (90).

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 91 Branch
Has Regression Range: --- → yes

This page appears to be drawing each image to a canvas while also having visible it in the DOM.

Setting image.decode-sync.enabled=true makes the problem go away.

Timothy/Andrew, can either of you hypothesize what's happening here from imagelib's point of view? Is having decode requests with FLAG_DECODE_TO_SRGB_COLORSPACE set and unset messing with something that would otherwise prevent the flicker?

Flags: needinfo?(tnikkel)
Flags: needinfo?(aosmond)

I think the page is using drawing to a canvas to force a sync decode of the image so that when they switch to it in the DOM it is decoded and there is no flash. After bug 1701760 we request SRGB and that means we store the decoded image for the canvas with the srgb flag, separately from the decoded image without the srgb flag in the surface cache. So when we draw to the screen we don't ask for the srgb image and we have to decode it anew.

Bug 1701760 is effectively removing the ability to use canvas.drawImage to sync decode an image that the author wants to draw to the screen using the normal dom drawing path.

Flags: needinfo?(tnikkel)
Blocks: 1801052
Flags: needinfo?(aosmond)
You need to log in before you can comment on or make changes to this bug.