When you specify "location = x" in a shader to specify a shader storage or uniform buffer binding point, can that number be any value? Is this binding point independent of which shader is currently bound?
Would it be possible to bind all my ubos and ssbos before I bind my shaders, so long as the number of each type of buffer the shaders use is <= the max OpenGL allows to be used in a shader at once?
Could I bind 20 buffers and then specify which ones a shader is currently using by specifying the binding point index in the shader?