Closed Bug 1911237 Opened 6 months ago Closed 6 months ago

Flickering on a Codepen canvas demo (https://codepen.io/cantelope/full/GRbjzGO)

Categories

(Core :: Graphics: Canvas2D, defect)

defect

Tracking

()

RESOLVED FIXED
131 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- unaffected
firefox128 --- unaffected
firefox129 --- fixed
firefox130 --- fixed
firefox131 --- fixed

People

(Reporter: mayankleoboy1, Assigned: sotaro)

References

(Blocks 2 open bugs, Regression, )

Details

(Keywords: regression)

Attachments

(2 files)

Go to https://codepen.io/cantelope/full/GRbjzGO
Once the page loads, click "GO" in the demo-apne
The demo will start
Maybe move the mouse inside the demo

AR: The whole demo flickers
ER: Not so
Repros with both gpu-canvas and d2d-canvas

Bisection:
Bug 1889275 - Prevent to call GPUVideoImage::GetAsSourceSurface() in CanvasRenderingContext2D::DrawImage() for SurfaceDescriptorD3D10 if CanvasTranslator is used r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D206446

Attached file about:support

Profile with graphics preset logging: https://share.firefox.dev/3LL9Gfc

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

:sotaro, since you are the author of the regressor, bug 1889275, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

Assignee: nobody → sotaro.ikeda.g
Flags: needinfo?(sotaro.ikeda.g)

I tested with PC with NVIDIA GPU and with 3 PCs with Intel GPUs with nightly. I confirmed the problem with 2 PCs with Intel GPU.

Zero copy video is enabled until early beta with AMD GPUs by Bug 1899450 and Bug 1910990 disables video rendering optimization when Zero copy video is disabled with AMD GPUs. Then it seems not affect to late beta and release with AMD GPUs.

If I set media.wmf.zero-copy-nv12-textures = False, I dont repro on Nightly.

(In reply to Mayank Bansal from comment #5)

If I set media.wmf.zero-copy-nv12-textures = False, I dont repro on Nightly.

Thank you for checking!

I tested more with Win PCs. Rendering problem happened with more PCs.
-[1] Win10 PC with Intel GPU(zero copy video): flickering happened
-[2] Win11 PC with Intel Gen12 GPU(REUSE_DECODER_DEVICE blocked by Bug 1896823): flickering happened
-[3] Win11 PC with NVIDIA GPU: flickering happened with pref media.wmf.zero-copy-nv12-textures = false

For some reason [3], the problem was solved by using the original ID3D11Texture2D instead of the ID3D11Texture2D opened with the shared handle. Then the cause of each flicker could be different.

I do not have PC with AMD GPU, I am going to get one soon.

From comment 5 and comment 7, it seems better to disable the video rendering optimization with ID3D11Texture2D for now. Though it causes huge performance regression.

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

Pushed by sikeda.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/69ee4d33c134 Disable SurfaceDescriptorD3D10 fast path of CanvasRenderingContext2D::DrawImage() with remote Canvas2d r=gfx-reviewers,lsalzman
Blocks: 1911937

Bug 1911937 is created for re-enabling SurfaceDescriptorD3D10 fast path of CanvasRenderingContext2D::DrawImage() with remote Canvas2d.

Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → 131 Branch

The patch landed in nightly and beta is affected.
:sotaro, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox130 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(sotaro.ikeda.g)

Adding to Comment 14, please consider also adding a release uplift request.
We could consider including this in the planned Fx129 dot release.

This is fixed for me on the latest Nightly. Profile for reference: https://share.firefox.dev/3SEFDtu / https://share.firefox.dev/3LXUSKe

Comment on attachment 9417905 [details]
Bug 1911237 - Disable SurfaceDescriptorD3D10 fast path of CanvasRenderingContext2D::DrawImage() with remote Canvas2d

Beta/Release Uplift Approval Request

  • User impact if declined: The flickering happens with STR of Bug 1911237 with Intel GPUs, NVIDIA GPUs and AMD GPUs.
  • 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): This change is a fallback to an older, slower implementation that has been in use for a long time.
  • String changes made/needed: no
  • Is Android affected?: No
Flags: needinfo?(sotaro.ikeda.g)
Attachment #9417905 - Flags: approval-mozilla-release?
Attachment #9417905 - Flags: approval-mozilla-beta?

Comment on attachment 9417905 [details]
Bug 1911237 - Disable SurfaceDescriptorD3D10 fast path of CanvasRenderingContext2D::DrawImage() with remote Canvas2d

Approved for 130.0b3

Attachment #9417905 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment on attachment 9417905 [details]
Bug 1911237 - Disable SurfaceDescriptorD3D10 fast path of CanvasRenderingContext2D::DrawImage() with remote Canvas2d

Approved for 129.0.2

Attachment #9417905 - Flags: approval-mozilla-release? → approval-mozilla-release+
Regressions: 1914285
Blocks: 1913662
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: