## Name

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/.