Original Post
Hi all, I use a static vertex/index buffer(DX9), but once in a while, I need the vertex data on the CPU for calculations (decal generation etc.). Now, it is in general adviced to use the D3DUSAGE_WRITEONLY as it would be faster. Also, locking would be expencive. When creating a static buffer with the D3DPOOL_MANAGED flag, i understood that directX will always keep a copy in system memory. So, I was thinking, why would locking such a buffer for reading cause a performance penalty? DirectX could simply pass me the pointer to the system memory because I promised not to change the content. I am asking, because it would be a waste of system memory to store the vertex data one extra time, if directX already has a system copy somewhere. So, if it does not reduce the performance, i rather just read from this copy. Regards, Dietger