DirectX 11 has vertex buffer slots that you specify [0-15] when you bind vertex buffers to the context/device. I'm really not sure how they're used beyond actually setting them as none of the draw calls have slot numbers tied to them. I just don't know where they factor in.
How do you make use of buffers in different slots?
for example, you could use multiple vertex buffers for:
- geometry instancing. Ie. having your 3d model bound to stream 0 and your instancing data (matrices etc) to stream 1
- having set of attributes in the second vertex buffer, which may or may not be needed for rendering a specific 3d-model.
I have used multiple VBs mostly for geometry instancing.