4.19 & 4.20 Editor & Packaged Games Have Hangs/Hiccups Constantly

Well, it is known that it happens on nvidia cards with a driver newer than 385.69 (387.92 (October 9, 2017) or newer).
In my test project, with some material billboards, I also get increasing ram usage with geforce 660 3gb (driver 391.35).

Results from “memreport -full”, Can post full logs if needed.
Used UE4.19.2, But did some browsing in Firefox 60.0.1 x64 in the forground
There does not seam to be any memory leak happening for me.

Hardware:
OS: Win8
CPU: AMD FX 8120
GPU: AMD HD 7770
GPU Driver: 14.4 (This is actually the latest version for Win8)
RAM: 12GiB 1333 (1x 4GiB, 1x 8GiB)

START:
Time Since Boot: 32.23 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 823.36 MB used, 823.36 MB peak
Process Virtual Memory: 771.26 MB used, 774.73 MB peak
Physical Memory: 7445.89 MB used,  4812.25 MB free, 12258.14 MB total
Virtual Memory: 1411.13 MB used,  4812.25 MB free, 8388608.00 MB total

END:
Time Since Boot: 1543.30 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 829.71 MB used, 859.92 MB peak
Process Virtual Memory: 775.23 MB used, 775.23 MB peak
Physical Memory: 7969.13 MB used,  4289.02 MB free, 12258.14 MB total
Virtual Memory: 1401.49 MB used,  4289.02 MB free, 8388608.00 MB total

Diff:
Runtime: ~25:45

Process Physical Memory: 6.35 MB used, 36.56 MB peak
Process Virtual Memory: 3.97 MB used, 0.5 MB peak
Physical Memory: 523.24 MB used, 523.25 MB free, 0 MB total
Virtual Memory: 9.64 MB used,  523.23 MB free, 0 MB total

Pre PIE:


Time Since Boot: 55.41 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 992.73 MB used, 1130.20 MB peak
Process Virtual Memory: 1522.75 MB used, 1597.25 MB peak
Physical Memory: 10419.78 MB used,  5913.88 MB free, 16333.66 MB total
Virtual Memory: 2280.75 MB used,  5913.88 MB free, 134217728.00 MB total


Post PIE:



Time Since Boot: 261.24 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 1261.64 MB used, 1418.07 MB peak
Process Virtual Memory: 1710.06 MB used, 2019.96 MB peak
Physical Memory: 10562.82 MB used,  5770.84 MB free, 16333.66 MB total
Virtual Memory: 2476.56 MB used,  5770.84 MB free, 134217728.00 MB total


On a 1070 with newish drivers.

385.69 is the last driver, that does not have the. With this driver installed, those, who experienced hitches and memory leak in test project or any other projects, should not have those problems.

But that is not what it is about.

There is a screw-up, that broke the engine for all newer drivers(read all as 390.65 and 397.64. I did not check the others). somewhere between 4.18.1 and 4.19.0 and that needs more or less urgent hotfixing, as I see it at least.

I’d be grateful for any pointers, which change in particular is to blame.

Also, what about the same occurring on iOS, as mentioned by @-H ?

I don’t know… I’ve seen issues, with the newer drivers, in other games/engines. Things like hitching, stutter and microstutter, that all go away when I roll back to 385.69. I’m really starting to think this is an Nvidia driver and not an Epic.

As for the iOS, there isn’t enough information to really judge it by. -H might just have a bad loop or something with the game. It might be related, it might not be related. This would be one of those test questions where the answer would be D) Not enough information. He’d need to try your sample map, drop the loop count to something more reasonable for a mobile platform, like 10, then perform the same test. Otherwise, his iOS symptoms are anecdotal.

Ran a bit longer test on my 2 computers. Laptop and desktop both running driver 397.64. I lowered the iterations down to 20 so I could keep both under the same load.

Laptop:

Time Since Boot: 17.71 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 783.17 MB used, 870.22 MB peak
Process Virtual Memory: 1052.93 MB used, 1160.02 MB peak
Physical Memory: 5396.96 MB used, 10912.34 MB free, 16309.30 MB total
Virtual Memory: 5973.20 MB used, 10912.34 MB free, 134217728.00 MB total

Time Since Boot: 1075.99 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 1023.11 MB used, 1297.11 MB peak
Process Virtual Memory: 1323.19 MB used, 1598.73 MB peak
Physical Memory: 5481.00 MB used, 10828.30 MB free, 16309.30 MB total
Virtual Memory: 6233.93 MB used, 10828.30 MB free, 134217728.00 MB total

