ES31: Remove support of GL_OES_geometry_shader in compiler
This patch intends to remove the support of GL_OES_geometry_shader
in ANGLE compiler.
To make the implementation simpler, currently we decide to only
support "GL_EXT_geometry_shader" as the extension string of geometry
shader in ANGLE.
This patch also updates all the related shaders in angle_unittests
into R"()" format.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: Ife9858abeedfb46b02c5c2fb1cda16fa27198511
Reviewed-on: https://chromium-review.googlesource.com/773451
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index 13128a5..5e36b86 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -1263,14 +1263,6 @@
bool TParseContext::checkCanUseExtension(const TSourceLoc &line, TExtension extension)
{
ASSERT(extension != TExtension::UNDEFINED);
- ASSERT(extension != TExtension::EXT_geometry_shader);
- if (extension == TExtension::OES_geometry_shader)
- {
- // OES_geometry_shader and EXT_geometry_shader are always interchangeable.
- constexpr std::array<TExtension, 2u> extensions{
- {TExtension::EXT_geometry_shader, TExtension::OES_geometry_shader}};
- return checkCanUseOneOfExtensions(line, extensions);
- }
return checkCanUseOneOfExtensions(line, std::array<TExtension, 1u>{{extension}});
}
@@ -3628,7 +3620,7 @@
//
// Interface/uniform blocks
-// TODO(jiawei.shao@intel.com): implement GL_OES_shader_io_blocks.
+// TODO(jiawei.shao@intel.com): implement GL_EXT_shader_io_blocks.
//
TIntermDeclaration *TParseContext::addInterfaceBlock(
const TTypeQualifierBuilder &typeQualifierBuilder,
@@ -3955,7 +3947,7 @@
if (baseExpression->getQualifier() == EvqPerVertexIn)
{
- ASSERT(mShaderType == GL_GEOMETRY_SHADER_OES);
+ ASSERT(mShaderType == GL_GEOMETRY_SHADER_EXT);
if (mGeometryShaderInputPrimitiveType == EptUndefined)
{
error(location, "missing input primitive declaration before indexing gl_in.", "[");
@@ -3973,7 +3965,7 @@
{
if (baseExpression->isInterfaceBlock())
{
- // TODO(jiawei.shao@intel.com): implement GL_OES_shader_io_blocks.
+ // TODO(jiawei.shao@intel.com): implement GL_EXT_shader_io_blocks.
switch (baseExpression->getQualifier())
{
case EvqPerVertexIn:
@@ -4345,44 +4337,44 @@
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.imageInternalFormat = EiifR32UI;
}
- else if (qualifierType == "points" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "points" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptPoints;
}
- else if (qualifierType == "lines" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "lines" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptLines;
}
- else if (qualifierType == "lines_adjacency" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "lines_adjacency" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptLinesAdjacency;
}
- else if (qualifierType == "triangles" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "triangles" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptTriangles;
}
- else if (qualifierType == "triangles_adjacency" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "triangles_adjacency" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptTrianglesAdjacency;
}
- else if (qualifierType == "line_strip" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "line_strip" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptLineStrip;
}
- else if (qualifierType == "triangle_strip" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "triangle_strip" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
checkLayoutQualifierSupported(qualifierTypeLine, qualifierType, 310);
qualifier.primitiveType = EptTriangleStrip;
@@ -4540,13 +4532,13 @@
parseNumViews(intValue, intValueLine, intValueString, &qualifier.numViews);
}
}
- else if (qualifierType == "invocations" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "invocations" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
parseInvocations(intValue, intValueLine, intValueString, &qualifier.invocations);
}
- else if (qualifierType == "max_vertices" && mShaderType == GL_GEOMETRY_SHADER_OES &&
- checkCanUseExtension(qualifierTypeLine, TExtension::OES_geometry_shader))
+ else if (qualifierType == "max_vertices" && mShaderType == GL_GEOMETRY_SHADER_EXT &&
+ checkCanUseExtension(qualifierTypeLine, TExtension::EXT_geometry_shader))
{
parseMaxVertices(intValue, intValueLine, intValueString, &qualifier.maxVertices);
}
@@ -4611,7 +4603,7 @@
{
return new TStorageQualifierWrapper(EvqComputeIn, loc);
}
- case GL_GEOMETRY_SHADER_OES:
+ case GL_GEOMETRY_SHADER_EXT:
{
return new TStorageQualifierWrapper(EvqGeometryIn, loc);
}
@@ -4652,7 +4644,7 @@
error(loc, "storage qualifier isn't supported in compute shaders", "out");
return new TStorageQualifierWrapper(EvqLast, loc);
}
- case GL_GEOMETRY_SHADER_OES:
+ case GL_GEOMETRY_SHADER_EXT:
{
return new TStorageQualifierWrapper(EvqGeometryOut, loc);
}
@@ -5816,7 +5808,7 @@
else if (typedThis->getQualifier() == EvqPerVertexIn &&
mGeometryShaderInputPrimitiveType == EptUndefined)
{
- ASSERT(mShaderType == GL_GEOMETRY_SHADER_OES);
+ ASSERT(mShaderType == GL_GEOMETRY_SHADER_EXT);
error(loc, "missing input primitive declaration before calling length on gl_in", "length");
}
else