Closed Bug 1200537 Opened 9 years ago Closed 9 years ago

Memory leak since Firefox 40 in conjunction with D3D11 WARP (Microsoft Basic Display Adapter)

Categories

(Core :: Graphics, defect)

40 Branch
x86_64
Windows
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1179504

People

(Reporter: a.schmidt.public, Unassigned)

Details

(Whiteboard: [MemShrink], gfx-noted)

Attachments

(1 file)

Attached file memory-reports.zip (deleted) —
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Build ID: 20150826023504 Steps to reproduce: After several diagnoses, we found the following facts: - about:memory indicates a very high vsize consumption. Our web application remains constant under 100MB. - The problem occurs only since Firefox 40. We could not reproduce it with previous versions. - If we disable hardware acceleration, the problem disappears. - We can only reproduce the problem on computers running the "Microsoft Basic Display Adapter" as graphics card. - The trigger in our web application is a timer that updated a label once per second. The Label is used to show the session timeout. Otherwise, the website is complex but static. - During measurements no interaction took place on our website. - Scaling up the Firefox window appears to correlate with the memory growth. Once the session label is no longer visible by scaling down the window, the memory usage does not increase further. - After changing to a different web page, the used memory seems not to be released. Unfortunately, we have not found any public website yet, with which we can reproduce the problem. Our web application is currently not open to the public, because it is used only as a front-end for managing our back-end software. If necessary, I could see if we can provide a version of our software. However, this version has to be installed by an installer. The appendix contains the following memory reports: - Before starting the web application: Memory-report (initial) - Shortly after the start of the web application: Memory-report (1) - About 8 minutes after the start of the web application: Memory-report (2) Actual results: Starting with Firefox 40 it seems there is a massive memory leak, when we are running our web application. The consumption increases per second partially to several megabytes until Firefox is barely operable. Expected results: The memory usage should be constant.
OS: Unspecified → Windows
Hardware: Unspecified → x86_64
Could you type about:support in the location bar and copy the section "graphics", it would give useful details about your system. In addition, if it worked in the previous versions of Firefox, you can install the tool Mozregression to find a possible regression range. See http://mozilla.github.io/mozregression/install.html for details (install the command line version). Just rune the command "mozregression --good-release 39".
Whiteboard: [MemShrink]
Flags: needinfo?(a.schmidt.public)
From memory-report (2).json in the attachment: 4,095.94 MB (100.0%) -- address-space ├──3,330.66 MB (81.32%) -- commit │ ├──3,113.11 MB (76.00%) -- private │ │ ├──3,107.12 MB (75.86%) ── readwrite [2626] When I see huge vsize but tiny explicit (160mb) I suspect graphics memory in some way. Does this suggest the graphics driver is using the memory?
Flags: needinfo?(jmuizelaar)
From the description, it sounds like a surface is being created, likely window-sized, whenever the label is updated. This surface is then either leaked or just not being freed, either by us or by the underlying driver.
(In reply to Timothy Nikkel (:tn) from comment #2) > From memory-report (2).json in the attachment: > > 4,095.94 MB (100.0%) -- address-space > ├──3,330.66 MB (81.32%) -- commit > │ ├──3,113.11 MB (76.00%) -- private > │ │ ├──3,107.12 MB (75.86%) ── readwrite [2626] > > When I see huge vsize but tiny explicit (160mb) I suspect graphics memory in > some way. Does this suggest the graphics driver is using the memory? That's very possible. Tracking these things down is not always very easy, especially without being able to reproduce.
Flags: needinfo?(jmuizelaar)
> When I see huge vsize but tiny explicit (160mb) I suspect graphics memory in > some way. Does this suggest the graphics driver is using the memory? Yes, especially because of this: > - If we disable hardware acceleration, the problem disappears. The "Microsoft Basic Display Adapter" seems to be a safe fallback gfx driver that is used in some cases -- see https://msdn.microsoft.com/en-us/library/windows/hardware/Dn653353%28v=VS.85%29.aspx. I don't have a good sense of how commonly it is used. If it's common then that makes this bug a higher priority.
We have currently three systems on which we can reproduce the problem (see System1 to System3 below). The evaluation of the about: support data has brought us new insights: The problem occurs when you are using Remote Desktop Connection on a system and when the physical video card drivers (for example, the "Microsoft Basic Display Adapter") has apparently special properties. It seems that the Remote Desktop Connection triggers the problem and the "Microsoft Basic Display Adapter" only creates the corresponding error-prone environment and does not have to be installed necessarily. Here is the requested information: System 1 (memory leak occurred): ============================= - Graphics card: Microsoft Basic Display Adapter - Remote Desktop Connection used. Grafik Asynchrones Wischen und Zoomen: nichts Direct2D aktiviert: Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. DirectWrite aktiviert: false (6.3.9600.16384) Geräte-ID: 0x0000 GPU #2 aktiv: false GPU-beschleunigte Fenster: 1/1 Direct3D 11 WARP (OMTC) H264-Hardware-Dekodierung unterstützt: false Karten-Beschreibung: RDPUDD Chained DD Karten-RAM: Unknown Karten-Treiber: RDPUDD Subsys-ID: 00000000 Vendor-ID: 0x0000 WebGL-Renderer: Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. windowLayerManagerRemote: true AzureCanvasBackend: skia AzureContentBackend: cairo AzureFallbackCanvasBackend: cairo AzureSkiaAccelerated: 0 System 2 (memory leak occurred): ============================= - Graphics card: Microsoft Basic Display Adapter - Remote Desktop Connection used. Grafik Asynchrones Wischen und Zoomen nichts Direct2D aktiviert Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. DirectWrite aktiviert false (6.3.9600.16384) Geräte-ID 0x0000 GPU #2 aktiv false GPU-beschleunigte Fenster 1/1 Direct3D 11 WARP (OMTC) H264-Hardware-Dekodierung unterstützt false Karten-Beschreibung RDPUDD Chained DD Karten-RAM Unknown Karten-Treiber RDPUDD Subsys-ID 00000000 Vendor-ID 0x0000 WebGL-Renderer Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. windowLayerManagerRemote true AzureCanvasBackend skia AzureContentBackend cairo AzureFallbackCanvasBackend cairo AzureSkiaAccelerated 0 System 2 (no memory leak): ============================= - Graphics card: Microsoft Basic Display Adapter - Direct access to the system. Remote Desktop Connection _not_ used. Grafik Asynchrones Wischen und Zoomen nichts Direct2D aktiviert true DirectWrite aktiviert true (6.3.9600.16384) Geräte-ID 0x0f00 GPU #2 aktiv false GPU-beschleunigte Fenster 1/1 Direct3D 11 (OMTC) H264-Hardware-Dekodierung unterstützt false Karten-Beschreibung Microsoft Basic Display Adapter Karten-RAM 0 Karten-Treiber Unknown Subsys-ID 00000000 Treiber-Datum 6-21-2006 Treiber-Version 6.3.9600.16384 Vendor-ID 0x10de WebGL-Renderer Google Inc. -- ANGLE (Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0) windowLayerManagerRemote true AzureCanvasBackend direct2d 1.1 AzureContentBackend direct2d 1.1 AzureFallbackCanvasBackend cairo AzureSkiaAccelerated 0 System 3 (memory leak occurred): ============================= - Graphics card: Virtual Machine with _another graphics card_ (no Microsoft Basic Display Adapter) - Remote Desktop Connection used. Grafik Asynchrones Wischen und Zoomen nichts Direct2D aktiviert Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. DirectWrite aktiviert false (6.3.9600.17795) Geräte-ID 0x0000 GPU #2 aktiv false GPU-beschleunigte Fenster 1/1 Direct3D 11 WARP (OMTC) H264-Hardware-Dekodierung unterstützt false Karten-Beschreibung RDPUDD Chained DD Karten-RAM Unknown Karten-Treiber RDPUDD Subsys-ID 00000000 Vendor-ID 0x0000 WebGL-Renderer Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. windowLayerManagerRemote true AzureCanvasBackend skia AzureContentBackend cairo AzureFallbackCanvasBackend cairo AzureSkiaAccelerated 0 System 4 (no memory leak): ============================= - Graphics card: ATI FirePro V3700 (no Microsoft Basic Display Adapter) - Remote Desktop Connection used. Grafik Asynchrones Wischen und Zoomen: nichts Direct2D aktiviert: Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. DirectWrite aktiviert: false (6.2.9200.17461) Geräte-ID: 0x0000 Geräte-ID (GPU #2): 0x95cc GPU #2 aktiv: false GPU-beschleunigte Fenster: 0/13 Basic (OMTC) Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. H264-Hardware-Dekodierung unterstützt: false Karten-Beschreibung: RDPDD Chained DD Karten-Beschreibung (GPU #2): ATI FirePro V3700 (FireGL) Karten-RAM: Unknown Karten-RAM (GPU #2): 256 Karten-Treiber: RDPDD Karten-Treiber (GPU #2): atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64 Subsys-ID: 00000000 Subsys-ID (GPU #2): 0000000c Treiber-Datum (GPU #2): 8-17-2009 Treiber-Version (GPU #2): 8.632.1.2000 Vendor-ID: 0x0000 Vendor-ID (GPU #2): 0x1002 WebGL-Renderer: Wurde auf Grund Ihrer Grafikkarte blockiert, da ungelöste Treiberprobleme bestehen. windowLayerManagerRemote: true AzureCanvasBackend: skia AzureContentBackend: cairo AzureFallbackCanvasBackend: cairo AzureSkiaAccelerated: 0 Mozregression Results: ======================== 2:49.22 LOG: MainThread Bisector INFO Pushlog: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=4d6d69 f0f499dfc5c67df291858feda7bd2b9eac&tochange=d0fc7202b4cbe1ac8de823ed9e1e6dad706f c4d0
Flags: needinfo?(a.schmidt.public)
That sounds like a WARP issue on Win 7 (according to your user agent), and there is bug 1179504 about a similar issue. Maybe bug 1179504 could fix your issue.
In addition: On the problematic systems (1-3) is Windows Server 2012 R2 installed. The last-mentioned system (4) where Firefox's memory usage is constant in spite of the Remote Desktop Connection is a Windows 7. System 1: User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 System 2: User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 System 3: User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 System 4: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Bug 1179504 is marked as duplicate of bug 1188831. There I have found and tested the following configuration value. If I set layers.d3d11.disable-warp to true, the problem disappears.
Summary: Memory leak since Firefox 40 in conjunction with Microsoft Basic Display Adapter → Memory leak since Firefox 40 in conjunction with D3D11 WARP (Microsoft Basic Display Adapter)
Looks like you were testing with FF40. WARP will be disabled on win7 there so the leak should go away. We will still disable it in FF42+. I think this can be resolved as being a dupe of bug 1179504. Thanks for providing us with the necessary information to investigate this!
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
Whiteboard: [MemShrink] → [MemShrink], gfx-noted
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: