Memory leak caused by viewport rendering?

I’m currently using 4.10.3 on Windows 10 and my memory usage continually climbs when the viewport has to render. This happens in all my projects, even new empty blank ones. The memory leak slows down when the editor doesn’t have focus, since the rendering rate slows down to 3fps, so it seems like a little bit of memory is leaked on each rendered frame. The memory leak increases rapidly when I have something selected in the viewport. Deselecting the object by hitting ESC slows down the memory leak. Closing the viewport stops the memory leak altogether, but the memory is not released (it just remains at its current value). Likewise, switching over to a different tab without a visible viewport will stop the memory leak. Strangely, while having a viewport tab visible, right clicking in the node editor and then left clicking in an empty location will temporarily stop the memory leak for about 10 seconds.

Hopefully these details will help someone pinpoint the bug. It’s a little inconvenient having to restart the editor every hour to prevent my computer from crashing.

Just curious if any other users are experiencing this as well. The editor is leaking about 0.5MBps to 2MBps of memory when any viewport is visible. I’d think this would be a serious concern, but maybe it’s just on my system since there hasn’t been any input into this question so far.

Hi vle07,

This sounds very similar to a memory leak that we are working on (UE-27195). It occurs when your level is not enclosed or the empty background is not occluded in some way. Levels with Atmospheric fog or a SkySphere do not encounter this issue, but an empty level will.

Can you try dropping the default SkySphere into your level and let me know if it still occurs when your camera is inside of it?

-.

The memory leak still occurs inside a skysphere and with atmospheric fog. I think the issue is actually the rendering of the UE editor itself, rather than just the viewport. Closing the viewport actually doesn’t stop the memory leak; it just appeared that way since without a viewport, the editor won’t render itself until there’s mouse movement. Once I start moving the mouse around, especially while hovering over blueprint node sockets, I will see massive amounts of memory leak (sometimes 4-8 MBps). There’s a forum thread directed at this blueprint memory leak. I think the rendering of the mouse, graph, or highlighting effects might be the culprit. The memory leaked while having a blueprint open doesn’t get released.

Strangely, I noticed that while randomly selecting various actors inside a level viewport, the editor will start leaking memory once in a while. If I just leave the mouse alone while it’s in that state, the memory will just continue leaking indefinitely. However, if I start hovering my mouse over the boxes in the details panel, the memory will get released. Because of this, I’m thinking the memory leak is due to the rendering of the editor interface.

Hi vle07,

Could you post a link to the Forum post you mentioned?

Also, please post your Dxdiag (system specs).

Forum post link: Massive memory leak in Blueprint Editor introduced with Unreal 4.9 - Blueprint - Epic Developer Community Forums

Dxdiag system specs:

Operating System: Windows 10 Pro 64-bit (10.0, Build 10586) (10586.th2_release_inmarket.160222-1549)

             Language: English (Regional Setting: English)

  System Manufacturer: Gigabyte Technology Co., Ltd.

         System Model: Z87X-UD4H

                 BIOS: BIOS Date: 06/12/14 19:44:47 Ver: 04.06.05

            Processor: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz (8 CPUs), ~3.5GHz

               Memory: 16384MB RAM

  Available OS Memory: 16318MB RAM

            Page File: 3896MB used, 13221MB available

          Windows Dir: C:\WINDOWS

      DirectX Version: 12

  DX Setup Parameters: Not found

     User DPI Setting: Using System DPI

   System DPI Setting: 288 DPI (300 percent)

      DWM DPI Scaling: UnKnown

             Miracast: Available, with HDCP

Microsoft Graphics : Not Supported

       DxDiag Version: 10.00.10586.0000 64bit Unicode

Graphics card: Nvidia GTX970

Could you choose the ‘Save All Information’ button while viewing your Dxdiag, then upload that file here? Here is some more info that it has that may come in handy (driver versions, etc).

Sure, I’ve attached my dxdiag text file. Is this issue not reproducible on your end? If so, then I wonder if it might be an Nvidia graphics driver issue with Windows 10. Their Windows 10 drivers have been pretty buggy lately.

link text

Yeah, most memory leaks end up being linked back to graphics card drivers. It looks like you are a few versions behind, could you try updating to the latest official (not BETA) driver and see if the memory leak continues?

I haven’t been able to get your results on my machine but I am also using a AMD card. Once you test on the latest drive we can better narrow down the cause. If it is still happening, I will see about reproducing it internally on similar hardware.

I updated my graphics driver to the latest official release, but I’m still getting the same pattern of memory leak. Working with the blueprint editor seems to cause the largest amount of memory leak. Does anyone at Epic have an Nvidia graphics card (preferably a GTX 970)? Sometimes, older graphics drivers are more stable, so if you know of a working driver version, I could try rolling back to that version.

I’m working with another tech here that is going to try testing this on a Nvidia card similar to yours. We’ll post back with the results as soon as we have them.

Hello vle07,

Are you running the editor with the -dx12 commandline argument to launch the editor in DirectX 12? I’ve been testing this a bit with the closest card we have to the 970, which is a 980ti. I’ve seen a slight memory leak when in DirectX 12 but nothing in the default editor.

I’m just running the editor through the default launcher. Launching it via commandline with the -dx12 argument produces the same type of memory leak. I am running on a 4k monitor if that makes any difference, but regardless of the actual window size, I still get the memory leak. For me, the most noticeable leak occurs when I have a blueprint node editor window opened next to the main editor window with a game viewport visible. Just moving my mouse around in the node editor will cause memory to start leaking. I’ll try asking around in the forum thread I mentioned earlier to see what type of hardware others are using. Maybe there’s a common link.

Hello vle07,

Have you found any type of common link that could point to this problem? I haven’t had any luck reproducing any of the memory leak issues as of yet, I can’t get the slight leak I saw in dx12 to happen anymore either.

Just to cover all of our bases, have you tried the 4.11 preview to see if you get the same issue there or changing your resolution on your monitor to 1080p or 1440p temporarily to see if the 4k resolution could be causing the problem?

I tested 4.11 preview and so far it seems like the issue is fixed, at least for me. The memory is actually being released in 4.11, unlike 4.10. Do you suggest I migrate my projects over to 4.11 preview?

In regards to the memory leak in 4.10, I’ve tried switching to 1080p, but I still get the leak. I’ve also tried on another computer with a GTX970, and I get the same leak. Then I tried with an AMD Radeon graphics card, and I still get the leak (though it might be a little slower, maybe just due to the graphics card rendering at a slower frame rate). I still haven’t gotten any responses from others on the forum.

Considering that the memory leak happens on multiple systems with different graphics cards, the leak might not be due to the graphics drivers (and also because 4.11 preview doesn’t have the leak). When comparing 4.10 to 4.11 preview, it just seems like 4.10 doesn’t free up memory. If I close editor tabs and windows, I’d expect the memory usage to drop, but it never does. On the other hand, 4.11 preview actually does free up memory constantly.

I’m glad to hear that it isn’t happening in the Preview. I would never suggest to actively develop in a preview version of the engine as the architecture is always changing and it is much less stable than release builds. If possible, I would suggest sticking with 4.10.4 until 4.11’s official release. If you do need to upgrade however, be sure to keep your copies of your build from 4.10 instead of converting them directly, just in case anything goes wrong.

Thanks for your help! Is there a release date set for 4.11 (or maybe just some rough estimate)? I noticed that it launches much faster to mobile devices, so I might just switch to it to speed up my development process.

We haven’t announced a release date as of yet, but it shouldn’t be much longer. Unfortunately I can’t be any less vague as a time has not yet been set in stone.