From 3eb7d76b9c3072c33ca8a158bc78ba864521e0f0 Mon Sep 17 00:00:00 2001 From: kkinnunen Date: Mon, 30 May 2016 22:30:24 -0700 Subject: 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 --- src/gpu/gl/GrGLUniformHandler.cpp | 9 +++++---- 1 file 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; } } } -- cgit v1.2.3