I am writing a planet renderer using around 800 regular grids to store different terrain patches at various LOD. As you are moving around, the patches get recycled and populated with new data. Right now, I am using one large VBO and then update individual patches using glBufferSubData. I have read conflicting reports about whether it would not be better to use 800 different, albeit much smaller VBOs and then update each with glBufferData. On the one hand, I heard that glBufferSubData causes synchronization issues. But on the other hand, switching between many smaller VBOs also causes performance problems.
What’s the best thing to do here?