Closed Bug 1556634 Opened 6 months ago Closed 3 months ago

Flickering selection/text input and jumpy scrolling (Win10 (1903)/Intel HD Graphics 530 + 620)

Categories

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

69 Branch
x86_64
Windows 10
defect

Tracking

()

VERIFIED FIXED
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- disabled
firefox68 --- disabled
firefox69 - disabled
firefox70 + verified

People

(Reporter: okazki98, Assigned: sotaro)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

(Keywords: regression)

User Story

Beschreibung: Intel(R) HD Graphics 520
Herstellerkennung: 0x8086
Gerätekennung: 0x1916
Treiber-Version: 21.20.16.4542

Description: Intel(R) HD Graphics 530
Vendor ID: 0x8086
Device ID: 0x1912
Driver Version: 26.20.100.6890

Description: Intel(R) UHD Graphics 630
Vendor ID: 0x8086
Device ID: 0x3e9b
Driver Version: 26.20.100.6912

Description: Intel(R) UHD Graphics 620
Vendor ID: 0x8086
Device ID: 0x5917
Driver Version: 25.20.100.6373

Description: Intel(R) HD Graphics 620
Vendor ID: 0x8086
Device ID: 0x5916
Driver Version: 25.20.100.6472

Description Intel(R) UHD Graphics 620
Vendor ID 0x8086
Device ID 0x3ea0
Driver Version 25.20.100.6471

Description Intel(R) UHD Graphics 620
Vendor ID   0x8086
Device ID   0x5917
Driver Version  23.20.16.4973

Beschreibung Intel(R) HD Graphics 620
Herstellerkennung 0x8086
Gerätekennung 0x5916
Treiber-Version 26.20.100.6912

Does not reproduce:
Description Intel(R) HD Graphics 520
Vendor ID   0x8086
Device ID   0x1916
Driver Version  24.20.100.6293

Attachments

(9 files)

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

Steps to reproduce:

  1. Enable WebRender.
  2. Open any page with an input field and some content to scroll through (e.g Bug: 1479781).
  3. Focus on "Search bugs" field and enter some text fast.
  4. Select text on the page (preferably to select it with fast movements of the mouse).
  5. Scroll the page using the mouse-wheel or the scrollbar.

Actual results:

When entering text: The latest characters may flicker.
When selecting content: The last portion of the selection may flicker.
When scrolling: The page may jump slightly at the end of the scrolling.
Similar behavior may be seen when hovering over some elements on the page.
What's peculiar, is that when starting a recording with Game Bar or opening a recording app (e.g: OBS Studio), this issue cannot be reproduced anymore (at least on my PC).
Flickering selection and jumpy scrolling demo: https://youtu.be/L1SIG3xbjco
Flickering text input demo: https://youtu.be/-idGoGzNAsA

67 and 68 Branches are affected by this issue as well.

Expected results:

No flickering when entering characters or selecting some content on the page.
Scrolling is expected to be smooth, without any jumps.

Please open about:support, click on the "Copy text to clipboard" button, paste it into a text file and upload it here (Attach File). Thanks!

OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64
Attached file about Support info.txt

Done.

Blocks: wr-intel
Summary: Flickering selection/text input and jumpy scrolling [Intel WebRender] → Flickering selection/text input and jumpy scrolling (Win10/Intel HD Graphics 530)
Blocks: wr-69
Priority: -- → P2
See Also: → 1532484

Tried to identify what triggers this behavior. Apparently it happens after locking and then unlocking the screen in Windows 10. Here are the updated steps to reproduce:

  1. Restart/Start the PC.
  2. Open Nightly with WebRender on.
  3. Open any page with some text to select and scroll through.
  4. Try to select some text and scrolling through the page (it should behave as expected).
  5. Press (Win.key) + (L) to lock the screen.
  6. Unlock the screen.
  7. Try to select any content or scroll through the page.

Actual results: As mentioned in bug's description Comment #0).

I'm very confident that Locking/Unlocking the screen what triggers the strange scrolling jumps and flickering of text on my PC, since I successfully reproduced it today following the steps in this comment.
Here's an updated demo: https://youtu.be/zwuZD6DXbGU

See Also: → 1558107

I have this same bug but it is not triggered by locking and unlocking the screen in Windows 10, it happens all the time regardless of the immediate previous state of Windows. I wonder if this is related to the Windows May update (1903) because I do not remember experiencing this behavior when I was still on version 1803.

