diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-06-02 13:19:38 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-06-02 17:46:38 +0300 |
commit | cb59ef10320e9db95548d9f1586ed7ee7ebafc78 (patch) | |
tree | 967adb48dfe715ffb691ded2b6c18554aacf0537 /intern | |
parent | 0749cff957c347becd5ba8a8a8abe40d80e6f21f (diff) |
OCIO: GLSL: Avoid undefined behavior
Set ubo binding after shaderinterface creation as GPU_shaderinterface_create
will call glUniformBlockBinding.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/opencolorio/ocio_impl_glsl.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/intern/opencolorio/ocio_impl_glsl.cc b/intern/opencolorio/ocio_impl_glsl.cc index 87769a647f6..43416f734c5 100644 --- a/intern/opencolorio/ocio_impl_glsl.cc +++ b/intern/opencolorio/ocio_impl_glsl.cc @@ -264,14 +264,14 @@ static void updateGLSLShader(OCIO_GLSLShader *shader, glUseProgram(shader->program); - /* Set UBO binding location. */ - GLuint index = glGetUniformBlockIndex(shader->program, "OCIO_GLSLCurveMappingParameters"); - glUniformBlockBinding(shader->program, index, UBO_BIND_LOC); - /* TODO(fclem) Remove this. Make caller always assume viewport space and * specify texco via vertex attribs. */ shader->interface = GPU_shaderinterface_create(shader->program); + /* Set UBO binding location. */ + GLuint index = glGetUniformBlockIndex(shader->program, "OCIO_GLSLCurveMappingParameters"); + glUniformBlockBinding(shader->program, index, UBO_BIND_LOC); + /* Set texture bind point uniform once. This is saved by the shader. */ glUniform1i(glGetUniformLocation(shader->program, "image_texture"), 0); glUniform1i(glGetUniformLocation(shader->program, "lut3d_texture"), 2); |