I read on many places that BufferSubData may cause blocking if the GPU is currently using the buffer it is called on. If I am using a UBO for my view matrix, which gets updated for every object I draw since I pre-multiply the world-space to camera-space matrix with the model-space to world-space matrix, would calling BufferData actually increase performance? Since it allocates data every call, wouldn't it avoid the blocking, so the GPU would still use the previous buffer which will get deleted when its done? Or does the allocation nullify any performance benefits?