More details about my case:

  1. Intel UHD 630, with Intel Graphics - Windows 10 DCH Drivers Version: 26.20.100.6890 installed
    • Webrender is enabled by default with gfx.webrender.all.qualified=true: flickering and jumpy scrolling is present
    • If gfx.webrender.all.qualified is toggled to false, normal behavior, no flickering
  2. Nvidia Geforce GTX 1050 (mobile) with GeForce Game Ready Driver (DCH) Version: 430.86 WHQL installed
    • Bug is present regardless of whether compositing is being done by webrender or D3D11
Blocks: wr-intel-mvp
No longer blocks: wr-intel

Dzmitry - can you take a peak at this, see if you can repro/determine what is going on?

Flags: needinfo?(dmalyshau)

Dan, After you start seeing the problem does it go away? Do you have an idea of what might cause it to stop happening?

Flags: needinfo?(okazki98)

Sotaro - also curious to hear if you could repro?

Flags: needinfo?(sotaro.ikeda.g)

I wasn't able to get any flickering so far on today's nightly/Win10/Iris 550.

Would be good to know if it's Angle specifically, or just us doing something bad. Dan, could you try setting "webgl.disable-angle=true" in "about:config" prefs, restarting the browser, and seeing if you can reproduce the issue? That setting forces WebRender to use the OpenGL driver directly.

Flags: needinfo?(dmalyshau)

(In reply to Dzmitry Malyshau [:kvark] from comment #8)

I wasn't able to get any flickering so far on today's nightly/Win10/Iris 550.

Would be good to know if it's Angle specifically, or just us doing something bad. Dan, could you try setting "webgl.disable-angle=true" in "about:config" prefs, restarting the browser, and seeing if you can reproduce the issue? That setting forces WebRender to use the OpenGL driver directly.

I apologize if I am not supposed to add comments to this bug since I am not the reporter. Please tell me if I shouldn't.
webgl.disable-angle=true does not fix the issue on my system.

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

Dan, After you start seeing the problem does it go away? Do you have an idea of what might cause it to stop happening?

At the time of reporting, this behavior could be fixed by restarting the browser.
Now I retested it, and this behavior is no longer the same. The issue is now reproducible immediately when booting-up the computer (I no longer need to Lock the screen to trigger this issue) and does not go away after restarting the computer or the browser.
Thus, I don't think there is any way to make this issue go away right now, unless we disable WebRender, of course.

Flags: needinfo?(okazki98)

(In reply to Dzmitry Malyshau [:kvark] from comment #8)

I wasn't able to get any flickering so far on today's nightly/Win10/Iris 550.

Would be good to know if it's Angle specifically, or just us doing something bad. Dan, could you try setting "webgl.disable-angle=true" in "about:config" prefs, restarting the browser, and seeing if you can reproduce the issue? That setting forces WebRender to use the OpenGL driver directly.

Tried toggling that option, however, that didn't solve the issue.

(In reply to Dzmitry Malyshau [:kvark] from comment #8)

I wasn't able to get any flickering so far on today's nightly/Win10/Iris 550.

Would be good to know if it's Angle specifically, or just us doing something bad. Dan, could you try setting "webgl.disable-angle=true" in "about:config" prefs,

"gfx.webrender.force-angle=false" is correct pref for disabling ANGLE on WebRender. But it does not work well with Intel GPU.

See Also: → 1525084

(In reply to Jessie [:jbonisteel] plz needinfo from comment #7)

Sotaro - also curious to hear if you could repro?

I tried to reproduce the problem on several Windows PCs. But I could not reproduce the problem.

Bug 1525084 report also has "Intel(R) HD Graphics 530". I wonder if it might be related to the problem.

Flags: needinfo?(sotaro.ikeda.g)

Ted in Toronto can reproduce this.

Status: UNCONFIRMED → NEW
Ever confirmed: true

I'm experiencing this on a Win10 laptop.

Active Yes
Description Intel(R) UHD Graphics 620
Vendor ID 0x8086
Device ID 0x3ea0
Driver Version 25.20.100.6471

See Also: → 1562219

Issue reproduces even on a new profile (with just the webrender pref toggled).

Attached file about-support.txt

I can reproduce the flickering text, the flickering selections, and the jumping rows in Gmail.

Summary: Flickering selection/text input and jumpy scrolling (Win10/Intel HD Graphics 530) → Flickering selection/text input and jumpy scrolling (Win10/Intel HD Graphics 530 + 620)
Attached file about support.txt

i can also reproduce this or similar visual glitches on a convertible with an Intel HD Graphics 520 gpu.

I get the flickering pretty consistently in normal usage, but when I try to do a screen capture the issue goes away.

Attached file about:support
Comment on attachment 9077667 [details]
about:support

Confirmed on Intel 620. Flickering on typing and scrolling

Pasting my reddit comment as is:

Hey /u/jrmuizel I‘m very glad that this issue is getting some visibility finally.

After some testing and some pref toggling, I came to the conclusion that the issue is with ANGLE since disabling gfx.webrender.force-angle takes care of it. The problem is that intel and webgl don‘t seem to get along well, so disabling that pref brings other kind of issues, e.g. a weird scaling issue when resiying the firefox window.

Also, it seems that what is actually happening is a frame (or a couple of frames) is kind of „backtracked“ and the frame before it gets redrawn just after it.

Lastly, I think that it is not intel only as I also encoutered this bug after switching to an NVIDIA card on my laptop. With this GPU, firefox and gfx.webrender.force-angle=false performs much better, despite some other minor querks (mainly power consumption and a couple of initial frames tend to get skipped after an idle time)

about:support with intel GPU

on both attachements 9077778 and 9077780

It’s a Lenovo laptop with intel UHD 630 running on latest drivers from intel (I’ve tried all the driver versions from 24.20.100.6292 supplied by lenovo up until 26.20.100.6912 from the intel website).

The other GPU is an NVIDIA Geforce 1050 4GB. Driver version is also the latest from nvidia directly. V. 430.86

Windows 10 1903, also up-to-date.

EDIT: Both drivers are DCH

Can those who can reproduce the problem try setting gfx.webrender.dcomp-win.enabled=false and see if they can still reproduce the problem in that configuration.

Note: restarting the browser is required before gfx.webrender.dcomp-win.enabled will take a effect.

yes, flipping the gfx.webrender.dcomp-win.enabled pref to false helps against the visual glitches in my case.

Confirmed. Flipping gfx.webrender.dcomp-win.enabled to false fixes the issue for me. Out of curiosity I tried to only toggle 'gfx.webrender.dcomp-win-triple-buffering.enabled' to false, but the flickering was still there. With dcomp-win disabled, things no longer flicker.

gfx.webrender.dcomp-win.enabled=false fixes the issue

With gfx.webrender.dcomp-win.enabled set to FALSE the issue is no longer reproducible for me.

Can everyone who's seeing the problem post their Windows 10 build version? ie. 1803 etc?

i'm having the problem on 1903, build 18362.207

WinVer: Version 1903 (OS Build 18362.239)

It is possible this all started when I did the 1903 update.

I'm currently on 1903 as well.

Depends on: 1566555

Windows 10 1903 (Build 18362.239)
Firefox 68.0 (WebRender force enabled)
Intel HD 620
Information from about:support:
GPU 1
Aktiv Ja
Beschreibung Intel(R) HD Graphics 620
Herstellerkennung 0x8086
Gerätekennung 0x5916
Treiber-Version 26.20.100.6912
Treiber-Datum 5-28-2019
Treiber igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32
Subsys-ID 505b17aa
RAM Unbekannt
Can reproduce all issues. It isn't happening on another Windows 10 1903 installation with an Intel HD 520.

User Story: (updated)

I can reproduce it when typing but also here https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html

basically often the tiles flick a frame backwards and then back forwards. However, I noticed it only after updating Windows 10 to 1903, not before.

Windows 10 x64 1903
Intel HD 630

https://pastebin.com/47znmCZk

Summary: Flickering selection/text input and jumpy scrolling (Win10/Intel HD Graphics 530 + 620) → Flickering selection/text input and jumpy scrolling (Win10 (1903)/Intel HD Graphics 530 + 620)

I can reproduce this on a Intel HD 540 Win 10 1903 with 25.20.100.6373 and 26.20.100.6890 but not with 21.20.16.4664

I tried older driver 25.20.100.6444 (2018-11-19) and still experience the bug.

See Also: → 1566897
Duplicate of this bug: 1566897

I can also reproduce with 24.20.100.6025, 21.20.16.4839 and 21.20.16.4471

I'm unable to reproduce it on Win10 with Intel 630 (on Lenovo X1 Extreme laptop) with either of these drivers:

  • 24.20.100.6346
  • 25.20.100.6793
  • 26.20.100.6912

(In reply to Dzmitry Malyshau [:kvark] from comment #41)

I'm unable to reproduce it on Win10 with Intel 630 (on Lenovo X1 Extreme laptop) with either of these drivers:

  • 24.20.100.6346
  • 25.20.100.6793
  • 26.20.100.6912

Do you have Windows 10 1903?

I can also reproduce on 21.20.16.4639 but not on 21.20.16.4627.

I can also not reproduce on 23.20.16.4973. It seems to be the thing that distinguishes the drivers that work from the drivers that don't is that they specifically target the subsystem id of my machine. i.e pci\ven_8086&dev_1926&subsys_07041028.

My theory is that all of the drivers returned by this search http://www.catalog.update.microsoft.com/Search.aspx?q=%20pci%5Cven_8086%26dev_1926%26subsys_07041028 probably work

A very suspicious difference between the drivers that work and ones that don't is in the inf files.

DisplayFeatureControl is set to 0x181 in the drivers that do work and is set to 0x1a1 in the drivers that don't.

In fact I'm able to make the problem reproducible on 23.20.16.4973 by manually setting DisplayFeatureControl to 0x1a1.

For those who can reproduce the problem can you report the value of DisplayFeatureControl? You can find it by opening regedit and "Edit > Find" and search for the "values" DisplayFeatureControl.

The feature that's disabled is 'EnableMPO'. Where MPO is multi-plane-overlay. This matches up with the problem being related to DirectComposition.

I just updated the Win10 PC. I could reproduce the problem just by updating to Windows 10 1903. Before the update, the problem did not happen. After the update the problem happened. Then, 1903 build seems to trigger the problem.

  • Intel(R) HD Graphics P530
  • Device ID : 0x191d
  • Windows 10 x64 1903
  • Driver Version : 24.20.100.6286
  • DisplayFeatureControl was 0x1a1.

For now, gecko does not use Multiplane Overlay. It uses only one IDCompositionVisual with SwapChain.

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

A very suspicious difference between the drivers that work and ones that don't is in the inf files.

DisplayFeatureControl is set to 0x181 in the drivers that do work and is set to 0x1a1 in the drivers that don't.

In fact I'm able to make the problem reproducible on 23.20.16.4973 by manually setting DisplayFeatureControl to 0x1a1.

For those who can reproduce the problem can you report the value of DisplayFeatureControl? You can find it by opening regedit and "Edit > Find" and search for the "values" DisplayFeatureControl.

I see the same behavior with DisplayFeatureControl set to 0x181. I have two graphics cards, so there were a couple of values with that name, one set to 0x1a1 and the others already at 0x181.

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

A very suspicious difference between the drivers that work and ones that don't is in the inf files.

DisplayFeatureControl is set to 0x181 in the drivers that do work and is set to 0x1a1 in the drivers that don't.

In fact I'm able to make the problem reproducible on 23.20.16.4973 by manually setting DisplayFeatureControl to 0x1a1.

For those who can reproduce the problem can you report the value of DisplayFeatureControl? You can find it by opening regedit and "Edit > Find" and search for the "values" DisplayFeatureControl.

My value is 0x1a1

The patch enables DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL without DirectComposition usage. But it also caused the problem on my Win10 laptop.

Assignee: nobody → sotaro.ikeda.g
Assignee: sotaro.ikeda.g → nobody

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

The patch enables DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL without DirectComposition usage. But it also caused the problem on my Win10 laptop.

Created Bug 1567347 for adding an option of using DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL without DirectComposition on WebRender.

See Also: → 1567347

I was running 68 stable with WebRender enabled and had no issues. My laptop updated to Windows 10 v1903 and I started seeing this. It's bad enough that I had to disable WebRender, so this is probably P1 (Intel HD Graphics 620)

deleted

Assignee: sotaro.ikeda.g → nobody

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

Keywords: regression
Assignee: nobody → sotaro.ikeda.g

I found a way to reproduce the problem without WebRender with the following prefs.

  • gfx.webrender.force-disabled: true
  • gfx.partialpresent.force: -1

It disables partial present with d3d compositor
https://searchfox.org/mozilla-central/source/gfx/layers/d3d11/CompositorD3D11.cpp#295

Depends on: 1569881

This test case makes the problem pretty obvious. The green box should never move backwards but sometimes it does. The problem seems to happen whenever the blue box stops spinning. i.e. we go from running at 60fps to 6fps.

I confirmed that the problem also happened on google chrome by disabling partial swap with the following command.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ui-disable-partial-swap

From Comment 56 and Comment 58, it might be nice if WebRender supports partial invalidation without document split.

This is a modification of the previous test case. It changes the background color of body subtly every time the jumping green box moves. In chrome with '--ui-disable-partial-swap' this modification makes the problem much less likely to happen (if at all). However, Firefox still readily shows the problem. This is somewhat surprising to me.

Duplicate of this bug: 1573050

Alexis and I talked through this today and it seems like what's going on is that when we're using partial present, doing full window presents are rare enough that we don't ever hit the bad path.

Per bug 1564851 comment 2, it doesn't sound like we need to track this for Fx69 anymore. Happy to take a fix if it helps with testing on Beta still, however.

Update on this bug: it sounds like MSFT is planning a fix to address this issue. We will test it out once a preview release becomes available.

When I applied windows insider program(with Fast Ring), the flickering problem was addressed. Widow version became 1903(OS Build 18956.1000).

https://blogs.windows.com/windowsexperience/2019/08/07/announcing-windows-10-insider-preview-build-18956/#1x2ojeWLhkdKzYkW.97
https://zillowtech.com/windows-10-20h1-preview-builds.html

This just affected me after upgrading to 1903. Disabling gfx.webrender.dcomp-win.enabled fixed it. Are there any negative consequences to that flag?

Given that the Windows fix is in the 20H1 preview release, does this mean the fix won't be available for at least another 8 months?

(In reply to voracity from comment #66)

This just affected me after upgrading to 1903. Disabling gfx.webrender.dcomp-win.enabled fixed it. Are there any negative consequences to that flag?

Only known problem was performance decrease.

Given that the Windows fix is in the 20H1 preview release, does this mean the fix won't be available for at least another 8 months?

Installing KB4512941 seemed to address the problem for me. It was released on August 30. :voracity, can you check if the problem is addressed with it?

https://support.microsoft.com/en-us/help/4512941/windows-10-update-kb4512941

Flags: needinfo?(subs)

Thanks Sotaro! I can confirm that updating with KB4512941 fixed the problem for me.

Flags: needinfo?(subs)

Good. Thanks for the confirmation!

Installed KB4512941 and the flickering seems to have been solved. However, now I can see a slight choppiness on WebRender when scrolling on some pages (e.g: euronews.com).

(In reply to Dan Ceban [:okazki98] from comment #70)

Installed KB4512941 and the flickering seems to have been solved. However, now I can see a slight choppiness on WebRender when scrolling on some pages (e.g: euronews.com).

Do you see a difference in the choppiness if you toggle gfx.webrender.dcomp-win.enabled?

Flags: needinfo?(okazki98)

The choppiness might be related to Bug 1569881 . It might be better to remove the workaround since KB4512941 fix.

Created Bug 1578605 for removing a workaround of Bug 1569881.

Depends on: 1578605

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

(In reply to Dan Ceban [:okazki98] from comment #70)

Installed KB4512941 and the flickering seems to have been solved. However, now I can see a slight choppiness on WebRender when scrolling on some pages (e.g: euronews.com).

Do you see a difference in the choppiness if you toggle gfx.webrender.dcomp-win.enabled?

There's no noticeable difference in choppiness when toggling gfx.webrender.dcomp-win.enabled.

Flags: needinfo?(okazki98)
Duplicate of this bug: 1576166

Closing because this is fixed by KB4512941

Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Duplicate of this bug: 1562219

I just updated to 70.0b5 and I'm seeing this again (or something very, very similar). Windows 10 v1903 build 18362.295, Intel HD Graphics 620. Has to be a regression from b4 to b5

Will, do you have KB4512941 installed?

Flags: needinfo?(billdillensrevenge)

I can't find KB4512941 in the update history but I updated to OS build 18362.356 and it seems fine now

Flags: needinfo?(billdillensrevenge)

Thanks Will!
We also couldn't reproduce this on OS build 18362.356. Therefore, marking it as verified - fixed.

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.