Conditionally insert gl_PointSize into shaders.

BUG=chromium:648816
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358843002

Review-Url: https://codereview.chromium.org/2358843002
diff --git a/src/gpu/GrProgramDesc.cpp b/src/gpu/GrProgramDesc.cpp
index c452d34..cfcdbb5 100644
--- a/src/gpu/GrProgramDesc.cpp
+++ b/src/gpu/GrProgramDesc.cpp
@@ -106,6 +106,7 @@
 
 bool GrProgramDesc::Build(GrProgramDesc* desc,
                           const GrPrimitiveProcessor& primProc,
+                          bool hasPointSize,
                           const GrPipeline& pipeline,
                           const GrGLSLCaps& glslCaps) {
     // The descriptor is used as a cache key. Thus when a field of the
@@ -171,14 +172,16 @@
 
     header->fOutputSwizzle = glslCaps.configOutputSwizzle(rt->config()).asKey();
 
-    if (pipeline.ignoresCoverage()) {
-        header->fIgnoresCoverage = 1;
-    } else {
-        header->fIgnoresCoverage = 0;
-    }
+    header->fIgnoresCoverage = pipeline.ignoresCoverage() ? 1 : 0;
 
     header->fSnapVerticesToPixelCenters = pipeline.snapVerticesToPixelCenters();
-    header->fColorEffectCnt = pipeline.numColorFragmentProcessors();
-    header->fCoverageEffectCnt = pipeline.numCoverageFragmentProcessors();
+    header->fColorFragmentProcessorCnt = pipeline.numColorFragmentProcessors();
+    header->fCoverageFragmentProcessorCnt = pipeline.numCoverageFragmentProcessors();
+    // Fail if the client requested more processors than the key can fit.
+    if (header->fColorFragmentProcessorCnt != pipeline.numColorFragmentProcessors() ||
+        header->fCoverageFragmentProcessorCnt != pipeline.numCoverageFragmentProcessors()) {
+        return false;
+    }
+    header->fHasPointSize = hasPointSize ? 1 : 0;
     return true;
 }