On pinch-zooming, testcase blurs and seams/tiles are visible on the screen
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr91 | --- | unaffected |
firefox-esr102 | --- | wontfix |
firefox-esr115 | --- | wontfix |
firefox-esr128 | --- | wontfix |
firefox103 | --- | wontfix |
firefox104 | --- | wontfix |
firefox105 | --- | wontfix |
firefox106 | --- | wontfix |
firefox131 | --- | wontfix |
firefox132 | --- | wontfix |
firefox133 | --- | fixed |
firefox134 | --- | verified |
firefox135 | --- | verified |
People
(Reporter: mayankleoboy1, Assigned: gw)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: regression)
Attachments
(4 files)
Open the attached testcase
Pinch-zoom slowly
At certain zoom levels, the testcase will become blurry, and seams/tiles will be visible on the screen
See attached video
Reporter | ||
Comment 1•3 years ago
|
||
Reporter | ||
Comment 2•3 years ago
|
||
Reporter | ||
Comment 3•3 years ago
|
||
Reporter | ||
Comment 4•3 years ago
|
||
I dont have the exact regression range, but i think i started noticing this during bug 1749380 and co.
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Reporter | ||
Comment 5•3 years ago
|
||
Did a regression , and found this :
2022-08-13T12:38:12.078000: DEBUG : Found commit message:
Bug 1749380 - Part 2 - Performance and quality fixes for part 1. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D138982
Updated•3 years ago
|
Comment 6•3 years ago
|
||
Set release status flags based on info from the regressing bug 1749380
Updated•3 years ago
|
Updated•3 years ago
|
Comment 7•3 years ago
|
||
Set release status flags based on info from the regressing bug 1749380
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Updated•1 year ago
|
Comment 8•11 months ago
|
||
I made a further reduced testcase here: https://codepen.io/jamienicol/pen/LYwpmmg
Importantly it has to have a gradient (doesn't matter which type) and a blur.
The issue occurs when the size of the gradient gets clamped to the max picture size (4096) here. In this case we overwrite the value of surface.device_pixel_scale
.
Shortly afterwards when calculating the std deviation for the blur here we multiply the width/height by both surface.local_scale
and surface.device_pixel_scale
. For a gradient that was just under 4096 pixels, the local_scale will be some value, let's say 4.1, and the device_pixel_scale will be 1.0. For a gradient that was just over 4096 pixels and was therefore clamped, the local scale will be let's say 4.2, and the device pixel scale will be something like 4.15. We therefore end up with a much larger blur std deviation if the picture size was just over 4096 vs just under. This results in the bluriness.
I don't quite have the mental model of how this is supposed to work, but perhaps here where we override the device_pixel_scale in the clamped case, we should also be setting the local_scale to (1.0, 1,0)
. It fixes the issue at hand, and doesn't appear to cause any test failures. Does that make sense to you, Glenn? Or do you have an alternative suggestion?
Assignee | ||
Comment 9•11 months ago
|
||
I think that sounds like a reasonable fix, yes.
Comment 10•11 months ago
|
||
When a picture exceeds the maximum surface size we clamp the size to
the the maximum and ensure it is rendered at the adjusted scale by
setting the device pixel scale accordingly. However, we erroneously
did not additionally reset the local_scale to 1.0. For pictures used
as blur inputs, this resulted in both the device pixel scale and local
scale being used to calculate the std deviation, resulting in too much
blur.
Comment 11•11 months ago
|
||
Comment 12•11 months ago
|
||
bugherder |
Updated•11 months ago
|
Reporter | ||
Comment 13•11 months ago
|
||
This is fixed for me on the latest Nightly. Thanks!
Updated•10 months ago
|
Comment 14•9 months ago
|
||
Reproducible on a 2024-10-01 Nightly build on macOS 14.
Verified as fixed on Firefox Nightly 135.0a1 and Firefox 134.0b1 on macOS 14, Windows 10, Ubuntu 22.
Description
•