Memory usage problem on SwapChain.ResizeBuffers

Started by
-1 comments, last by MariusBellum 10 years, 10 months ago

Hi. This is my first post in these fórums. I hope this is the right subforum for this question.

I'm making a world editor in C# + SharpDX. It may have multiple windows, multiple views of the scene and other 3D views. For this to work, I have a GraphicsManager that initializes and manages a single DX11 Device,

and one RenderContext encapsulating Backbuffer, Depth buffer, etc., for each of the windows.

My problem seems to not be directly related to SharpDX, but to DirectX and/or Windows. The problem is that, as I resize a Window, the RenderContext of that window resizes the SwapChain with SwapChain.ResizeBuffers. It works very well, but the old buffers (backbuffer, Z-buffer and their views) seems to not be correctly released (even releasing explicitly through Dispose). The effect of this is that, although my program works ok, Windows process DWM.exe has a very high memory usage after several of these resizes. Normally DWM in my computer is around 15-30MB, but my program makes it fire up to 1GB+. You can perfectly see how the memory usage increases in Task Manager as you resize the window!

So, is there some way to prevent or mitigate this effect?

I already thought about not resizing on every OnResize event, but this doesn't solve the problem, only slows it.

I'd appreciate any help or advice. Thanks.

This topic is closed to new replies.

Advertisement