Direct3DHook icon indicating copy to clipboard operation
Direct3DHook copied to clipboard

Memory leak on screenshot

Open koperamichal opened this issue 3 years ago • 5 comments
trafficstars

Hello, it seems there are some memory leak issues again. I downloaded and built TestScreenshot sample, injected to Direct3D 11 game, captured 1000 images and it caused ~200MB memory leak in target process. I tested it with 3 different games in windowed mode on Win10 10.0.19043 Build 19043.

koperamichal avatar May 13 '22 10:05 koperamichal

I’ll check it out, sounds like the images aren’t being released OR it is just a bit of lag for the GC, have you made any changes at all or just using the codebase unchanged

justinstenning avatar May 13 '22 10:05 justinstenning

I didn't do any changes to be sure there is no problem with my code. And I found that leak because one game took 29+GB RAM, so you could exclude GC lag.

koperamichal avatar May 13 '22 11:05 koperamichal

I had a quick run through the code, didn't find a lot.

But I'm sure that created font here, stored in a TextElement, is not disposed: https://github.com/justinstenning/Direct3DHook/blob/master/TestScreenshot/Form1.cs#L268 But I do not know the project well enough to know if there are many such objects created.

Lakritzator avatar Jun 29 '22 16:06 Lakritzator

I'm sure that font is not a issue. Problem is the leak in target process not in Test application. I tried to run it on my old computer with Win7 a there was not issue there. It might be related to win10, drivers, hooks etc. I tested only games created by Unity, so there might be problem too.

koperamichal avatar Jun 30 '22 06:06 koperamichal

@koperamichal I've looked into this quite extensively and it is definitely a problem but I can't seem to determine what is causing this exactly - I think you might be right about some driver related bits with D3D.

I did find a couple of minor leaks related to .NET remoting (leases being held, I'm looking forward to removing that in favour of a shared memory technique). I'll do some more checks and will leave this open for now.

justinstenning avatar Dec 13 '22 02:12 justinstenning