2012 Khronos Group
glShaderStorageBlockBinding 3G
glShaderStorageBlockBinding change an active shader storage block binding

## C Specification

void `glShaderStorageBlockBinding` GLuint program GLuint storageBlockIndex GLuint storageBlockBinding

## Parameters

program

  The name of the program containing the block whose binding to change.

storageBlockIndex

  The index storage block within the program.

storageBlockBinding

  The index storage block binding to associate with the specified storage block.

## Description

`glShaderStorageBlockBinding`, changes the active shader storage block with an assigned index of storageBlockIndex in program object program. storageBlockIndex must be an active shader storage block index in program. storageBlockBinding must be less than the value of `GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`. If successful, `glShaderStorageBinding` specifies that program will use the data store of the buffer object bound to the binding point storageBlockBinding to read and write the values of the buffer variables in the shader storage block identified by storageBlockIndex.

## Errors

`GL_INVALID_VALUE` is generated if attribindex is greater than or equal to the value of `GL_MAX_VERTEX_ATTRIBS`.

`GL_INVAILD_VALUE` is generated if bindingindex is greater than or equal to the value of `GL_MAX_VERTEX_ATTRIB_BINDINGS`.

`GL_INVALID_OPERATION` is generated if no vertex array object is bound.

## Associated Gets

glGet with arguments `GL_SHADER_STORAGE_BUFFER_BINDING`, `GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`, `GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS`, `GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS`, `GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS`, `GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS`, `GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS`, `GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS` or `GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS`, `GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`, or `GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES`.

## Copyright

Copyright 2012 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.