Closed Bug 1716648 Opened 3 years ago Closed 3 years ago

repeating-linear-gradient is stretched in big containers in firefox 90

Categories

(Core :: Graphics, defect, P3)

Firefox 90
defect

Tracking

()

RESOLVED FIXED
92 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox89 --- unaffected
firefox90 --- wontfix
firefox91 --- fixed
firefox92 --- fixed

People

(Reporter: marc.ahlers, Assigned: nical)

References

(Regression)

Details

(Keywords: regression)

Attachments

(3 files)

Attached file test.html

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0

Steps to reproduce:

Firefox 90b7.

Use a repeating-linear-gradient with absolute pixel stop values inside a container bigger than 1000px. (Tested >1500px).

See attached test.html for a bunch of test cases, in which it is broken most of the time.

Note: It behaves correctly in Firefox 89.

Actual results:

It will get stretched, scale buggy and miss some color-stops.

Expected results:

The repeating-linear-gradient should always look the same, regardless of the size of the div. Each gradient in the example file attached should look exactly the same.

The Bugbug bot thinks this bug should belong to the 'Core::Graphics' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Graphics
Product: Firefox → Core
Has Regression Range: --- → yes

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

Jim, can you set a priority and severity for this bug?

Flags: needinfo?(jmathies)

On Matrix, Nical said he is inclined to wontfix for 90 because "it's a rendering artifact that affect very large gradients and is mostly visible when there are hard gradient gradient stops. You'll find those here and there but it's not all over the web".

Severity: -- → S4
Flags: needinfo?(jmathies)
Priority: -- → P3
No longer blocks: gfx-triage
See Also: → 1717934

The tile size edtermines the number of pixels we allocate for the gradinrt pattern, and is eventually clamped to a maximum value. Minimizing the tile size after other transformations avoids some cases where we request more area than we need.

Assignee: nobody → nical.bugzilla
Status: NEW → ASSIGNED

Very large gradients are rendered at a lower resolution which is fine for most gradients as they tend to be smooth transitions, but looks bad when there are hard stops.

Depends on D119627

Flags: needinfo?(nical.bugzilla)
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8582a1d2caa7
Avoid stretching with large linear gradients in some cases. r=gfx-reviewers,lsalzman
https://hg.mozilla.org/integration/autoland/rev/0e7b638d0012
Don't cache large linear gradients with hard stops. r=gfx-reviewers,lsalzman
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 92 Branch

Comment on attachment 9230720 [details]
Bug 1716648 - Don't cache large linear gradients with hard stops. r=#gfx-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: visual artifacts on some linear gradients
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): simple patch.
  • String changes made/needed:
Attachment #9230720 - Flags: approval-mozilla-beta?
Attachment #9230719 - Flags: approval-mozilla-beta?

Comment on attachment 9230720 [details]
Bug 1716648 - Don't cache large linear gradients with hard stops. r=#gfx-reviewers

Approved for 91 beta 3, thanks.

Attachment #9230720 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9230719 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: