Closed Bug 1576166 Opened 4 months ago Closed 3 months ago

Time Travelling Compositor Bug - Now On Nvida!

Categories

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

x86_64
Windows 10
defect

Tracking

()

RESOLVED DUPLICATE of bug 1556634

People

(Reporter: Gankra, Unassigned)

References

Details

Attachments

(1 file)

Attached file about-support.txt

Came into the office this morning, booted up my fully updated windows 10 laptop, got prompted for an OS update, and installed it. I now have the time-travelling compositor bug! That is, the same issue described in Bug 1556634 and Bug 1525084.

The most distressing part: firefox is using my NVIDIA Quadro M2200, and not the Intel Graphics!

I also see it with and without webrender!

about:support attached with some hardware/software details, more details in notes section.


STR:

  • Have firefox be a non-fullscreen window
  • Type quickly and erratically in the awesome bar (small fast bursts)

result: browser occasionally shows an old frame, making text occasionally "jump back" (visually erasing some characters for a moment; or if hitting backspace, making them reappear).


Notes About System Configuration:

  • Windows Version: "10.0.18362 (build 18362)" AKA "OS build 18362.295" AKA "Windows 10 Pro Version 1903"
  • Displays:
    • Builtin Lenovo P51 Laptop Display:
      • 3849 x 2160 @ 60 Hz
      • scale 250%
      • "connected to" Intel(R) HD Graphics P630 (!!!!)
    • HDMI-connected DELL U2410:
      • 1920 x 1200 @ 60 Hz, rotated in portrait
      • scale 100%
      • "connected to" NVIDIA Quadro M2200
  • NVIDIA Control Panel: Overridden to use NVIDIA for Firefox

Notes from testing what causes the issue:

  • If I move the window to the DELL U2410, the issue goes away. If I move the same window back to my laptop display, the issue resumes!
  • On my native laptop display, if the window is maximized and the taskbar is hidden (so firefox is covering every pixel), the issue goes away
  • If I go into the NVIDIA panel and force firefox to use Integrated Graphics, the issue goes away. Moving the intel-controlled window to the NVIDIA-controleld display does not cause the issue.
  • Setting the native display to have "scale: 100%" does not fix the issue
  • Setting the secondary display to be in landscape does not cause it to start having the issue
  • Disabling the Intel GPU at the OS level (causing windows to use some sort of software fallback), causes the issue to go away (unsurprising).
  • Disabling the secondary display does not fix the issue.

We may need to blacklist a bunch of nvidia hardware for WR 😿

Blocks: wr-69
OS: Unspecified → Windows 10
Priority: -- → P1
Hardware: Unspecified → x86_64
Version: unspecified → Trunk

Hmm weird, my windows version, 10.0.18362, seems to be dated as March 2019. Did they... downgrade me? Or was my laptop just not getting this update for some reason?

Seems to be the same version Sotaro is saying fixed the issue on intel: https://bugzilla.mozilla.org/show_bug.cgi?id=1556634#c65

Wait no, the "good" build is 18956, and is still only insider.

!!!! I see this bug without webrender as well! (Compositing: Direct3D 11)

Bisection results:

WR: basically broken forever, stopped looking as I entered January 2019

D3D11: https://hg.mozilla.org/mozilla-central/log?rev=f3c2a720%3Ada2b564f
LAST GOOD: f3c2a720
FIRST BAD: da2b564f

Notably Commit In This Range:

e8d2d9aff5026ef1f1777b781b47fdcbdb9d8f20: Bug 1547775: Enable double buffering on D3D11 compositors. r=mstange
Bas Schouten <bschouten@mozilla.com> - Mon, 29 Apr 2019 18:38:15 +0000 - rev 471846

As expected, this bug appears to be triggered by how we use the OS compositor.

(I have been editing new notes into the original bug description so that all the details are in one place)

DISCLAIMER: I know very little about Hardware and OS Compositors, so this may be wild and inaccurate speculation.

There appears to be an interesting situation going on, which makes sense in retrospect, but that I also never really thought about until now.

Intel Graphics drives the monitor, but NVIDIA drives the firefox window, and this seems to be required to trigger the issue!

Windows is very certain that my builtin display is "connected to" my Intel GPU, while if I connect an external display via HDMI, windows says my that one is "connected to" my NVIDIA GPU. This makes sense to me: things like HDMI ports tend to be physically part of discrete gpu packages, and not the motherboard. So seemingly the native laptop display is physically connected to the Intel GPU: again, this makes sense, it's desirable to be able to completely disable the discrete GPU for performance reasons.

However NVIDIA nonetheless ends up "driving" my firefox windows regardless of what monitor they're connected to (firefox reports in about:support that it's using the NVIDIA GPU and not the Intel one, although it sees both). The NVIDIA Control Panel reflects this: it says Firefox should use the "high performance NVIDIA processor".

The bug goes away if I do any of the following:

  1. Change the NVIDIA Control Panel to make Firefox use the integrated graphics (and restart firefox).
  2. Move the firefox window to the external display that is "connected to" my NVIDIA GPU.
  3. Have the firefox window cover every pixel on the builtin laptop display (maximized with a hidden windows task bar).

All 3 of these point me to a theory: the bug only occurs when my Intel GPU is compositing a firefox window drawn by my NVIDIA GPU. Looking at the 3 things that fix the issue:

  1. Removes NVIDIA from the picture. (note: an intel window on the NVIDIA display does not have any issues)
  2. Removes Intel from the picture.
  3. Potentially enters a fast-path where Intel is bypassed and NVIDIA performs final composition.

Closing because false alarm

Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1556634
You need to log in before you can comment on or make changes to this bug.