diff options
author | cdalton <cdalton@nvidia.com> | 2016-04-11 12:03:08 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-11 12:03:08 -0700 |
commit | a6b92ad1f7b79106caef6a4c721903544f507a02 (patch) | |
tree | f91503b26a515e060202000ecd6bb1923de1e7ed /src/gpu/glsl/GrGLSLProgramBuilder.cpp | |
parent | 21a465d7f4c5e639044e79971aeaa1194fc73078 (diff) |
Infer sampler precision from pixel config
Adds a "samplerPrecision" method to GrGLSLCaps and updates
GrGLSLProgramBuilder to infer a sampler's precision based on its
config and visibility.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1846963004
Review URL: https://codereview.chromium.org/1846963004
Diffstat (limited to 'src/gpu/glsl/GrGLSLProgramBuilder.cpp')
-rw-r--r-- | src/gpu/glsl/GrGLSLProgramBuilder.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.cpp b/src/gpu/glsl/GrGLSLProgramBuilder.cpp index 512d9d14d9..4e90452925 100644 --- a/src/gpu/glsl/GrGLSLProgramBuilder.cpp +++ b/src/gpu/glsl/GrGLSLProgramBuilder.cpp @@ -241,10 +241,12 @@ void GrGLSLProgramBuilder::emitSamplers(const GrProcessor& processor, 1 << GrGLSLShaderBuilder::kExternalTexture_GLSLPrivateFeature, externalFeatureString); } + GrSLPrecision precision = this->glslCaps()->samplerPrecision(access.getTexture()->config(), + visibility); name.printf("Sampler%d", t); - localSamplerUniforms[t] = this->uniformHandler()->addUniform(access.getVisibility(), + localSamplerUniforms[t] = this->uniformHandler()->addUniform(visibility, samplerType, - access.getPrecision(), + precision, name.c_str()); outSamplers->emplace_back(localSamplerUniforms[t], access); } |