Generate an error if no XFB varyings are in use
GLES specifies an error if BeginTransformFeedback is called when no
binding points would be used.
BUG=angleproject:2184
TEST=angle_end2end_tests
Change-Id: Ie4489b5ba63885e718dafdcdaacc02b603959be3
Reviewed-on: https://chromium-review.googlesource.com/719136
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/libANGLE/validationES3.cpp b/src/libANGLE/validationES3.cpp
index 4f9c1e1..37a76d3 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -2139,6 +2139,20 @@
}
}
+ auto program = context->getGLState().getProgram();
+
+ if (!program)
+ {
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(), ProgramNotBound);
+ return false;
+ }
+
+ if (program->getTransformFeedbackVaryingCount() == 0)
+ {
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(), NoTransformFeedbackOutputVariables);
+ return false;
+ }
+
return true;
}