The number of shader storage block bindings inside an OpenGL shader is limited to a maximum of 16 on NVIDIA GPUs. Here an example for the compute shader stage:
int num;
glGetIntegerv(GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS, &num);
// num=16
Looking at this hardware database, not a single NVIDIA GPU reports a number above 16 for any shader stage:
https://opengl.gpuinfo.org/displaycapability.php?name=GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
Is there any reason why this number needs to be so low? It seems like an old limit from the past.
I would appreciate if this limit were to be raised. AMD supports up to 96 on modern drivers/GPUs which is reasonable.