VBO and separate vertex arrays

Traditionally its been said by IHVs that having separate arrays of positions and normal data (ie not interleaved) will not affect your performance in GL (due to the driver copy that had to take place) but now given VBO it would seem that you should (As in DX) interleave your vertex data for best performance in general? Is this the case?


If you use interleaved VBOs you get a significant speed increase. In my app it was about 25%.
However i never tested this with seperate arrays (ie. one VBO holds normals and tex-coords, another VBO holds positions).

But usually it is said, that if something is dynamic, but the rest is static, you should put them in seperate buffers. I think that this may be more important than having one tightly packed array.

So, seperate your static/dynamic data, but interleave the data of each one. At least i would think this is the best solution.