Sync dirty objects before Context dirty bits.
This allows the dirty objects to notify the context if something
needs to be communicated down to the ContextImpl. In this case it
means a dirty Texture can notify the Context that it needs to re-apply
texture bindings.
BUG=angleproject:1387
Change-Id: I162115e51112d1c27c0dab621d1b3d14446af96d
Reviewed-on: https://chromium-review.googlesource.com/648052
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 209032e..bf6d20c 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -2765,19 +2765,19 @@
void Context::syncRendererState()
{
+ mGLState.syncDirtyObjects(this);
const State::DirtyBits &dirtyBits = mGLState.getDirtyBits();
mImplementation->syncState(this, dirtyBits);
mGLState.clearDirtyBits();
- mGLState.syncDirtyObjects(this);
}
void Context::syncRendererState(const State::DirtyBits &bitMask,
const State::DirtyObjects &objectMask)
{
+ mGLState.syncDirtyObjects(this, objectMask);
const State::DirtyBits &dirtyBits = (mGLState.getDirtyBits() & bitMask);
mImplementation->syncState(this, dirtyBits);
mGLState.clearDirtyBits(dirtyBits);
- mGLState.syncDirtyObjects(this, objectMask);
}
void Context::blitFramebuffer(GLint srcX0,