Open Bug 1617517 Opened 5 years ago Updated 2 years ago

Screen flashing when resizing the browser window

Categories

(Core :: Graphics, defect, P3)

75 Branch
Desktop
Windows 10
defect

Tracking

()

Tracking Status
firefox-esr68 --- disabled
firefox73 --- disabled
firefox74 --- disabled
firefox75 --- disabled
firefox76 --- disabled

People

(Reporter: sollacea, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

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

Steps to reproduce:

Here is a video demonstrating the effect: https://youtu.be/XbU3P1O0Pqo

This appears to happen on both my machines of different makes to varying degrees, only when moving the top and left edges of the screen. (bottom and right are not affected)

Actual results:

Opposing edge of the window tears and jumps when resizing the window.

Expected results:

I'd expect it to not tear, and to stay in one place.

Component: Untriaged → Graphics
Product: Firefox → Core

In my case, set gfx.direct3d11.use-double-buffering to false fix the issue on Nightly75.0a1(20200226092757) Windows10.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
OS: Unspecified → Windows 10
Hardware: Unspecified → Desktop

Sollace or Alice, do either of you see similar behaviour in Chrome?

Flags: needinfo?(sollacea)

Chrome Dev(82.0.4062.3): No, I can not reproduce the issue. The black area does not extend beyond the browser window to the right or bottom. Black areas only appear within the browser area.

Flags: needinfo?(sotaro.ikeda.g)

@Jeff I can corroberate. Tested on chrome and both browsers on a separate laptop, and in neither case does Chrome exhibit the same issue as this. There are slight black/white unpainted areas, but they remain inside the window and are generally not as exaggerated in Chrome.

Flags: needinfo?(sollacea)
Blocks: wr-75
Priority: -- → P3

Do you see this if set gfx.webrender.all=true?

Flags: needinfo?(sollacea)

Alice do you see this with gfx.webrender.all=true?

Flags: needinfo?(alice0775)

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

Alice do you see this with gfx.webrender.all=true?

Yes, I can reproduce the issue with WebRender.

If WebRender enabled, the regression window is different from comment#2.

#1 Regression window with WebRender (white area extends to the edge of the screen):
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=7ca58ce097793365fc2506487d7ba79729ac59f9&tochange=dcd10220d55aea46db212314c46d25a96a7be243

Suspect:
d328d8eda8e68d669ebc77184c8d8d870cafcb7c sotaro — Bug 1191971 part 2 - Add capatiblity to enable DComp r=bas
19142efa84a5b041c193b311ff06838e94d1c154 sotaro — Bug 1191971 part 1 - Create child window in gpu process r=bas

gfx.webrender.dcomp-win.enabled=false fixes the issue on Nightly76.0a1 as well as the bad build.

#2 Regression window with WebRender (black area extends instead of white):
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=2ef5c0e6dd2cdd667f3aaa9dae6332734664fb01&tochange=af6a7edf0069549543f2fba6a8ee3ea251b20829

Suspect:
96efac6422538e41756d352e6cc508fb04eea6f5 sotaro — Bug 1479680 - Change clear_color to (0.0, 0.0, 0.0, 0.0) in webrender r=nical

Flags: needinfo?(alice0775)

I tested again today, and I see the issue is completely gone. :/

With or without "gfx.webrender.all=true"

Unless you guys pushed a fix to the nightly branch and I didn't realise, the only other change is that Windows updated.

Flags: needinfo?(sollacea)
Flags: needinfo?(alice0775)

Alice do you still see this?

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

Alice do you still see this?

I can still reproduce the issue on Nightly76.0a1(20200326093308) Windows10 new profile with/without WebRender.

Flags: needinfo?(alice0775)
Blocks: wr-76
No longer blocks: wr-75

Rares, can you try and reproduce? Thank you.

Bug 1579732 and Bug 1494522 are similar bugs. This bug and they seem to be caused by compositor window usage.

Symptom of flickering during resizing seemed to be affected by window rendering configuration

  • [1] HWND + Compositor window + DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain
    • D3D compositor with double buffering
  • [2] HWND + Compositor window + DirectComposition + DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain
    • WebRender without WR native compositor
  • [3] HWND + Compositor window + DirectComposition + IDCompositionVirtualSurface
    • WebRender with WR native compositor

With [1], I saw significant flickering. But with [3], the flickering was less amount. When [3] is used, the flickering seemed less significant than chrome browser for me.

By the way chrome browser normally use "HWND + Compositor window + DirectComposition + IDCompositionSurface".

Alice0775 White, can you test the flickering with [3] of comment 4? How much flickering do you see with it? If WR native compositor is blocked by Bug 1620491, it could be enabled by pref gfx.webrender.compositor.force-enabled=true.

Flags: needinfo?(alice0775)

(In reply to Sotaro Ikeda [:sotaro] from comment #15)

Alice0775 White, can you test the flickering with [3] of comment 4? How much flickering do you see with it? If WR native compositor is blocked by Bug 1620491, it could be enabled by pref gfx.webrender.compositor.force-enabled=true.

Yes, WR native compositor is blocked.
The tearing(the black area extends to the edge of the monitor) issue is no longer reproduced with gfx.webrender.compositor.force-enabled=true.

Flags: needinfo?(alice0775)

(In reply to Alice0775 White from comment #16)

Yes, WR native compositor is blocked.
The tearing(the black area extends to the edge of the monitor) issue is no longer reproduced with gfx.webrender.compositor.force-enabled=true.

Great! Thanks for the confirmation.

Flags: needinfo?(sotaro.ikeda.g)
Summary: Screen tearing when resizing the browser window → Screen flashing when resizing the browser window

I can also reproduce this and it is also better for me with the compositor enabled.

Let's see if we can get DirectComposition most places and if not worry about this then.

Blocks: wr-77
No longer blocks: wr-76
Blocks: wr-polish
No longer blocks: wr-77
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: