Closed Bug 1341521 Opened 7 years ago Closed 7 years ago

Smearing with canvas

Categories

(Core :: Graphics: Canvas2D, defect)

51 Branch
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla54
Tracking Status
firefox51 --- wontfix
firefox52 - verified
firefox-esr52 --- fixed
firefox53 + fixed
firefox54 + verified

People

(Reporter: AdamBugzilla, Assigned: ethlin)

References

Details

(Keywords: regression, testcase)

Attachments

(4 files)

Attached file smear.htm
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0
Build ID: 20170221004019

Steps to reproduce:

View certain animated canvas


Actual results:

Canvas smears, leaving old frames. Present in Firefox 51.0.1 & Developer Edition. I do not think this bug is present in Firefox 50. I didn't double check the version before it auto-updated to 51.0.1. Attaching the effected animation.
Attached image bad.png
Attached image good.png
Nvidia GeForce GTX 960
Driver Version: 378.66

Graphics
--------

Features
Compositing: Direct3D 11
Asynchronous Pan/Zoom: wheel input enabled; touch input enabled
WebGL Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 960 Direct3D11 vs_5_0 ps_5_0)
WebGL2 Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 960 Direct3D11 vs_5_0 ps_5_0)
Audio Backend: wasapi
Direct2D: true
DirectWrite: true (10.0.14393.351)
GPU #1
Active: Yes
Description: NVIDIA GeForce GTX 960
Vendor ID: 0x10de
Device ID: 0x1401
Driver Version: 21.21.13.7866
Driver Date: 2-9-2017
Drivers: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvd3dumx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvwgf2umx C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvd3dum,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_0cc477a6fec64d8c\nvwgf2um
Subsys ID: 32021462
RAM: 4096

Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: Direct2D 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: Direct2D 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): cairo
GPUProcessPid: 5588
GPUProcess: Terminate GPU Process
Decision Log
D3D9_COMPOSITING:
disabled by default: Disabled by default
Regression range:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=b1dbce81bf3b6124577fb46414f811ec5f45f4e0&tochange=505e6acd9c291504700a57ddf7e88f704f65da46

Ethan Lin — Bug 1289975 - Reuse canvas buffer when setting the same dimension. r=nical
Blocks: 1289975
Status: UNCONFIRMED → NEW
Has Regression Range: --- → yes
Has STR: --- → no
Component: Untriaged → Canvas: 2D
Ever confirmed: true
Flags: needinfo?(ethlin)
Keywords: regression, testcase
OS: Unspecified → All
Product: Firefox → Core
Hardware: Unspecified → All
Tracking 53/54+ so we can get this regression addressed.
Is there a workaround for this bug on ESR52?

If no, how about backing out the offending Bug 1289975 from ESR52?
It seems do not so risky.
Looks like it's not easy to make sure the retaining buffer is clean. I would like to reverse the change in Bug 1289975.
Assignee: nobody → ethlin
Flags: needinfo?(ethlin)
I may need a more complete plan for retaining buffer in canvas. For now I should remove the retainBuffer in ClearTarget.
Attachment #8840350 - Flags: review?(nical.bugzilla)
Attachment #8840350 - Flags: review?(nical.bugzilla) → review+
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/fb79fab50a60
Remove the retaining buffer machanism when setting the same canvas dimension. r=nical
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/fb79fab50a60
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Please request uplift to aurora/beta when you get a chance, keeping in mind that 52 RC goes to build on Monday.
Flags: needinfo?(ethlin)
Comment on attachment 8840350 [details] [diff] [review]
remove the retainBuffer parameter

Approval Request Comment
[Feature/Bug causing the regression]: bug 1289975
[User impact if declined]: some pages with canvas may display wrong
[Is this code covered by automated tests?]: no
[Has the fix been verified in Nightly?]: yes
[Needs manual test from QE? If yes, steps to reproduce]: no 
[List of other uplifts needed for the feature/fix]: none
[Is the change risky?]: no
[Why is the change risky/not risky?]: the change is small
[String changes made/needed]: none
Flags: needinfo?(ethlin)
Attachment #8840350 - Flags: approval-mozilla-beta?
Attachment #8840350 - Flags: approval-mozilla-aurora?
Hi Brindusa, could you help find someone to verify if this issue was fixed as expected on a latest Nightly build? Thanks!
Flags: needinfo?(brindusa.tot)
Comment on attachment 8840350 [details] [diff] [review]
remove the retainBuffer parameter

backout a change that caused a regression, beta52+, aurora53+
Attachment #8840350 - Flags: approval-mozilla-beta?
Attachment #8840350 - Flags: approval-mozilla-beta+
Attachment #8840350 - Flags: approval-mozilla-aurora?
Attachment #8840350 - Flags: approval-mozilla-aurora+
I reproduced this issue using Nightly 54.0a1, build ID: 20170210030206, on Windows 10 x64.

I can confirm bug is fixed on latest Nightly 54.0a1, Build ID 20170226030205, on Windows 10x64, Mac OS X 10.10 and Ubuntu 16.04.
Status: RESOLVED → VERIFIED
Flags: needinfo?(brindusa.tot)
Reproduced the issue on an affected build (51.0.1, 20170125094131) using Windows 10 x64. Old frames were visible for the testcase mentioned in Comment 0.

This issue is verified fixed on 52.0-build1 (20170227080736) using the following platforms:

    - Windows 10 x64
    - Windows 7 x64
    - Mac OS X 10.11.6
    - Ubuntu 14.04 x64

The animation from Comment 0 is now rendered as expected.
You need to log in before you can comment on or make changes to this bug.