Got RelaxedPrecision decorations working again in SPIR-V, and removed
no-longer-needed old-style precision handling code.
Bug: skia:8829
Change-Id: I72fc2ee2a305c9c72a3efa92dd44d18239eabaf2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/198169
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/GrShaderVar.cpp b/src/gpu/GrShaderVar.cpp
index 65c7d90..269ba83 100644
--- a/src/gpu/GrShaderVar.cpp
+++ b/src/gpu/GrShaderVar.cpp
@@ -35,25 +35,7 @@
SK_ABORT("Unknown io type.");
}
-// Converts a GrSLPrecision to its corresponding GLSL precision qualifier. TODO: Remove this as we
-// shouldn't need it with SkSL.
-static inline const char* glsl_precision_string(GrSLPrecision p) {
- switch (p) {
- case kLow_GrSLPrecision:
- return "lowp";
- case kMedium_GrSLPrecision:
- return "mediump";
- case kHigh_GrSLPrecision:
- return "highp";
- case kDefault_GrSLPrecision:
- return "";
- }
- SK_ABORT("Unexpected precision type.");
- return "";
-}
-
void GrShaderVar::appendDecl(const GrShaderCaps* shaderCaps, SkString* out) const {
- SkASSERT(kDefault_GrSLPrecision == fPrecision || GrSLTypeTemporarilyAcceptsPrecision(fType));
SkString layout = fLayoutQualifier;
if (!fLayoutQualifier.isEmpty()) {
out->appendf("layout(%s) ", fLayoutQualifier.c_str());
@@ -64,10 +46,6 @@
out->append(" ");
}
GrSLType effectiveType = this->getType();
- if (shaderCaps->usesPrecisionModifiers() && GrSLTypeAcceptsPrecision(effectiveType)) {
- // Desktop GLSL has added precision qualifiers but they don't do anything.
- out->appendf("%s ", glsl_precision_string(fPrecision));
- }
if (this->isArray()) {
if (this->isUnsizedArray()) {
out->appendf("%s %s[]", GrGLSLTypeString(effectiveType), this->getName().c_str());
diff --git a/src/gpu/GrShaderVar.h b/src/gpu/GrShaderVar.h
index 0f22085..ef0d830 100644
--- a/src/gpu/GrShaderVar.h
+++ b/src/gpu/GrShaderVar.h
@@ -46,47 +46,39 @@
, fUseUniformFloatArrays(USE_UNIFORM_FLOAT_ARRAYS) {
}
- GrShaderVar(const SkString& name, GrSLType type, int arrayCount = kNonArray,
- GrSLPrecision precision = kDefault_GrSLPrecision)
+ GrShaderVar(const SkString& name, GrSLType type, int arrayCount = kNonArray)
: fType(type)
, fTypeModifier(kNone_TypeModifier)
, fCount(arrayCount)
- , fPrecision(precision)
, fUseUniformFloatArrays(USE_UNIFORM_FLOAT_ARRAYS)
, fName(name) {
SkASSERT(kVoid_GrSLType != type);
fUseUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS;
}
- GrShaderVar(const char* name, GrSLType type, int arrayCount = kNonArray,
- GrSLPrecision precision = kDefault_GrSLPrecision)
+ GrShaderVar(const char* name, GrSLType type, int arrayCount = kNonArray)
: fType(type)
, fTypeModifier(kNone_TypeModifier)
, fCount(arrayCount)
- , fPrecision(precision)
, fUseUniformFloatArrays(USE_UNIFORM_FLOAT_ARRAYS)
, fName(name) {
SkASSERT(kVoid_GrSLType != type);
fUseUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS;
}
- GrShaderVar(const char* name, GrSLType type, TypeModifier typeModifier,
- GrSLPrecision precision = kDefault_GrSLPrecision)
+ GrShaderVar(const char* name, GrSLType type, TypeModifier typeModifier)
: fType(type)
, fTypeModifier(typeModifier)
, fCount(kNonArray)
- , fPrecision(precision)
, fUseUniformFloatArrays(USE_UNIFORM_FLOAT_ARRAYS)
, fName(name) {
SkASSERT(kVoid_GrSLType != type);
}
- GrShaderVar(const char* name, GrSLType type, TypeModifier typeModifier,
- int arrayCount, GrSLPrecision precision = kDefault_GrSLPrecision)
+ GrShaderVar(const char* name, GrSLType type, TypeModifier typeModifier, int arrayCount)
: fType(type)
, fTypeModifier(typeModifier)
, fCount(arrayCount)
- , fPrecision(precision)
, fUseUniformFloatArrays(USE_UNIFORM_FLOAT_ARRAYS)
, fName(name) {
SkASSERT(kVoid_GrSLType != type);
@@ -96,7 +88,6 @@
: fType(that.fType)
, fTypeModifier(that.fTypeModifier)
, fCount(that.fCount)
- , fPrecision(that.fPrecision)
, fUseUniformFloatArrays(USE_UNIFORM_FLOAT_ARRAYS)
, fName(that.fName)
, fLayoutQualifier(that.fLayoutQualifier)
@@ -110,17 +101,14 @@
void set(GrSLType type,
const SkString& name,
TypeModifier typeModifier = kNone_TypeModifier,
- GrSLPrecision precision = kDefault_GrSLPrecision,
const char* layoutQualifier = nullptr,
const char* extraModifiers = nullptr,
bool useUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS) {
SkASSERT(kVoid_GrSLType != type);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeTemporarilyAcceptsPrecision(type));
fType = type;
fTypeModifier = typeModifier;
fName = name;
fCount = kNonArray;
- fPrecision = precision;
fLayoutQualifier = layoutQualifier;
if (extraModifiers) {
fExtraModifiers.printf("%s ", extraModifiers);
@@ -134,17 +122,14 @@
void set(GrSLType type,
const char* name,
TypeModifier typeModifier = kNone_TypeModifier,
- GrSLPrecision precision = kDefault_GrSLPrecision,
const char* layoutQualifier = nullptr,
const char* extraModifiers = nullptr,
bool useUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS) {
SkASSERT(kVoid_GrSLType != type);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeTemporarilyAcceptsPrecision(type));
fType = type;
fTypeModifier = typeModifier;
fName = name;
fCount = kNonArray;
- fPrecision = precision;
fLayoutQualifier = layoutQualifier;
if (extraModifiers) {
fExtraModifiers.printf("%s ", extraModifiers);
@@ -159,17 +144,14 @@
const SkString& name,
int count,
TypeModifier typeModifier,
- GrSLPrecision precision = kDefault_GrSLPrecision,
const char* layoutQualifier = nullptr,
const char* extraModifiers = nullptr,
bool useUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS) {
SkASSERT(kVoid_GrSLType != type);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeTemporarilyAcceptsPrecision(type));
fType = type;
fTypeModifier = typeModifier;
fName = name;
fCount = count;
- fPrecision = precision;
fLayoutQualifier = layoutQualifier;
if (extraModifiers) {
fExtraModifiers.printf("%s ", extraModifiers);
@@ -184,17 +166,14 @@
const char* name,
int count,
TypeModifier typeModifier,
- GrSLPrecision precision = kDefault_GrSLPrecision,
const char* layoutQualifier = nullptr,
const char* extraModifiers = nullptr,
bool useUniformFloatArrays = USE_UNIFORM_FLOAT_ARRAYS) {
SkASSERT(kVoid_GrSLType != type);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeTemporarilyAcceptsPrecision(type));
fType = type;
fTypeModifier = typeModifier;
fName = name;
fCount = count;
- fPrecision = precision;
fLayoutQualifier = layoutQualifier;
if (extraModifiers) {
fExtraModifiers.printf("%s ", extraModifiers);
@@ -260,16 +239,6 @@
void setTypeModifier(TypeModifier type) { fTypeModifier = type; }
/**
- * Get the precision of the var
- */
- GrSLPrecision getPrecision() const { return fPrecision; }
-
- /**
- * Set the precision of the var
- */
- void setPrecision(GrSLPrecision p) { fPrecision = p; }
-
- /**
* Appends to the layout qualifier
*/
void addLayoutQualifier(const char* layoutQualifier) {
@@ -314,7 +283,6 @@
GrSLType fType;
TypeModifier fTypeModifier;
int fCount;
- GrSLPrecision fPrecision;
/// Work around driver bugs on some hardware that don't correctly
/// support uniform float []
bool fUseUniformFloatArrays;
diff --git a/src/gpu/effects/GrAARectEffect.cpp b/src/gpu/effects/GrAARectEffect.cpp
index 2a4acf1a..649bb7c 100644
--- a/src/gpu/effects/GrAARectEffect.cpp
+++ b/src/gpu/effects/GrAARectEffect.cpp
@@ -28,7 +28,7 @@
(void)rect;
prevRect = float4(-1.0);
fRectUniformVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "rectUniform");
+ kFragment_GrShaderFlag, kFloat4_GrSLType, "rectUniform");
fragBuilder->codeAppendf(
"float4 prevRect = float4(%f, %f, %f, %f);\nhalf alpha;\n@switch (%d) {\n case "
"0:\n case 2:\n alpha = half(all(greaterThan(float4(sk_FragCoord.xy, "
diff --git a/src/gpu/effects/GrAlphaThresholdFragmentProcessor.cpp b/src/gpu/effects/GrAlphaThresholdFragmentProcessor.cpp
index 0920905..a60afd2 100644
--- a/src/gpu/effects/GrAlphaThresholdFragmentProcessor.cpp
+++ b/src/gpu/effects/GrAlphaThresholdFragmentProcessor.cpp
@@ -37,10 +37,10 @@
(void)innerThreshold;
auto outerThreshold = _outer.outerThreshold();
(void)outerThreshold;
- fInnerThresholdVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kHalf_GrSLType, kDefault_GrSLPrecision, "innerThreshold");
- fOuterThresholdVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kHalf_GrSLType, kDefault_GrSLPrecision, "outerThreshold");
+ fInnerThresholdVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kHalf_GrSLType, "innerThreshold");
+ fOuterThresholdVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kHalf_GrSLType, "outerThreshold");
SkString sk_TransformedCoords2D_0 = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
fragBuilder->codeAppendf(
"half4 color = %s;\nhalf4 mask_color = texture(%s, %s).%s;\nif (mask_color.w < "
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp
index 370b0e5..1828eca 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp
@@ -35,7 +35,6 @@
const char* atlasSizeInvName;
fAtlasSizeInvUniform = uniformHandler->addUniform(kVertex_GrShaderFlag,
kFloat2_GrSLType,
- kHigh_GrSLPrecision,
"AtlasSizeInv",
&atlasSizeInvName);
diff --git a/src/gpu/effects/GrCircleBlurFragmentProcessor.cpp b/src/gpu/effects/GrCircleBlurFragmentProcessor.cpp
index bce42f8..08a4535 100644
--- a/src/gpu/effects/GrCircleBlurFragmentProcessor.cpp
+++ b/src/gpu/effects/GrCircleBlurFragmentProcessor.cpp
@@ -271,7 +271,7 @@
auto solidRadius = _outer.solidRadius();
(void)solidRadius;
fCircleDataVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "circleData");
+ "circleData");
fragBuilder->codeAppendf(
"half2 vec = half2(half((sk_FragCoord.x - float(%s.x)) * float(%s.w)), "
"half((sk_FragCoord.y - float(%s.y)) * float(%s.w)));\nhalf dist = length(vec) + "
diff --git a/src/gpu/effects/GrCircleEffect.cpp b/src/gpu/effects/GrCircleEffect.cpp
index ddc81b8..b6b05e5 100644
--- a/src/gpu/effects/GrCircleEffect.cpp
+++ b/src/gpu/effects/GrCircleEffect.cpp
@@ -29,8 +29,8 @@
auto radius = _outer.radius();
(void)radius;
prevRadius = -1.0;
- fCircleVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "circle");
+ fCircleVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType, "circle");
fragBuilder->codeAppendf(
"half2 prevCenter;\nhalf prevRadius = %f;\nhalf d;\n@if (%d == 2 || %d == 3) {\n "
" d = half((length((float2(%s.xy) - sk_FragCoord.xy) * float(%s.w)) - 1.0) * "
diff --git a/src/gpu/effects/GrConstColorProcessor.cpp b/src/gpu/effects/GrConstColorProcessor.cpp
index 82ef77a..ed1ab7e 100644
--- a/src/gpu/effects/GrConstColorProcessor.cpp
+++ b/src/gpu/effects/GrConstColorProcessor.cpp
@@ -26,8 +26,8 @@
(void)color;
auto mode = _outer.mode();
(void)mode;
- fColorVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "color");
+ fColorVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType, "color");
fragBuilder->codeAppendf(
"@switch (%d) {\n case 0:\n %s = %s;\n break;\n case 1:\n "
" %s = %s * %s;\n break;\n case 2:\n %s = %s.w * %s;\n "
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 883c28c..bb4179a 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -41,7 +41,6 @@
const char* atlasSizeInvName;
fAtlasSizeInvUniform = uniformHandler->addUniform(kVertex_GrShaderFlag,
kFloat2_GrSLType,
- kHigh_GrSLPrecision,
"AtlasSizeInv",
&atlasSizeInvName);
#ifdef SK_GAMMA_APPLY_TO_A8
@@ -341,7 +340,6 @@
const char* atlasSizeInvName;
fAtlasSizeInvUniform = uniformHandler->addUniform(kVertex_GrShaderFlag,
kFloat2_GrSLType,
- kHigh_GrSLPrecision,
"AtlasSizeInv",
&atlasSizeInvName);
@@ -630,7 +628,6 @@
const char* atlasSizeInvName;
fAtlasSizeInvUniform = uniformHandler->addUniform(kVertex_GrShaderFlag,
kFloat2_GrSLType,
- kHigh_GrSLPrecision,
"AtlasSizeInv",
&atlasSizeInvName);
diff --git a/src/gpu/effects/GrEllipseEffect.cpp b/src/gpu/effects/GrEllipseEffect.cpp
index 7372571..b064490 100644
--- a/src/gpu/effects/GrEllipseEffect.cpp
+++ b/src/gpu/effects/GrEllipseEffect.cpp
@@ -31,10 +31,10 @@
prevRadii = float2(-1.0);
useScale = !sk_Caps.floatIs32Bits;
fEllipseVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "ellipse");
+ "ellipse");
if (useScale) {
fScaleVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat2_GrSLType,
- kDefault_GrSLPrecision, "scale");
+ "scale");
}
fragBuilder->codeAppendf(
"float2 prevCenter;\nfloat2 prevRadii = float2(%f, %f);\nbool useScale = "
diff --git a/src/gpu/effects/GrMagnifierEffect.cpp b/src/gpu/effects/GrMagnifierEffect.cpp
index 8042613..4bef44d 100644
--- a/src/gpu/effects/GrMagnifierEffect.cpp
+++ b/src/gpu/effects/GrMagnifierEffect.cpp
@@ -35,17 +35,17 @@
auto yInvInset = _outer.yInvInset();
(void)yInvInset;
fBoundsUniformVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "boundsUniform");
+ kFragment_GrShaderFlag, kFloat4_GrSLType, "boundsUniform");
fXInvZoomVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "xInvZoom");
+ kFragment_GrShaderFlag, kFloat_GrSLType, "xInvZoom");
fYInvZoomVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "yInvZoom");
+ kFragment_GrShaderFlag, kFloat_GrSLType, "yInvZoom");
fXInvInsetVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "xInvInset");
+ kFragment_GrShaderFlag, kFloat_GrSLType, "xInvInset");
fYInvInsetVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "yInvInset");
- fOffsetVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kHalf2_GrSLType, kDefault_GrSLPrecision, "offset");
+ kFragment_GrShaderFlag, kFloat_GrSLType, "yInvInset");
+ fOffsetVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf2_GrSLType, "offset");
SkString sk_TransformedCoords2D_0 = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
fragBuilder->codeAppendf(
"float2 coord = %s;\nfloat2 zoom_coord = float2(%s) + coord * float2(%s, "
diff --git a/src/gpu/effects/GrMixerEffect.cpp b/src/gpu/effects/GrMixerEffect.cpp
index 6e79f51..fb0e50e 100644
--- a/src/gpu/effects/GrMixerEffect.cpp
+++ b/src/gpu/effects/GrMixerEffect.cpp
@@ -24,8 +24,8 @@
(void)_outer;
auto weight = _outer.weight();
(void)weight;
- fWeightVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "weight");
+ fWeightVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType, "weight");
SkString _input0 = SkStringPrintf("%s", args.fInputColor);
SkString _child0("_child0");
this->emitChild(_outer.fp0_index(), _input0.c_str(), &_child0, args);
diff --git a/src/gpu/effects/GrRRectBlurEffect.cpp b/src/gpu/effects/GrRRectBlurEffect.cpp
index 6f1f62b..ba9d701 100644
--- a/src/gpu/effects/GrRRectBlurEffect.cpp
+++ b/src/gpu/effects/GrRRectBlurEffect.cpp
@@ -69,11 +69,11 @@
auto cornerRadius = _outer.cornerRadius();
(void)cornerRadius;
fCornerRadiusVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "cornerRadius");
+ "cornerRadius");
fProxyRectVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "proxyRect");
+ "proxyRect");
fBlurRadiusVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "blurRadius");
+ "blurRadius");
fragBuilder->codeAppendf(
"\nhalf2 translatedFragPos = half2(sk_FragCoord.xy - %s.xy);\nhalf threshold = %s "
"+ 2.0 * %s;\nhalf2 middle = half2((%s.zw - %s.xy) - float(2.0 * threshold));\nif "
diff --git a/src/gpu/effects/GrRectBlurEffect.cpp b/src/gpu/effects/GrRectBlurEffect.cpp
index e0cf0d7..7ccaa34 100644
--- a/src/gpu/effects/GrRectBlurEffect.cpp
+++ b/src/gpu/effects/GrRectBlurEffect.cpp
@@ -31,20 +31,18 @@
abs(rect.bottom()) > 16000.0) ||
abs(rect.right() - rect.left()) > 16000.0) ||
abs(rect.bottom() - rect.top()) > 16000.0;
- fRectVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "rect");
+ fRectVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType, "rect");
if (!highPrecision) {
- fProxyRectHalfVar =
- args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "proxyRectHalf");
+ fProxyRectHalfVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kHalf4_GrSLType, "proxyRectHalf");
}
if (highPrecision) {
- fProxyRectFloatVar =
- args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "proxyRectFloat");
+ fProxyRectFloatVar = args.fUniformHandler->addUniform(
+ kFragment_GrShaderFlag, kFloat4_GrSLType, "proxyRectFloat");
}
fProfileSizeVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "profileSize");
+ "profileSize");
fragBuilder->codeAppendf(
"/* key */ bool highPrecision = %s;\n@if (highPrecision) {\n float2 "
"translatedPos = sk_FragCoord.xy - %s.xy;\n float width = %s.z - %s.x;\n "
diff --git a/src/gpu/effects/GrSkSLFP.cpp b/src/gpu/effects/GrSkSLFP.cpp
index 7e7f9b6..31da647 100644
--- a/src/gpu/effects/GrSkSLFP.cpp
+++ b/src/gpu/effects/GrSkSLFP.cpp
@@ -130,7 +130,6 @@
fUniformHandles.push_back(args.fUniformHandler->addUniform(
kFragment_GrShaderFlag,
this->uniformType(v->fType),
- kDefault_GrSLPrecision,
SkSL::String(v->fName).c_str()));
}
}
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.cpp b/src/gpu/effects/GrYUVtoRGBEffect.cpp
index cf4c941..daa11aa 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.cpp
+++ b/src/gpu/effects/GrYUVtoRGBEffect.cpp
@@ -98,7 +98,7 @@
(void)colorSpaceMatrix;
fColorSpaceMatrixVar =
args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4x4_GrSLType,
- kDefault_GrSLPrecision, "colorSpaceMatrix");
+ "colorSpaceMatrix");
int numSamplers = args.fTexSamplers.count();
diff --git a/src/gpu/gl/GrGLUniformHandler.cpp b/src/gpu/gl/GrGLUniformHandler.cpp
index 24f4ac9..2448bc6 100644
--- a/src/gpu/gl/GrGLUniformHandler.cpp
+++ b/src/gpu/gl/GrGLUniformHandler.cpp
@@ -27,7 +27,6 @@
GrGLSLUniformHandler::UniformHandle GrGLUniformHandler::internalAddUniformArray(
uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,
@@ -35,7 +34,6 @@
SkASSERT(name && strlen(name));
SkASSERT(valid_name(name));
SkASSERT(0 != visibility);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeTemporarilyAcceptsPrecision(type));
UniformInfo& uni = fUniforms.push_back();
uni.fVariable.setType(type);
@@ -53,7 +51,6 @@
fProgramBuilder->nameVariable(uni.fVariable.accessName(), prefix, name, mangleName);
uni.fVariable.setArrayCount(arrayCount);
uni.fVisibility = visibility;
- uni.fVariable.setPrecision(precision);
uni.fLocation = -1;
if (outName) {
@@ -72,14 +69,12 @@
char prefix = 'u';
fProgramBuilder->nameVariable(&mangleName, prefix, name, true);
- GrSLPrecision precision = GrSLSamplerPrecision(texture->config());
GrSwizzle swizzle = shaderCaps->configTextureSwizzle(texture->config());
GrTextureType type = texture->texturePriv().textureType();
UniformInfo& sampler = fSamplers.push_back();
sampler.fVariable.setType(GrSLCombinedSamplerTypeForTextureType(type));
sampler.fVariable.setTypeModifier(GrShaderVar::kUniform_TypeModifier);
- sampler.fVariable.setPrecision(precision);
sampler.fVariable.setName(mangleName);
sampler.fLocation = -1;
sampler.fVisibility = kFragment_GrShaderFlag;
diff --git a/src/gpu/gl/GrGLUniformHandler.h b/src/gpu/gl/GrGLUniformHandler.h
index 962beee..04653d4 100644
--- a/src/gpu/gl/GrGLUniformHandler.h
+++ b/src/gpu/gl/GrGLUniformHandler.h
@@ -33,7 +33,6 @@
UniformHandle internalAddUniformArray(uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,
diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.cpp b/src/gpu/glsl/GrGLSLProgramBuilder.cpp
index de892b5..cdfae83 100644
--- a/src/gpu/glsl/GrGLSLProgramBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLProgramBuilder.cpp
@@ -353,18 +353,16 @@
SkASSERT(!fUniformHandles.fRTWidthUni.isValid());
GrGLSLUniformHandler* uniformHandler = this->uniformHandler();
fUniformHandles.fRTWidthUni =
- uniformHandler->internalAddUniformArray(kFragment_GrShaderFlag,
- kHalf_GrSLType, kDefault_GrSLPrecision,
- name, false, 0, nullptr);
+ uniformHandler->internalAddUniformArray(kFragment_GrShaderFlag, kHalf_GrSLType, name,
+ false, 0, nullptr);
}
void GrGLSLProgramBuilder::addRTHeightUniform(const char* name) {
SkASSERT(!fUniformHandles.fRTHeightUni.isValid());
GrGLSLUniformHandler* uniformHandler = this->uniformHandler();
fUniformHandles.fRTHeightUni =
- uniformHandler->internalAddUniformArray(kFragment_GrShaderFlag,
- kHalf_GrSLType, kDefault_GrSLPrecision,
- name, false, 0, nullptr);
+ uniformHandler->internalAddUniformArray(kFragment_GrShaderFlag, kHalf_GrSLType, name,
+ false, 0, nullptr);
}
void GrGLSLProgramBuilder::finalizeShaders() {
diff --git a/src/gpu/glsl/GrGLSLUniformHandler.h b/src/gpu/glsl/GrGLSLUniformHandler.h
index 5ee524c..607232e 100644
--- a/src/gpu/glsl/GrGLSLUniformHandler.h
+++ b/src/gpu/glsl/GrGLSLUniformHandler.h
@@ -45,30 +45,10 @@
to add an array of uniforms. */
UniformHandle addUniform(uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
const char** outName = nullptr) {
SkASSERT(!GrSLTypeIsCombinedSamplerType(type));
- return this->addUniformArray(visibility, type, precision, name, 0, outName);
- }
-
- UniformHandle addUniform(uint32_t visibility,
- GrSLType type,
- const char* name,
- const char** outName = nullptr) {
- return this->addUniform(visibility, type, kDefault_GrSLPrecision, name, outName);
- }
-
- UniformHandle addUniformArray(uint32_t visibility,
- GrSLType type,
- GrSLPrecision precision,
- const char* name,
- int arrayCount,
- const char** outName = nullptr) {
- SkASSERT(!GrSLTypeIsCombinedSamplerType(type));
- bool mangle = strncmp(name, GR_NO_MANGLE_PREFIX, strlen(GR_NO_MANGLE_PREFIX));
- return this->internalAddUniformArray(visibility, type, precision, name, mangle, arrayCount,
- outName);
+ return this->addUniformArray(visibility, type, name, 0, outName);
}
UniformHandle addUniformArray(uint32_t visibility,
@@ -78,8 +58,7 @@
const char** outName = nullptr) {
SkASSERT(!GrSLTypeIsCombinedSamplerType(type));
bool mangle = strncmp(name, GR_NO_MANGLE_PREFIX, strlen(GR_NO_MANGLE_PREFIX));
- return this->internalAddUniformArray(visibility, type, kDefault_GrSLPrecision, name, mangle,
- arrayCount, outName);
+ return this->internalAddUniformArray(visibility, type, name, mangle, arrayCount, outName);
}
virtual const GrShaderVar& getUniformVariable(UniformHandle u) const = 0;
@@ -104,7 +83,6 @@
virtual UniformHandle internalAddUniformArray(uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,
diff --git a/src/gpu/glsl/GrGLSLVarying.cpp b/src/gpu/glsl/GrGLSLVarying.cpp
index a435f24..53f4533 100644
--- a/src/gpu/glsl/GrGLSLVarying.cpp
+++ b/src/gpu/glsl/GrGLSLVarying.cpp
@@ -109,22 +109,21 @@
const char* modifier = v.fIsFlat ? "flat" : fDefaultInterpolationModifier;
if (v.fVisibility & kVertex_GrShaderFlag) {
fVertexOutputs.push_back().set(v.fType, v.fVsOut, GrShaderVar::kOut_TypeModifier,
- kDefault_GrSLPrecision, nullptr, modifier);
+ nullptr, modifier);
if (v.fVisibility & kGeometry_GrShaderFlag) {
fGeomInputs.push_back().set(v.fType, v.fVsOut, GrShaderVar::kUnsizedArray,
- GrShaderVar::kIn_TypeModifier, kDefault_GrSLPrecision,
- nullptr, modifier);
+ GrShaderVar::kIn_TypeModifier, nullptr, modifier);
}
}
if (v.fVisibility & kFragment_GrShaderFlag) {
const char* fsIn = v.fVsOut.c_str();
if (v.fVisibility & kGeometry_GrShaderFlag) {
fGeomOutputs.push_back().set(v.fType, v.fGsOut, GrShaderVar::kOut_TypeModifier,
- kDefault_GrSLPrecision, nullptr, modifier);
+ nullptr, modifier);
fsIn = v.fGsOut.c_str();
}
- fFragInputs.push_back().set(v.fType, fsIn, GrShaderVar::kIn_TypeModifier,
- kDefault_GrSLPrecision, nullptr, modifier);
+ fFragInputs.push_back().set(v.fType, fsIn, GrShaderVar::kIn_TypeModifier, nullptr,
+ modifier);
}
}
this->onFinalize();
diff --git a/src/gpu/gradients/GrClampedGradientEffect.cpp b/src/gpu/gradients/GrClampedGradientEffect.cpp
index df13771..034ee1d 100644
--- a/src/gpu/gradients/GrClampedGradientEffect.cpp
+++ b/src/gpu/gradients/GrClampedGradientEffect.cpp
@@ -30,11 +30,10 @@
(void)makePremul;
auto colorsAreOpaque = _outer.colorsAreOpaque();
(void)colorsAreOpaque;
- fLeftBorderColorVar = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kHalf4_GrSLType, kDefault_GrSLPrecision, "leftBorderColor");
- fRightBorderColorVar =
- args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "rightBorderColor");
+ fLeftBorderColorVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kHalf4_GrSLType, "leftBorderColor");
+ fRightBorderColorVar = args.fUniformHandler->addUniform(
+ kFragment_GrShaderFlag, kHalf4_GrSLType, "rightBorderColor");
SkString _child1("_child1");
this->emitChild(_outer.gradLayout_index(), &_child1, args);
fragBuilder->codeAppendf(
diff --git a/src/gpu/gradients/GrDualIntervalGradientColorizer.cpp b/src/gpu/gradients/GrDualIntervalGradientColorizer.cpp
index e18f4d7..f121e44 100644
--- a/src/gpu/gradients/GrDualIntervalGradientColorizer.cpp
+++ b/src/gpu/gradients/GrDualIntervalGradientColorizer.cpp
@@ -34,15 +34,15 @@
auto threshold = _outer.threshold();
(void)threshold;
fScale01Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "scale01");
+ "scale01");
fBias01Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias01");
+ "bias01");
fScale23Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "scale23");
+ "scale23");
fBias23Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias23");
+ "bias23");
fThresholdVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "threshold");
+ "threshold");
fragBuilder->codeAppendf(
"half t = %s.x;\nfloat4 scale, bias;\nif (t < %s) {\n scale = %s;\n bias = "
"%s;\n} else {\n scale = %s;\n bias = %s;\n}\n%s = half4(float(t) * scale + "
diff --git a/src/gpu/gradients/GrSingleIntervalGradientColorizer.cpp b/src/gpu/gradients/GrSingleIntervalGradientColorizer.cpp
index f5de696..824a779 100644
--- a/src/gpu/gradients/GrSingleIntervalGradientColorizer.cpp
+++ b/src/gpu/gradients/GrSingleIntervalGradientColorizer.cpp
@@ -27,10 +27,9 @@
(void)start;
auto end = _outer.end();
(void)end;
- fStartVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "start");
- fEndVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType,
- kDefault_GrSLPrecision, "end");
+ fStartVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType, "start");
+ fEndVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf4_GrSLType, "end");
fragBuilder->codeAppendf("half t = %s.x;\n%s = (1.0 - t) * %s + t * %s;\n",
args.fInputColor, args.fOutputColor,
args.fUniformHandler->getUniformCStr(fStartVar),
diff --git a/src/gpu/gradients/GrSweepGradientLayout.cpp b/src/gpu/gradients/GrSweepGradientLayout.cpp
index 2269e25..9e2fa6b 100644
--- a/src/gpu/gradients/GrSweepGradientLayout.cpp
+++ b/src/gpu/gradients/GrSweepGradientLayout.cpp
@@ -28,10 +28,9 @@
(void)bias;
auto scale = _outer.scale();
(void)scale;
- fBiasVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "bias");
- fScaleVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType,
- kDefault_GrSLPrecision, "scale");
+ fBiasVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType, "bias");
+ fScaleVar =
+ args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf_GrSLType, "scale");
SkString sk_TransformedCoords2D_0 = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
fragBuilder->codeAppendf(
"half angle;\nif (sk_Caps.atan2ImplementedAsAtanYOverX) {\n angle = half(2.0 * "
diff --git a/src/gpu/gradients/GrTwoPointConicalGradientLayout.cpp b/src/gpu/gradients/GrTwoPointConicalGradientLayout.cpp
index f268e16..5fb4509 100644
--- a/src/gpu/gradients/GrTwoPointConicalGradientLayout.cpp
+++ b/src/gpu/gradients/GrTwoPointConicalGradientLayout.cpp
@@ -40,7 +40,7 @@
auto focalParams = _outer.focalParams();
(void)focalParams;
fFocalParamsVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kHalf2_GrSLType,
- kDefault_GrSLPrecision, "focalParams");
+ "focalParams");
SkString sk_TransformedCoords2D_0 = fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);
fragBuilder->codeAppendf(
"float2 p = %s;\nfloat t = -1.0;\nhalf v = 1.0;\n@switch (%d) {\n case 1:\n "
diff --git a/src/gpu/gradients/GrUnrolledBinaryGradientColorizer.cpp b/src/gpu/gradients/GrUnrolledBinaryGradientColorizer.cpp
index 3082c6a..f34baae 100644
--- a/src/gpu/gradients/GrUnrolledBinaryGradientColorizer.cpp
+++ b/src/gpu/gradients/GrUnrolledBinaryGradientColorizer.cpp
@@ -62,69 +62,69 @@
auto thresholds9_13 = _outer.thresholds9_13();
(void)thresholds9_13;
fScale0_1Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "scale0_1");
+ "scale0_1");
if (intervalCount > 1) {
- fScale2_3Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale2_3");
+ fScale2_3Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale2_3");
}
if (intervalCount > 2) {
- fScale4_5Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale4_5");
+ fScale4_5Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale4_5");
}
if (intervalCount > 3) {
- fScale6_7Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale6_7");
+ fScale6_7Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale6_7");
}
if (intervalCount > 4) {
- fScale8_9Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale8_9");
+ fScale8_9Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale8_9");
}
if (intervalCount > 5) {
- fScale10_11Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale10_11");
+ fScale10_11Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale10_11");
}
if (intervalCount > 6) {
- fScale12_13Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale12_13");
+ fScale12_13Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale12_13");
}
if (intervalCount > 7) {
- fScale14_15Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "scale14_15");
+ fScale14_15Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "scale14_15");
}
fBias0_1Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias0_1");
+ "bias0_1");
if (intervalCount > 1) {
fBias2_3Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias2_3");
+ "bias2_3");
}
if (intervalCount > 2) {
fBias4_5Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias4_5");
+ "bias4_5");
}
if (intervalCount > 3) {
fBias6_7Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias6_7");
+ "bias6_7");
}
if (intervalCount > 4) {
fBias8_9Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kFloat4_GrSLType,
- kDefault_GrSLPrecision, "bias8_9");
+ "bias8_9");
}
if (intervalCount > 5) {
- fBias10_11Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "bias10_11");
+ fBias10_11Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "bias10_11");
}
if (intervalCount > 6) {
- fBias12_13Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "bias12_13");
+ fBias12_13Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "bias12_13");
}
if (intervalCount > 7) {
- fBias14_15Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kFloat4_GrSLType, kDefault_GrSLPrecision, "bias14_15");
+ fBias14_15Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kFloat4_GrSLType, "bias14_15");
}
- fThresholds1_7Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kHalf4_GrSLType, kDefault_GrSLPrecision, "thresholds1_7");
- fThresholds9_13Var = args.fUniformHandler->addUniform(
- kFragment_GrShaderFlag, kHalf4_GrSLType, kDefault_GrSLPrecision, "thresholds9_13");
+ fThresholds1_7Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kHalf4_GrSLType, "thresholds1_7");
+ fThresholds9_13Var = args.fUniformHandler->addUniform(kFragment_GrShaderFlag,
+ kHalf4_GrSLType, "thresholds9_13");
fragBuilder->codeAppendf(
"half t = %s.x;\nfloat4 scale, bias;\nif (%d <= 4 || t < %s.w) {\n if (%d <= 2 "
"|| t < %s.y) {\n if (%d <= 1 || t < %s.x) {\n scale = %s;\n "
diff --git a/src/gpu/mtl/GrMtlUniformHandler.h b/src/gpu/mtl/GrMtlUniformHandler.h
index 6e60cb0..b117e9c 100644
--- a/src/gpu/mtl/GrMtlUniformHandler.h
+++ b/src/gpu/mtl/GrMtlUniformHandler.h
@@ -55,7 +55,6 @@
UniformHandle internalAddUniformArray(uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,
diff --git a/src/gpu/mtl/GrMtlUniformHandler.mm b/src/gpu/mtl/GrMtlUniformHandler.mm
index da51e65..505e894 100644
--- a/src/gpu/mtl/GrMtlUniformHandler.mm
+++ b/src/gpu/mtl/GrMtlUniformHandler.mm
@@ -199,7 +199,6 @@
GrGLSLUniformHandler::UniformHandle GrMtlUniformHandler::internalAddUniformArray(
uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,
@@ -211,7 +210,6 @@
kGeometry_GrShaderFlag == visibility ||
(kVertex_GrShaderFlag | kGeometry_GrShaderFlag) == visibility ||
kFragment_GrShaderFlag == visibility);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeIsFloatType(type));
GrSLTypeIsFloatType(type);
UniformInfo& uni = fUniforms.push_back();
@@ -229,7 +227,6 @@
fProgramBuilder->nameVariable(uni.fVariable.accessName(), prefix, name, mangleName);
uni.fVariable.setArrayCount(arrayCount);
uni.fVisibility = visibility;
- uni.fVariable.setPrecision(precision);
// When outputing the GLSL, only the outer uniform block will get the Uniform modifier. Thus
// we set the modifier to none for all uniforms declared inside the block.
uni.fVariable.setTypeModifier(GrShaderVar::kNone_TypeModifier);
@@ -267,14 +264,12 @@
char prefix = 'u';
fProgramBuilder->nameVariable(&mangleName, prefix, name, true);
- GrSLPrecision precision = GrSLSamplerPrecision(texture->config());
GrSwizzle swizzle = caps->configTextureSwizzle(texture->config());
GrTextureType type = texture->texturePriv().textureType();
UniformInfo& info = fSamplers.push_back();
info.fVariable.setType(GrSLCombinedSamplerTypeForTextureType(type));
info.fVariable.setTypeModifier(GrShaderVar::kUniform_TypeModifier);
- info.fVariable.setPrecision(precision);
info.fVariable.setName(mangleName);
SkString layoutQualifier;
layoutQualifier.appendf("binding=%d", fSamplers.count() - 1);
diff --git a/src/gpu/vk/GrVkUniformHandler.cpp b/src/gpu/vk/GrVkUniformHandler.cpp
index 3a35cfc..e286328 100644
--- a/src/gpu/vk/GrVkUniformHandler.cpp
+++ b/src/gpu/vk/GrVkUniformHandler.cpp
@@ -203,7 +203,6 @@
GrGLSLUniformHandler::UniformHandle GrVkUniformHandler::internalAddUniformArray(
uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,
@@ -215,7 +214,6 @@
kGeometry_GrShaderFlag == visibility ||
(kVertex_GrShaderFlag | kGeometry_GrShaderFlag) == visibility ||
kFragment_GrShaderFlag == visibility);
- SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeIsFloatType(type));
GrSLTypeIsFloatType(type);
UniformInfo& uni = fUniforms.push_back();
@@ -233,7 +231,6 @@
fProgramBuilder->nameVariable(uni.fVariable.accessName(), prefix, name, mangleName);
uni.fVariable.setArrayCount(arrayCount);
uni.fVisibility = visibility;
- uni.fVariable.setPrecision(precision);
// When outputing the GLSL, only the outer uniform block will get the Uniform modifier. Thus
// we set the modifier to none for all uniforms declared inside the block.
uni.fVariable.setTypeModifier(GrShaderVar::kNone_TypeModifier);
@@ -268,14 +265,12 @@
char prefix = 'u';
fProgramBuilder->nameVariable(&mangleName, prefix, name, true);
- GrSLPrecision precision = GrSLSamplerPrecision(texture->config());
GrSwizzle swizzle = shaderCaps->configTextureSwizzle(texture->config());
GrTextureType type = texture->texturePriv().textureType();
UniformInfo& info = fSamplers.push_back();
info.fVariable.setType(GrSLCombinedSamplerTypeForTextureType(type));
info.fVariable.setTypeModifier(GrShaderVar::kUniform_TypeModifier);
- info.fVariable.setPrecision(precision);
info.fVariable.setName(mangleName);
SkString layoutQualifier;
layoutQualifier.appendf("set=%d, binding=%d", kSamplerDescSet, fSamplers.count() - 1);
diff --git a/src/gpu/vk/GrVkUniformHandler.h b/src/gpu/vk/GrVkUniformHandler.h
index 73b17d2..08c3209 100644
--- a/src/gpu/vk/GrVkUniformHandler.h
+++ b/src/gpu/vk/GrVkUniformHandler.h
@@ -64,7 +64,6 @@
UniformHandle internalAddUniformArray(uint32_t visibility,
GrSLType type,
- GrSLPrecision precision,
const char* name,
bool mangleName,
int arrayCount,