cancel
Showing results for 
Search instead for 
Did you mean: 

OpenGL & Vulkan

djiz
Journeyman III

DirectX11 and RAM usage

Jump to solution

Hi,

I've recently moved my application from DirectX9 to DirectX11 and I've noticed that it now uses a huge amount of RAM when launched with an ATI graphic card (tested either on a HD 7950 and on a HD 5700), a lot more than the DirectX9 version, and also a lot more than the same application launched with a graphic card from another IHV (need I to mentioned it ? )....from 2 to 3 times larger.

This is annoying as the application is a 32-bit, and so the memory size limit is easily reached.

After further investigation, I've tested on a DirectX11 sample to create several vertex buffers, vertex shaders, etc.... and observed exactly the same behavior of ATI using 2 or 3 times as much as memory. So I think that these memory loses could come from the driver.

Could you give me informations or advices about ATI memory management with DirectX11 resource creation ?

Thanks.

0 Kudos
Reply
1 Solution

Accepted Solutions
djiz
Journeyman III

Re: DirectX11 and RAM usage

Jump to solution

Ok, for people interested in, I've found that this heavy memory use was due to having most of my vertxbuffers and indexbuffers flagged as DYNAMIC usage (it was a temporary workaround in my app). Moving them to IMMUTABLE leads to a memory use quite similar to other non-ATI cards.

I guess ATI driver choose to keep all dynamic resources exclusively in RAM (or duplicated both in RAM and VRAM) - which makes sense as dynamic resources must be optimized for CPU access - while non-ATI doesn't.

View solution in original post

0 Kudos
Reply
1 Reply
djiz
Journeyman III

Re: DirectX11 and RAM usage

Jump to solution

Ok, for people interested in, I've found that this heavy memory use was due to having most of my vertxbuffers and indexbuffers flagged as DYNAMIC usage (it was a temporary workaround in my app). Moving them to IMMUTABLE leads to a memory use quite similar to other non-ATI cards.

I guess ATI driver choose to keep all dynamic resources exclusively in RAM (or duplicated both in RAM and VRAM) - which makes sense as dynamic resources must be optimized for CPU access - while non-ATI doesn't.

View solution in original post

0 Kudos
Reply