   Dynamic vertex buffer or user pointer?
  In my app, I create a primitive on the fly.  Currently I use DrawPrimitiveUP to render it, but I remember reading a while ago a paper from NVIDIA that says never use DrawPrimitiveUP.  I can no longer find the paper and can't remember any reasons they gave for not using this method.So the question is, should I create a vertex buffer with D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, or, should I use DrawPrimitiveUP?My dynamic mesh may have upwards of 10K vertices.   
  If you are concerned about performance, don't use DPUP. A broad description is that because it takes a user pointer which points to system memory it has to bring the data accross to the graphics card, rather than render it from a cache.Always prefer the dynamic buffer approach.   ;  DrawPrimitiveUP() will effectively be creating that dynamic buffer for you behind your back. Therefore the question more accurately becomes whether you can do a better job of it [smile]Chances are you can as you have domain knowledge to exploit so you can pick the appropriate flags and architect your software for optimal use.Ultimately, it shouldn't be too hard to verify the differences and given how complex performance is with D3D some cold hard numbers will prove more than any of us can speculate on...hthJack   ;  Just a semi-related hint...For Dynamic VB's you'll want to use PIX (or better yet, a vendor-specific profiling tool like PerfHUD) to make sure you're not stalling the GPU too much.  On PIX stalls will show up as red on the frame graph.   