Commit f5be5baf by Geoff Lang

StateManagerGL: Use dirty bits for program binding.

BUG=angleproject:2188 Change-Id: I7456692e779107514ab87bfb1a0ab91178c9fc3a Reviewed-on: https://chromium-review.googlesource.com/797356Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent d5f44c98
......@@ -849,9 +849,6 @@ void StateManagerGL::setGenericShaderState(const gl::Context *context)
// Sync the current program state
const gl::Program *program = glState.getProgram();
const ProgramGL *programGL = GetImplAs<ProgramGL>(program);
useProgram(programGL->getProgramID());
for (size_t uniformBlockIndex = 0; uniformBlockIndex < program->getActiveUniformBlockCount();
uniformBlockIndex++)
{
......@@ -1933,8 +1930,16 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt
// TODO: implement this
break;
case gl::State::DIRTY_BIT_PROGRAM_BINDING:
{
mProgramTexturesAndSamplersDirty = true;
gl::Program *program = state.getProgram();
if (program != nullptr)
{
useProgram(GetImplAs<ProgramGL>(program)->getProgramID());
}
break;
}
case gl::State::DIRTY_BIT_TEXTURE_BINDINGS:
mProgramTexturesAndSamplersDirty = true;
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment