Pass Context to VertexArray and Framebuffer syncstate.
This will enable more Vulkan-friendly idioms like clearing the
vulkan pipeline caches correctly on GL state changes immediately
because we have access to the ContextVk.
BUG=angleproject:1898
Change-Id: I16c848d8abdde8e26a38d384e565cec8548a66d0
Reviewed-on: https://chromium-review.googlesource.com/459079
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 b5d1716..a8a5ade 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1571,7 +1571,7 @@
*params = mCaps.shaderStorageBufferOffsetAlignment;
break;
default:
- mGLState.getIntegerv(mState, pname, params);
+ mGLState.getIntegerv(this, pname, params);
break;
}
}
@@ -2667,7 +2667,7 @@
const State::DirtyBits &dirtyBits = mGLState.getDirtyBits();
mImplementation->syncState(dirtyBits);
mGLState.clearDirtyBits();
- mGLState.syncDirtyObjects();
+ mGLState.syncDirtyObjects(this);
}
void Context::syncRendererState(const State::DirtyBits &bitMask,
@@ -2676,8 +2676,7 @@
const State::DirtyBits &dirtyBits = (mGLState.getDirtyBits() & bitMask);
mImplementation->syncState(dirtyBits);
mGLState.clearDirtyBits(dirtyBits);
-
- mGLState.syncDirtyObjects(objectMask);
+ mGLState.syncDirtyObjects(this, objectMask);
}
void Context::blitFramebuffer(GLint srcX0,
@@ -2778,7 +2777,7 @@
GLint border)
{
// Only sync the read FBO
- mGLState.syncDirtyObject(GL_READ_FRAMEBUFFER);
+ mGLState.syncDirtyObject(this, GL_READ_FRAMEBUFFER);
Rectangle sourceArea(x, y, width, height);
@@ -2803,7 +2802,7 @@
}
// Only sync the read FBO
- mGLState.syncDirtyObject(GL_READ_FRAMEBUFFER);
+ mGLState.syncDirtyObject(this, GL_READ_FRAMEBUFFER);
Offset destOffset(xoffset, yoffset, 0);
Rectangle sourceArea(x, y, width, height);
@@ -2830,7 +2829,7 @@
}
// Only sync the read FBO
- mGLState.syncDirtyObject(GL_READ_FRAMEBUFFER);
+ mGLState.syncDirtyObject(this, GL_READ_FRAMEBUFFER);
Offset destOffset(xoffset, yoffset, zoffset);
Rectangle sourceArea(x, y, width, height);
@@ -2956,7 +2955,7 @@
void Context::discardFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments)
{
// Only sync the FBO
- mGLState.syncDirtyObject(target);
+ mGLState.syncDirtyObject(this, target);
Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
ASSERT(framebuffer);
@@ -2971,12 +2970,12 @@
const GLenum *attachments)
{
// Only sync the FBO
- mGLState.syncDirtyObject(target);
+ mGLState.syncDirtyObject(this, target);
Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
ASSERT(framebuffer);
- if (framebuffer->checkStatus(mState) != GL_FRAMEBUFFER_COMPLETE)
+ if (framebuffer->checkStatus(this) != GL_FRAMEBUFFER_COMPLETE)
{
return;
}
@@ -2993,12 +2992,12 @@
GLsizei height)
{
// Only sync the FBO
- mGLState.syncDirtyObject(target);
+ mGLState.syncDirtyObject(this, target);
Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
ASSERT(framebuffer);
- if (framebuffer->checkStatus(mState) != GL_FRAMEBUFFER_COMPLETE)
+ if (framebuffer->checkStatus(this) != GL_FRAMEBUFFER_COMPLETE)
{
return;
}
@@ -3962,7 +3961,7 @@
void Context::getMultisamplefv(GLenum pname, GLuint index, GLfloat *val)
{
- mGLState.syncDirtyObject(GL_READ_FRAMEBUFFER);
+ mGLState.syncDirtyObject(this, GL_READ_FRAMEBUFFER);
const Framebuffer *framebuffer = mGLState.getReadFramebuffer();
switch (pname)