title: How do UBOs/SSBOs differ from Vulkan's shader memory bindings?
body: <p>In the <a href="http://blog.imgtec.com/powervr/trying-out-the-new-vulkan-graphics-api-on-powervr-gpus" rel="noreferrer">article on Imagination's website</a>, I've read the following paragraph:</p>
  <blockquote>
  <p>For example, there are no <code>glUniform*()</code> equivalent entry points in Vulkan; instead, writing to GPU memory is the only way to pass data to shaders.</p>
  <p>When you call <code>glUniform*()</code>, the OpenGL ES driver typically needs to allocate a driver managed buffer and copy data to it, the management of which incurs CPU overhead. In Vulkan, you simply map the memory address and write to that memory location directly.</p>
  </blockquote>
  <p>Is there any difference between that and using Uniform Buffers? They are also allocated explicitely and can carry arbitrary data. Since Uniform Buffers are quite limited in size, perhaps <a href="https://www.opengl.org/wiki/Shader_Storage_Buffer_Object" rel="noreferrer">Shader Storage Buffers</a> are a better analogy.</p>