Commit dee8dad4 by Brandon Schade Committed by Angle LUCI CQ

Vulkan: Fix geometry shader qualifier validation

Added missing validation to handle in/out qualifier for geometry shaders Test: KHR-GLES32.core.geometry_shader.nonarray_input.* Bug: angleproject:5579 Change-Id: I9ee0853526ce296df1f56fb7783f9847b31e49bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901256 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 9bc837f6
......@@ -4430,8 +4430,13 @@ TIntermDeclaration *TParseContext::addInterfaceBlock(
case EvqFlat:
case EvqNoPerspective:
case EvqCentroid:
case EvqGeometryIn:
case EvqGeometryOut:
if (!IsShaderIoBlock(typeQualifier.qualifier) &&
typeQualifier.qualifier != EvqPatchIn && typeQualifier.qualifier != EvqPatchOut)
typeQualifier.qualifier != EvqPatchIn &&
typeQualifier.qualifier != EvqPatchOut &&
typeQualifier.qualifier != EvqGeometryIn &&
typeQualifier.qualifier != EvqGeometryOut)
{
error(field->line(), "invalid qualifier on interface block member",
getQualifierString(qualifier));
......
......@@ -1898,6 +1898,12 @@ bool ValidateGetProgramPipelineivBase(const Context *context,
case GL_FRAGMENT_SHADER:
case GL_COMPUTE_SHADER:
break;
case GL_GEOMETRY_SHADER:
return context->getExtensions().geometryShader || context->getClientVersion() >= ES_3_2;
case GL_TESS_CONTROL_SHADER:
case GL_TESS_EVALUATION_SHADER:
return context->getExtensions().tessellationShaderEXT ||
context->getClientVersion() >= ES_3_2;
default:
context->validationError(GL_INVALID_ENUM, kInvalidPname);
......
......@@ -10,8 +10,6 @@
// tests)
// Translator's lack of support for redefining gl_PerVertex
5579 VULKAN WIN : KHR-GLES32.core.geometry_shader.api.getProgramiv3 = FAIL
// Failure in translator validation regarding varying arrayness
5579 VULKAN WIN : KHR-GLES32.core.geometry_shader.nonarray_input.* = FAIL
// Crash gathering transform feedback varyings on GS-only separable program
5579 VULKAN WIN : KHR-GLES32.core.geometry_shader.api.program_pipeline_vs_gs_capture = SKIP
5579 VULKAN WIN : KHR-GLES32.core.separable_programs_tf.geometry_active = SKIP
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment