When using cached program binaries, always get uniform locations

If we have the BindUniformLocation extension, we normally use that to
tell GL what location to use for each uniform, before linking. But with
cached binaries, the result is already linked, and we still need to ask
for locations.

Change-Id: Ia29f1faef9d3c9354b92cfb34332854d6c6be1b7
Bug: chromium:977938
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223982
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/gl/GrGLUniformHandler.cpp b/src/gpu/gl/GrGLUniformHandler.cpp
index 256eaef..551851c 100644
--- a/src/gpu/gl/GrGLUniformHandler.cpp
+++ b/src/gpu/gl/GrGLUniformHandler.cpp
@@ -114,8 +114,8 @@
     }
 }
 
-void GrGLUniformHandler::getUniformLocations(GrGLuint programID, const GrGLCaps& caps) {
-    if (!caps.bindUniformLocationSupport()) {
+void GrGLUniformHandler::getUniformLocations(GrGLuint programID, const GrGLCaps& caps, bool force) {
+    if (!caps.bindUniformLocationSupport() || force) {
         int count = fUniforms.count();
         for (int i = 0; i < count; ++i) {
             GrGLint location;