ES31: Add REFERENCED_BY_GEOMETRY_SHADER as program interface property
This patch implements GL_REFERENCED_BY_GEOMETRY_SHADER as a valid
property of program interfaces.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.geometry_shading.query.referenced_by_geometry_shader
Change-Id: Id9659313d371dbfc7d00bf9d816df4449fbf29ec
Reviewed-on: https://chromium-review.googlesource.com/1025281
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/libANGLE/validationES31.cpp b/src/libANGLE/validationES31.cpp
index 8681136..b85b7a6 100644
--- a/src/libANGLE/validationES31.cpp
+++ b/src/libANGLE/validationES31.cpp
@@ -62,8 +62,9 @@
ValidateNamedProgramInterface(programInterface));
}
-bool ValidateProgramResourceProperty(GLenum prop)
+bool ValidateProgramResourceProperty(const Context *context, GLenum prop)
{
+ ASSERT(context);
switch (prop)
{
case GL_ACTIVE_VARIABLES:
@@ -97,6 +98,9 @@
case GL_TYPE:
return true;
+ case GL_REFERENCED_BY_GEOMETRY_SHADER_EXT:
+ return context->getExtensions().geometryShader;
+
default:
return false;
}
@@ -199,6 +203,7 @@
case GL_REFERENCED_BY_VERTEX_SHADER:
case GL_REFERENCED_BY_FRAGMENT_SHADER:
case GL_REFERENCED_BY_COMPUTE_SHADER:
+ case GL_REFERENCED_BY_GEOMETRY_SHADER_EXT:
{
switch (programInterface)
{
@@ -1665,7 +1670,7 @@
}
for (GLsizei i = 0; i < propCount; i++)
{
- if (!ValidateProgramResourceProperty(props[i]))
+ if (!ValidateProgramResourceProperty(context, props[i]))
{
context->handleError(InvalidEnum() << "Invalid prop.");
return false;