From 33aa2c7b5c351c17a11ce2bf7d7cd70a3d86cecc Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 5 Apr 2017 09:26:15 -0400 Subject: Allow FPs to elevate default precision for the entire fragment program Currently, GrConfigConversionEffect is able to round-trip on many mobile GPUs because it uses highp for all intermediate variables (including the texture fetch result). Separating the texture sample into a different processor breaks that. This is a blunt instrument, not to be used lightly. This reverts commit dffe9827b18444d1426859d9035f9f0087201f44. Bug: skia: Change-Id: I940af3256c47e6672a008d516db9e55669672ca3 Reviewed-on: https://skia-review.googlesource.com/11345 Reviewed-by: Brian Salomon Commit-Queue: Brian Osman --- bench/GLInstancedArraysBench.cpp | 2 +- bench/GLVec4ScalarBench.cpp | 2 +- bench/GLVertexAttributesBench.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'bench') diff --git a/bench/GLInstancedArraysBench.cpp b/bench/GLInstancedArraysBench.cpp index 5268dd6e72..fc5e8fb17f 100644 --- a/bench/GLInstancedArraysBench.cpp +++ b/bench/GLInstancedArraysBench.cpp @@ -133,7 +133,7 @@ GrGLuint GLCpuPosInstancedArraysBench::setupShader(const GrGLContext* ctx) { // setup fragment shader GrShaderVar oFragColor("o_FragColor", kVec4f_GrSLType, GrShaderVar::kOut_TypeModifier); SkString fshaderTxt(version); - GrGLSLAppendDefaultFloatPrecisionDeclaration(kDefault_GrSLPrecision, *shaderCaps, &fshaderTxt); + GrGLSLAppendDefaultFloatPrecisionDeclaration(kMedium_GrSLPrecision, *shaderCaps, &fshaderTxt); oColor.setTypeModifier(GrShaderVar::kIn_TypeModifier); oColor.appendDecl(shaderCaps, &fshaderTxt); fshaderTxt.append(";\n"); diff --git a/bench/GLVec4ScalarBench.cpp b/bench/GLVec4ScalarBench.cpp index 26f9220750..b5c7e22a49 100644 --- a/bench/GLVec4ScalarBench.cpp +++ b/bench/GLVec4ScalarBench.cpp @@ -131,7 +131,7 @@ GrGLuint GLVec4ScalarBench::setupShader(const GrGLContext* ctx) { // next stage. GrShaderVar oFragColor("o_FragColor", kVec4f_GrSLType, GrShaderVar::kOut_TypeModifier); SkString fshaderTxt(version); - GrGLSLAppendDefaultFloatPrecisionDeclaration(kDefault_GrSLPrecision, *shaderCaps, &fshaderTxt); + GrGLSLAppendDefaultFloatPrecisionDeclaration(kMedium_GrSLPrecision, *shaderCaps, &fshaderTxt); oPosition.setTypeModifier(GrShaderVar::kIn_TypeModifier); oPosition.appendDecl(shaderCaps, &fshaderTxt); fshaderTxt.append(";\n"); diff --git a/bench/GLVertexAttributesBench.cpp b/bench/GLVertexAttributesBench.cpp index 4783d5510a..7efd984762 100644 --- a/bench/GLVertexAttributesBench.cpp +++ b/bench/GLVertexAttributesBench.cpp @@ -117,7 +117,7 @@ GrGLuint GLVertexAttributesBench::setupShader(const GrGLContext* ctx, uint32_t a // setup fragment shader GrShaderVar oFragColor("o_FragColor", kVec4f_GrSLType, GrShaderVar::kOut_TypeModifier); SkString fshaderTxt(version); - GrGLSLAppendDefaultFloatPrecisionDeclaration(kDefault_GrSLPrecision, *shaderCaps, &fshaderTxt); + GrGLSLAppendDefaultFloatPrecisionDeclaration(kMedium_GrSLPrecision, *shaderCaps, &fshaderTxt); const char* fsOutName; if (shaderCaps->mustDeclareFragmentShaderOutput()) { -- cgit v1.2.3