I can only speak for OpenGL and I don't know if you are using it and/or if the techniques are also available for DirectX.

First: Render as much in one draw call as possible. Batch as much objects as possible in one vbo.
You should also order the objects so that you don't need to bind the texture every time. The best would be binding one texture once per frame, draw all objects that use the texture together and the bind the next texture etc.

You can also use two vbos for your objects. One for even frames and one for odds and then switch them every frame. Then change only the one that is currently not active and update the other one once you are switching them again. This makes sure that the CPU don't needs to wait for the GPU and you can use the CPU cycles otherwise.


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com