Porting from DirectX 9 to DirectX 11 memory management issues

Started by
0 comments, last by Jason Z 9 years, 8 months ago

Hi,

we are currently porting an application from DX9 to DX11. We are working with geometry/vertex data that can get large (from 1 GB up to 20 GB). DirectX 9 is able to handle this well. We use managed buffers in DX9 (D3DPOOL_MANAGED). In DX11 there are no managed buffers any more, we are using D3D11_USAGE_DEFAULT (DYNAMIC or IMMUTABLE does also not work, see below).

DX9 (using D3DPOOL_MANAGED) is able to automatically determine which buffers need to be uploaded to the graphics card when no videomemory (local or non local) is available any more and keeps the other buffers in system memory.

DX11 in contrast (using D3D11_USAGE_DEFAULT or D3D11_USAGE_DYNAMIC or D3D11_USAGE_IMMUTABLE) seems to write to and read buffers from disk when no local or non local videomemory is available any more. No system memory is used. This is very, very slow and lets the whole system hang sporadically.

Interestingly I can repoduce this with all Nvidia graphics adapters using DX11 we have available (500 - 700 series) but not with Intel HD 2500 - 4000. Intel HD although slower in general is much faster in this case since they keep everything in main memory.

Can somebody please tell me if this is a diver issue, a DX11 issue or something else. Or is there a setting that avoids writing to disk and use memory instead in DX11?

We are working with Visual Studio 2013, Windows 7 and 8.1.

Thank you.

Advertisement

I haven't ever seen this type of issue (although I don't typically have such large resources). There is certainly nothing in the D3D11 spec that indicates that you have to use the hard disk as the swap buffer if you use up all the video memory. Remember that many programs (like Internet Explorer) rely on D3D11, so I would doubt that this happens also in their programs.

If it only occurs on NVidia cards, then I would say it sounds more like a driver issue. If you have a trivial reproducible case, then I could try it out on AMD hardware for you.

This topic is closed to new replies.

Advertisement