SSBOs work on Intel but not Nvidia

I am trying to implement a shader storage buffer object in Vulkan. I have successfully implemented a uniform buffer object from this tutorial: 1

I declared the shader storage object in the vertex shader like so:

layout(set = 0, binding = 0) readonly buffer StorageBufferObject { vec4 data[]; };

I searched and replaced all instances of the term “UNIFORM_” in my C++ code with “STORAGE_” and it compiles and runs, but the data is not being read in the shader, on Nvidia hardware only. It works fine on Intel graphics.

GPU: GEForce GTX 1070 (Notebook)
Driver: 439.30.0.0

You can download my application here:

The shader in use is “Shaders/shader.vert” and “Shaders/shader.frag”

Using the LunarG validation layer, no errors are found.



In the process of preparing the code to show I discovered my VkDescriptorBufferInfo.range parameter was incorrect. It now works.