| Index: src/gpu/gl/GrGLShaderBuilder.cpp | 
| diff --git a/src/gpu/gl/GrGLShaderBuilder.cpp b/src/gpu/gl/GrGLShaderBuilder.cpp | 
| index 348ee2622f0dbeb9efb198ea377997cf4d4c847e..961cad798fcf46b0de06c1dc4817f5bbe954baaa 100644 | 
| --- a/src/gpu/gl/GrGLShaderBuilder.cpp | 
| +++ b/src/gpu/gl/GrGLShaderBuilder.cpp | 
| @@ -588,6 +588,9 @@ bool GrGLShaderBuilder::finish(GrGLuint* outProgramId) { | 
| } | 
|  | 
| this->bindProgramLocations(programId); | 
| +    if (fUniformManager.isUsingBindUniform()) { | 
| +      fUniformManager.getUniformLocations(programId, fUniforms); | 
| +    } | 
|  | 
| GL_CALL(LinkProgram(programId)); | 
|  | 
| @@ -619,7 +622,9 @@ bool GrGLShaderBuilder::finish(GrGLuint* outProgramId) { | 
| } | 
| } | 
|  | 
| -    fUniformManager.getUniformLocations(programId, fUniforms); | 
| +    if (!fUniformManager.isUsingBindUniform()) { | 
| +      fUniformManager.getUniformLocations(programId, fUniforms); | 
| +    } | 
| *outProgramId = programId; | 
| return true; | 
| } | 
|  |