Shader.SetGlobalVariable vs CommandBuffer.SetGlobalVariable?

i can`t find distinguish…
is same?

CommandBuffer.SetGlobalVariable will not be triggered immediately, it is only useful when you are creating you own command buffer(for inserting render commands to a camera event). While Shader.SetGlobalVariable is the regular API if you want to set a global variable immediately though code.