Pass bit mask to ContextImpl::syncState.
This can be used to mask out inappropriate local dirty bits.
Bug: angleproject:2763
Change-Id: Ie46e464df0dc719c963ff9f7066d42eb5a028262
Reviewed-on: https://chromium-review.googlesource.com/c/1264062
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@google.com>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 3150452..c0b8a8b 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -483,6 +483,8 @@
}
// Initialize dirty bit masks
+ mAllDirtyBits.set();
+
mDrawDirtyObjects.set(State::DIRTY_OBJECT_DRAW_FRAMEBUFFER);
mDrawDirtyObjects.set(State::DIRTY_OBJECT_VERTEX_ARRAY);
mDrawDirtyObjects.set(State::DIRTY_OBJECT_PROGRAM_TEXTURES);
@@ -3503,7 +3505,7 @@
angle::Result Context::syncDirtyBits()
{
const State::DirtyBits &dirtyBits = mGLState.getDirtyBits();
- ANGLE_TRY(mImplementation->syncState(this, dirtyBits));
+ ANGLE_TRY(mImplementation->syncState(this, dirtyBits, mAllDirtyBits));
mGLState.clearDirtyBits();
return angle::Result::Continue();
}
@@ -3511,7 +3513,7 @@
angle::Result Context::syncDirtyBits(const State::DirtyBits &bitMask)
{
const State::DirtyBits &dirtyBits = (mGLState.getDirtyBits() & bitMask);
- ANGLE_TRY(mImplementation->syncState(this, dirtyBits));
+ ANGLE_TRY(mImplementation->syncState(this, dirtyBits, bitMask));
mGLState.clearDirtyBits(dirtyBits);
return angle::Result::Continue();
}