Shader Storage Buffer Objects

I’d like to use Shader Storage Buffer Objects, but I’m confused about their support in Cinder.

The release notes suggest Cinder 0.9.0 supports OpenGL 4.5.
However, glGetString(GL_VERSION) returns “OpenGL Version 3.2.0 NVIDIA 373.06”,
while other bindings (GLEW / LWJGL) return “OpenGL Version: 4.5.0 NVIDIA 373.06”.

Why is that?
Can I use them anyway?
Any advice on how to use gl::Ssbo?


I believe this is due to glload (the OpenGL binding library used by Cinder) not supporting version 4.5. It should support 4.4, though, and since SSBO’s are core since 4.3 you should have access to its functions.


Thanks for your response Paul.

I changed bind/unbind buffer to push/pop bindings - now it works.

The version string is pretty confusing, though.

Is the version string still wrong, if you initialise your app specifying the required OpenGL version?

CINDER_APP( YourApp, RendererGl( RendererGl::Options().version( 4, 3 ) ) )
1 Like

Oh that’s it! The default renderer version is 3.2. It even accepts 4.5, thank you.

Good call, @gabor_papp !