Static Indexbuffer vs. Batching

I know that the number DrawIndexedPrimitive calls should be minimized. But what to do if you've a large number of different moderate sized objects (like Quake3 brushes).
Is it better to use a static indexbuffer and to call DrawIndexedPrimitive for every object or to use a dynamic indexbuffer that is filled with the indices of all objects that could be drawn at once ? The dynamic version requiered a lock, but only one DrawIndexedPrimitive for a large number of objects.
Thanks.

[498 byte] By [LarsMiddendorf] at [2008-2-20]
# 1
Both, in different circumstances. I would implement the simplest method (static IBs), try it out, and see if performance is good enough. If not, try it the other way and see if it helps. there will probably be many many other things to worry about first :-)
A very very rough guideline is if you have a mesh with fewer than 500 tris, you might want to look at batching them together. But it can easily vary by an order of magnitude according to hardware, driver, CPU, etc.
TomForsyth at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: Graphics...
# 2
Thanks.I will then implement a variable threshold for index batching.
LarsMiddendorf at 2007-9-9 > top of Msdn Tech,Game Technologies: DirectX, XNA, XACT, etc.,Game Technologies: Graphics...