1 Reply Latest reply on Apr 5, 2012 3:27 AM by djiz

    DirectX11 and RAM usage

    djiz

      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.

        • Re: DirectX11 and RAM usage
          djiz

          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.