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();
 }