240MB over 1,059s
=0.23MB/s
~rounding…etc.


Desktop:

Time Since Boot: 13.75 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 802.79 MB used, 881.27 MB peak
Process Virtual Memory: 1096.98 MB used, 1194.72 MB peak
Physical Memory: 6729.58 MB used, 9603.04 MB free, 16332.62 MB total
Virtual Memory: 1889.63 MB used, 9603.04 MB free, 134217728.00 MB total

Time Since Boot: 886.86 Seconds

Platform Memory Stats for Windows
Process Physical Memory: 1679.29 MB used, 2568.29 MB peak
Process Virtual Memory: 1973.91 MB used, 2865.66 MB peak
Physical Memory: 7549.80 MB used, 8782.82 MB free, 16332.62 MB total
Virtual Memory: 2780.58 MB used, 8782.82 MB free, 134217728.00 MB total

877MB over 873s
=1.005MB/s

So same driver, same engine version, same project, the only real differences is general strength of computing power. For some reason the more powerful machine is leaking 4x as fast as the other one.

This stuff is out of my wheelhouse, but is there any possible connection to windows? I had a piece of software that was heavily affected by a meltdown/spectre patch that kinda showed similar symptoms. (not sure on the mem leak, referring to the stutter specifically)

It revolves around driver, but a fact, that it is a regression, speaks that the driver is not the cause.
Should be a change in the engine or any of its third party dependencies.

NVIDIA forums have a 40 page long thread of complaints about stuttering on driver, that follows 385.69.
A more or loss overall consensus was that it is caused by polling GPU power via nvapi.
But no word on memory leak. Seems unrelated. Besides, it would be pretty strange, if such major was ignored by Nvidia, if it existed.

Fornite memory leak regression complaints(like this one) are all over the place though.

Number of UE4 devs or end-users, suffering from the, is unclear. With current theory, it should be everyone with nvidia gpu, running post 385.69 driver.
20 votes on the tracker UE-58676 and UE-57557 and just a few people posting here and mere fact that Epic could not miss such major regression during QA(or could they?), kinda hints that there is something else in the formula.

This is leaking RenderTarget memory in the editor. The blueprint in your BugMap that copies RenderTargets is causing a leak.

If you run the map standalone outside the editor, it doesn’t leak. I suspect this is due to a difference in the way the editor and the game handle garbage collection.

It’s hard to say for sure, but there are many people out there, FAR more experienced in the matter than we are, looking into these issues. Both on the Epic end and the Nvidia end. Keep in mind that both of these companies are probably worth billions, so I’d imagine they hire some “above average” programmers.

All I know is that I have zero problems with memory leaking on either of my laptops. One of which has a 540m and the other is a 940m (both of them are using the 385.69 drivers). I will try to retest again with the newest drivers and see if there’s any memory leaking. I do know that there is a massive dip in frame time and it feels like there’s a lot of stutter, from when I previously tried the drivers, but I’m curious if the leaking occurs or not.

I thought about that as well, but if it’s a leak, then it should per persistent among all people using the editor. The editor does have a pretty strange way of handling GC though, but that shouldn’t make a difference when you play it in standalone.

The people posting test results are showing standalone results, not PIE results.

Negative. Cooked project yields same results.

On which platform?

W7

Not doubting proficiency of anyone related at all.
However, not so sure that relevant information reaches ones concerned without undue distortions.

Would not be posting here, if there was a proper entry on public tracker about regression, or known information regarding incompatibility of new engine versions with certain hardware or software.

Btw, quite possible, that UE-58673 might be also related to the discussed here.

It seems related, voted that too btw.

Don’t forget the one with mesh particles too.

Same problem here. Installing nvidia drivers 385.69 works, no more fps stutter after that.

Hey Kalvothe,

Thanks for looking into this.
Do you have any updates on this topic by any chance, or is waiting for 4.21 our only option right now?

I find some really odd behavior on iOs. I added 50 mesh particle emitter that each has 8 particle meshes. So 400 meshes each with 500vertices. Performance was better than without those emitters. Can’t really pinpoint the exact reason. Need to do more testing.

I rolled back to 385.69, but after an hour the RAM still gets up to 4k and I still experience hiccups/stuttering. I should mention that I work in Cascade/Material editor. Furthermore, even with console command t.maxfps 35, the fps goes up to 40 after a while for no reason.

4.20p1 is also leaking 2mb per second.