aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLUniformHandler.cpp
diff options
context:
space:
mode:
authorGravatar kkinnunen <kkinnunen@nvidia.com>2016-05-30 22:30:24 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-30 22:30:24 -0700
commit3eb7d76b9c3072c33ca8a158bc78ba864521e0f0 (patch)
tree540dd1b78c19ca02b48a7bf0ac2daf9aa95a6d39 /src/gpu/gl/GrGLUniformHandler.cpp
parentabfd028c26ae065631c0a3865609be85e96cc324 (diff)
Fix incorrect sampler locations when using CHROMIUM_bind_uniform_location
Fix incorrect sampler locations when using CHROMIUM_bind_uniform_location. The extension is not used at the moment, though. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2023783002 Review-Url: https://codereview.chromium.org/2023783002
Diffstat (limited to 'src/gpu/gl/GrGLUniformHandler.cpp')
-rw-r--r--src/gpu/gl/GrGLUniformHandler.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gpu/gl/GrGLUniformHandler.cpp b/src/gpu/gl/GrGLUniformHandler.cpp
index c4189267f1..c388e4621b 100644
--- a/src/gpu/gl/GrGLUniformHandler.cpp
+++ b/src/gpu/gl/GrGLUniformHandler.cpp
@@ -85,14 +85,15 @@ void GrGLUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString*
void GrGLUniformHandler::bindUniformLocations(GrGLuint programID, const GrGLCaps& caps) {
if (caps.bindUniformLocationSupport()) {
- int count = fUniforms.count();
- for (int i = 0; i < count; ++i) {
+ int uniformCnt = fUniforms.count();
+ for (int i = 0; i < uniformCnt; ++i) {
GL_CALL(BindUniformLocation(programID, i, fUniforms[i].fVariable.c_str()));
fUniforms[i].fLocation = i;
}
for (int i = 0; i < fSamplers.count(); ++i) {
- GL_CALL(BindUniformLocation(programID, i, fSamplers[i].fShaderVar.c_str()));
- fSamplers[i].fLocation = i;
+ GrGLint location = i + uniformCnt;
+ GL_CALL(BindUniformLocation(programID, location, fSamplers[i].fShaderVar.c_str()));
+ fSamplers[i].fLocation = location;
}
}
}