mesa: add shader_storage_block_binding() helper

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Samuel Pitoiset 2017-06-26 15:31:28 +02:00
parent 6a2c1e76f2
commit edd5082861

View file

@ -1145,6 +1145,23 @@ _mesa_UniformBlockBinding(GLuint program,
uniform_block_binding(ctx, shProg, uniformBlockIndex, uniformBlockBinding);
}
static void
shader_storage_block_binding(struct gl_context *ctx,
struct gl_shader_program *shProg,
GLuint shaderStorageBlockIndex,
GLuint shaderStorageBlockBinding)
{
if (shProg->data->ShaderStorageBlocks[shaderStorageBlockIndex].Binding !=
shaderStorageBlockBinding) {
FLUSH_VERTICES(ctx, 0);
ctx->NewDriverState |= ctx->DriverFlags.NewShaderStorageBuffer;
shProg->data->ShaderStorageBlocks[shaderStorageBlockIndex].Binding =
shaderStorageBlockBinding;
}
}
void GLAPIENTRY
_mesa_ShaderStorageBlockBinding(GLuint program,
GLuint shaderStorageBlockIndex,
@ -1179,15 +1196,8 @@ _mesa_ShaderStorageBlockBinding(GLuint program,
return;
}
if (shProg->data->ShaderStorageBlocks[shaderStorageBlockIndex].Binding !=
shaderStorageBlockBinding) {
FLUSH_VERTICES(ctx, 0);
ctx->NewDriverState |= ctx->DriverFlags.NewShaderStorageBuffer;
shProg->data->ShaderStorageBlocks[shaderStorageBlockIndex].Binding =
shaderStorageBlockBinding;
}
shader_storage_block_binding(ctx, shProg, shaderStorageBlockIndex,
shaderStorageBlockBinding);
}
/**