Closed Bug 1559688 Opened 5 years ago Closed 5 years ago

Corrupted image during progressive JPEG loading

Categories

(Core :: Graphics: WebRender, defect, P2)

67 Branch
Desktop
All
defect

Tracking

()

VERIFIED FIXED
mozilla70
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- disabled
firefox67 --- wontfix
firefox68 --- wontfix
firefox69 --- verified
firefox70 --- verified

People

(Reporter: mail, Assigned: nical)

References

(Regression)

Details

(Keywords: regression, reproducible)

Attachments

(2 files)

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

Steps to reproduce:

Loading a large (>8192px) progressive JPEG image

Actual results:

While the image is loading, Firefox 67 displays the intermediate progressive scans incorrectly and fails to display the image correctly even when fully loaded.

After a page refresh, when the image is loaded from cache and the intermediate scans are not displayed, the image shows correctly.

Expected results:

The image should display correctly during load.

Test case and screencap:
https://phoboslab.org/files/bugs/progressive-jpeg/

I can reproduce the issue on Nightly69.0a1(20190616093534) windows10 if WebRender is enabled.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: reproducible
OS: Unspecified → All
Hardware: Unspecified → Desktop

#1 Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=3b50a5b394b9467ba99fa0e956b53c49b66f3238&tochange=df30b0f614c904678b72d66616a65b989f9a87e9

Regressed by:
df30b0f614c904678b72d66616a65b989f9a87e9 Nicolas Silva — Bug 1494403 - Separate the Blob related apis. r=jrmuizel
b75eb61d2048a0a0dabeb08ad390a0286358b55e WR Updater Bot — Bug 1509495 - Update reftest annotations for changes in WR PR #3277. r=kats
6d9d2397f1153e5e9062f342015f28ca3576bfee WR Updater Bot — Bug 1509495 - Update webrender to commit af2b372624db589115511b4705849a33e6acd35d (WR PR #3277). r=kats

#2 regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=c4eb9f94bc4c52e0489f8e5b7f7fc931ef013816&tochange=d65d6d242070557db836baa1fcc3d26529590efa

Regressed by:
d65d6d242070557db836baa1fcc3d26529590efa WR Updater Bot — Bug 1514735 - Update webrender to commit 4de718f9ea3435c099cabafc02e8b51da539bc62 (WR PR #3428). r=kats

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

Bug 1509495 seems like a culprit.
https://github.com/servo/webrender/compare/523be3a9461de2716828cd2271aabaffc5e4caa0...af2b372624db589115511b470584

Dirty rect calculation of ImageResult::Multi in update_image_template() seemed to trigger the regression. When I changed local_dirty_rect to always to use DirtyRect::All, I did not see the problem.

https://searchfox.org/mozilla-central/source/gfx/wr/webrender/src/resource_cache.rs#882

Priority: -- → P2

The problem seemed to happen when Image is tiled because of its big size and it is updated by update_image_template().

:nical, can you look into the bug?

Flags: needinfo?(nical.bugzilla)
Assignee: nobody → nical.bugzilla
Flags: needinfo?(nical.bugzilla)
Blocks: wr-69
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e958d9b8d9e4 Clip tile dirty rects to the tile's total rect. r=aosmond
See Also: → 1562462
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70

Please nominate this for Beta approval when you get a chance.

Flags: needinfo?(nical.bugzilla)

Comment on attachment 9077638 [details]
Bug 1559688 - Clip tile dirty rects to the tile's total rect. r=aosmond

Beta/Release Uplift Approval Request

  • User impact if declined: Incorrect rendering of large progressively loaded images
  • Is this code covered by automated tests?: No
  • 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): The change is very straightforward and simple.
  • String changes made/needed: None.
Flags: needinfo?(nical.bugzilla)
Attachment #9077638 - Flags: approval-mozilla-beta?

Comment on attachment 9077638 [details]
Bug 1559688 - Clip tile dirty rects to the tile's total rect. r=aosmond

Fix for corruption of large progressive JPEG images with WebRender enabled. Approved for 69.0b6.

Attachment #9077638 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Flags: qe-verify+
QA Whiteboard: [qa-triaged]

Hi, I retested this issue on Windows 10 with Nvidia GT 730 with Firefox Beta 69.0b6 and 70.0a1 (2019-07-18) and the issue no longer occurs. I will mark this issue accordingly.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triaged]
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: