When using UBOs, we bind a uniform block to a binding point. Then we also bind the UBO to the same binding point: something like:

glUseProgram(ProgramName);
glUniformBlockBinding(ProgramName, uniformLocation, bindingPoint);
glBindBufferBase(GL_UNIFORM_BUFFER, bindingPoint, bufId);

I have 2 questions on this:

  1. should I specify glUniformBlockBinding first or glBindBufferBase or the order doesn't matter?
  2. If my understanding is correct, then glBindBufferBase must be called only after we have updated the UBO with data. If this is correct then this answers my first question.
Edit
Report