Update ANGLE_multiview validation.
Multiview transform feedback now passes if the transform feedback is
paused. Also updates the relevant validation. This aligns the
ANGLE_multiview validation with OVR_multivew and with the WebGL
extension spec.
This change allow us to combine multiple draw call validation updates
into one update function.
Bug: angleproject:3012
Change-Id: I2ce04edc386039134198afa1792201e03cc20490
Reviewed-on: https://chromium-review.googlesource.com/c/1357148
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 9cd9632..772af30 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1176,7 +1176,6 @@
TransformFeedback *transformFeedback =
checkTransformFeedbackAllocation(transformFeedbackHandle);
mGLState.setTransformFeedbackBinding(this, transformFeedback);
- mStateCache.onTransformFeedbackChange(this);
}
void Context::bindProgramPipeline(GLuint pipelineHandle)
@@ -3167,7 +3166,7 @@
ASSERT(!transformFeedback->isPaused());
transformFeedback->begin(this, primitiveMode, mGLState.getProgram());
- mStateCache.onTransformFeedbackChange(this);
+ mStateCache.onActiveTransformFeedbackChange(this);
}
bool Context::hasActiveTransformFeedback(GLuint program) const
@@ -6440,7 +6439,7 @@
{
TransformFeedback *transformFeedback = mGLState.getCurrentTransformFeedback();
transformFeedback->end(this);
- mStateCache.onTransformFeedbackChange(this);
+ mStateCache.onActiveTransformFeedbackChange(this);
}
void Context::transformFeedbackVaryings(GLuint program,
@@ -6517,12 +6516,14 @@
{
TransformFeedback *transformFeedback = mGLState.getCurrentTransformFeedback();
transformFeedback->pause();
+ mStateCache.onActiveTransformFeedbackChange(this);
}
void Context::resumeTransformFeedback()
{
TransformFeedback *transformFeedback = mGLState.getCurrentTransformFeedback();
transformFeedback->resume();
+ mStateCache.onActiveTransformFeedbackChange(this);
}
void Context::getUniformuiv(GLuint program, GLint location, GLuint *params)
@@ -8351,7 +8352,7 @@
updateBasicDrawStatesError();
}
-void StateCache::onTransformFeedbackChange(Context *context)
+void StateCache::onActiveTransformFeedbackChange(Context *context)
{
updateBasicDrawStatesError();
}