Index: src/gpu/gl/builders/GrGLProgramBuilder.cpp |
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
index e10aa6537c6d94909cd276c8ffe3930d79b78f44..ab77e059389842145b8018eb95d60ec4e3e68a86 100644 |
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
@@ -384,6 +384,8 @@ void GrGLProgramBuilder::emitTransforms(const GrPendingFragmentStage& stage, |
const char* uniName = "StageMatrix"; |
GrSLType varyingType = stage.isPerspectiveCoordTransform(t) ? kVec3f_GrSLType : |
kVec2f_GrSLType; |
+ GrSLPrecision precision = processor->coordTransform(t).precision(); |
+ |
SkString suffixedUniName; |
if (0 != t) { |
suffixedUniName.append(uniName); |
@@ -391,7 +393,7 @@ void GrGLProgramBuilder::emitTransforms(const GrPendingFragmentStage& stage, |
uniName = suffixedUniName.c_str(); |
} |
ifp->fTransforms[t].fHandle = this->addUniform(GrGLProgramBuilder::kVertex_Visibility, |
- kMat33f_GrSLType, kDefault_GrSLPrecision, |
+ kMat33f_GrSLType, precision, |
uniName, |
&uniName).toShaderBuilderIndex(); |
@@ -407,7 +409,7 @@ void GrGLProgramBuilder::emitTransforms(const GrPendingFragmentStage& stage, |
const char* coords = useLocalCoords ? fVS.localCoords() : fVS.positionCoords(); |
GrGLVertToFrag v(varyingType); |
- this->addVarying(varyingName, &v, processor->coordTransform(t).precision()); |
+ this->addVarying(varyingName, &v, precision); |
fCoordVaryings.push_back(TransformVarying(v, uniName, coords)); |
SkASSERT(kVec2f_GrSLType == varyingType || kVec3f_GrSLType == varyingType); |