Relocate gradient negative fract() workaround to GLSLCodeGenerator
Change-Id: If5aba5b266f86f677b6e63b0f79792f1d3213336
Reviewed-on: https://skia-review.googlesource.com/32202
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp
index 186f683..767955a 100644
--- a/src/shaders/gradients/SkGradientShader.cpp
+++ b/src/shaders/gradients/SkGradientShader.cpp
@@ -1557,14 +1557,7 @@
fragBuilder->codeAppendf("float clamp_t = clamp(%s, 0.0, 1.0);", t);
break;
case SkShader::kRepeat_TileMode:
- if (shaderCaps->canUseFractForNegativeValues()) {
- fragBuilder->codeAppendf("float clamp_t = fract(%s);", t);
- } else {
- // Tegra3 fract() sometimes yields undefined results when the arg is negative.
- // TODO: relocate this workaround to GLSLCodeGenerator.
- fragBuilder->codeAppendf("float clamp_t = 0.5 - sign(%s) * (0.5 - fract(abs(%s)));",
- t, t);
- }
+ fragBuilder->codeAppendf("float clamp_t = fract(%s);", t);
break;
case SkShader::kMirror_TileMode:
fragBuilder->codeAppendf("float t_1 = %s - 1.0;", t);