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) ...@@ -849,9 +849,6 @@ void StateManagerGL::setGenericShaderState(const gl::Context *context)
// Sync the current program state // Sync the current program state
const gl::Program *program = glState.getProgram(); const gl::Program *program = glState.getProgram();
const ProgramGL *programGL = GetImplAs<ProgramGL>(program);
useProgram(programGL->getProgramID());
for (size_t uniformBlockIndex = 0; uniformBlockIndex < program->getActiveUniformBlockCount(); for (size_t uniformBlockIndex = 0; uniformBlockIndex < program->getActiveUniformBlockCount();
uniformBlockIndex++) uniformBlockIndex++)
{ {
...@@ -1933,8 +1930,16 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt ...@@ -1933,8 +1930,16 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt
// TODO: implement this // TODO: implement this
break; break;
case gl::State::DIRTY_BIT_PROGRAM_BINDING: case gl::State::DIRTY_BIT_PROGRAM_BINDING:
{
mProgramTexturesAndSamplersDirty = true; mProgramTexturesAndSamplersDirty = true;
gl::Program *program = state.getProgram();
if (program != nullptr)
{
useProgram(GetImplAs<ProgramGL>(program)->getProgramID());
}
break; break;
}
case gl::State::DIRTY_BIT_TEXTURE_BINDINGS: case gl::State::DIRTY_BIT_TEXTURE_BINDINGS:
mProgramTexturesAndSamplersDirty = true; mProgramTexturesAndSamplersDirty = true;
break; 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