Open Bug 1602212 Opened 3 years ago Updated 2 years ago

WebRender fullscreen video on second screen flickers when interacting with window on primary screen

Categories

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

72 Branch
x86_64
Windows 10
defect

Tracking

()

UNCONFIRMED

People

(Reporter: alvinhochun, Unassigned, NeedInfo)

References

(Blocks 3 open bugs, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Attached file about-support.txt

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

Steps to reproduce:

  1. Enable WebRender
  2. Play a Youtube video fullscreen on secondary screen
  3. Open a Firefox window on the primary screen and move the cursor around the page and UI elements

Actual results:

The video playback on the secondary screen flickers with black frames.

Expected results:

The video playback on the secondary screen should not be affected.

Video showing the issue: https://www.youtube.com/watch?v=uKJ4OYgrMBM

It is not a recent regression, as I remember seeing it happening on or before Firefox 69.

OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Graphics: WebRender
Product: Firefox → Core

It looks similar to Bug 1586929.

See Also: → 1586929

I forgot to mention that if the fullscreen video plays on the primary screen instead and I interact with a Firefox window on the secondary screen instead, the flickering does not occur. Though this could be a red herring.

Alexis, could you take a look and see if there are any similarities here to bug 1586929

Flags: needinfo?(a.beingessner)

I wouldn't be shocked if the two bugs had the same root cause. The reporter has another Pascal gpu, and pascal and up seems to be the common thread for our correctness problems.

Flags: needinfo?(a.beingessner)

Firefox is running on the Intel GPU however. The DP output is also not connected to the NVIDIA GPU.

alvinhochun, if you can repeat this problem reliably and feel that this is a regression, it would be a great help if you could run mozregression to find out which change caused the flickering. It might provide a clue about how to fix it.

This tool has a Windows GUI, and the whole process should not take more than a couple of minutes: https://mozilla.github.io/mozregression/

Priority: -- → P3

I don't know if this would be a regression. I can't remember when I first tried enabling WebRender and whether I saw this behaviour right as it was enabled. But let's say if I do try to bisect it, on which release should I start with? Or another way to ask -- when did WebRender start becoming usable on Windows? Or should I start from even before that?

I'll see when I have the free time. I will probably update the Intel driver before retesting.

alvinhochun - curious if you are still seeing this issue after updating your driver?

Flags: needinfo?(alvinhochun)
Blocks: wr-wild
No longer blocks: wr-72

@Jessie Sorry for the late reply. I couldn't use the external monitor for a week so I couldn't give you an update.

Yes, the issue still exists on Firefox 73.0b1 with latest Intel driver 26.20.100.7584 (11-26-2019).

Flags: needinfo?(alvinhochun)

I did a bit of testing with mozregression and what I get is that the flickering issue doesn't seem to be reproducible with the 2018-03-28 nightly but it is reproducible with the 2018-03-29 nightly. This is the pushlog: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=6aa3b57955fed5e137d0306478e1a4b424a6d392&tochange=dcd10220d55aea46db212314c46d25a96a7be243

It does not have enough data to do further bisection.

I also just tried with the following config variations using 73.0b1 and the issue is reproducible on all of them:

  • (Default:) Run on Intel GPU with ANGLE enabled
  • Run on NVIDIA GPU with ANGLE enabled
  • Run on Intel GPU with ANGLE disabled (webgl.disable-angle=false)
  • Run on NVIDIA GPU with ANGLE disabled

Bugbug thinks this bug is a regression, but please revert this change in case of error.

Keywords: regression
Blocks: wr-76

Sotaro, could you take a peak at this?

Flags: needinfo?(sotaro.ikeda.g)

I am curious if you still see this in Beta 75? Or Nightly?

Flags: needinfo?(alvinhochun)

Bug 1191971 from the regression range seems like it could be the culprit here.

Regressed by: 1191971
Has Regression Range: --- → yes

(In reply to Jessie [:jbonisteel] pls NI from comment #16)

I am curious if you still see this in Beta 75? Or Nightly?

I just re-enabled webrender on beta 75.0b2 (Build ID 20200310192828) and I couldn't reproduce the issue for now. I'll see if it comes up again in a few days.

Flags: needinfo?(alvinhochun)

I have not encountered the issue since re-enabling WebRender. Just for the sake of it, I ran mozregression and found the revision that fixed the issue:

Bug 1592509 - Re-enable gfx.webrender.compositor by default on Windows r=gw,jrmuizel

Differential Revision: https://phabricator.services.mozilla.com/D59434

So apparently the "fix" is enabling gfx.webrender.compositor. I tried disabling the config and can immediately re-reproduce the issue.

Commenting again since the code block cause the other bug to not be linked:

Seems to be fixed by Bug 1592509 due to it enabling gfx.webrender.compositor.

If you set gfx.webrender.compositor=false does the bug come back?

Flags: needinfo?(alvinhochun)

(In reply to Jeff Muizelaar [:jrmuizel] from comment #21)

If you set gfx.webrender.compositor=false does the bug come back?

Yes, it does.

Flags: needinfo?(alvinhochun)

Somehow I just started getting the issue again after updating to 75.0b7 (Build ID: 20200322132212). gfx.webrender.compositor is still set to true. I have no idea if it was just a fluke or if something else changed.

(In reply to alvinhochun from comment #23)

Somehow I just started getting the issue again after updating to 75.0b7 (Build ID: 20200322132212). gfx.webrender.compositor is still set to true. I have no idea if it was just a fluke or if something else changed.

Can you check what WEBRENDER_COMPOSITOR says in about:support?

Flags: needinfo?(alvinhochun)

I see, it says blacklisted by runtime: Blacklisted.

Flags: needinfo?(alvinhochun)

WEBRENDER_COMPOSITOR appears to be blacklisted due to https://hg.mozilla.org/releases/mozilla-beta/rev/44089ee090c9#l3.34 (I'm still running win10 build 17134.)

Sotaro, can you take a look at this? DirectComp fixes it, but since not all users will be getting DC right away this is worth looking at

Hi Rares, would be interesting to see if you can repro this

Flags: needinfo?(rares.doghi)

I tried reproducing this issue on an Intel UHD 630 laptop with Windows 10 but without success, after Forcing Webrender to enable as well as setting gfx.webrender.compositor = false I was still unable to reproduce this issue on my end, I also used my secondary GPU NVDIA GTX 1050 as my primary and again I did not notice any flicker on my end.
I tried Release 75, as well as beta 76.0b6 and Nightly 77.0a1 (2020-04-20).

Flags: needinfo?(rares.doghi)
Blocks: wr-77
No longer blocks: wr-76

Can you send us the specs of your second screen? (make/model/resolution, etc)

Flags: needinfo?(alvinhochun)

The external screen is a Dell U2417H, 1920x1080 60Hz on 100% scaling.

I suspect for a bit that the resolution of the primary screen might also play a role. The primary screen is 2560x1440 60Hz on 150% scaling.

Flags: needinfo?(alvinhochun)

Hi,

Sorry this was intended for a different flickering issue my comment is not related to this one. I will revert the flags.

I tried reproducing this on my end however (windows 10 pro) after noticing this, but my second screen won't flickr either when moving cursor on primary screen. (tried all release, beta and nightly builds)

Best,

Clara.

Status: NEW → UNCONFIRMED
Ever confirmed: false
No longer blocks: wr-77

@Alvin: Can you see if this is still occurring on latest nightly?

Flags: needinfo?(alvinhochun)

I seem to still be able to reproduce something like it on 81.0a1 (build ID 20200818214031) with gfx.webrender.compositor set to false, but the behaviour seems slightly different. The flickering happens when playing a video fullscreen on the second monitor but mostly when I drag the other window around the primary monitor, and not when simply moving the cursor around the page and UI elements like before. I see no flickering in the video when using the address bar, interacting with other web pages, scrolling, selecting from the hamburger menu, maximizing and restoring the window. It does however flicker rapidly when I drag the other window by its title bar, and less rapidly when I resize the other window.

Note that some time after my last comment, I have updated my system to win10 1909 (build 18363) which may or may not have caused the change. I have not tested for this issue since making the last comment until just now, because having the compositor enabled has eliminated this issue for me.

Flags: needinfo?(alvinhochun)
You need to log in before you can comment on or make changes to this bug.