mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-30 14:40:34 +00:00
For GL_NV_geometry_shader_passthrough extension, the Inferred output primitive for ElgTriangles should be ElgTriangleStrip.
Also removed unnecessary relax for GL_NV_geometry_shader_passthrough in link validate
This commit is contained in:
parent
ca042a0ffb
commit
07ef0e4c84
@ -11,6 +11,7 @@ spv.GeometryShaderPassthrough.geom
|
|||||||
EntryPoint Geometry 4 "main" 10 14
|
EntryPoint Geometry 4 "main" 10 14
|
||||||
ExecutionMode 4 Triangles
|
ExecutionMode 4 Triangles
|
||||||
ExecutionMode 4 Invocations 1
|
ExecutionMode 4 Invocations 1
|
||||||
|
ExecutionMode 4 OutputTriangleStrip
|
||||||
ExecutionMode 4 OutputVertices 3
|
ExecutionMode 4 OutputVertices 3
|
||||||
Source GLSL 450
|
Source GLSL 450
|
||||||
SourceExtension "GL_NV_geometry_shader_passthrough"
|
SourceExtension "GL_NV_geometry_shader_passthrough"
|
||||||
|
@ -4487,7 +4487,7 @@ void TParseContext::finish()
|
|||||||
switch (intermediate.getInputPrimitive()) {
|
switch (intermediate.getInputPrimitive()) {
|
||||||
case ElgPoints: intermediate.setOutputPrimitive(ElgPoints); break;
|
case ElgPoints: intermediate.setOutputPrimitive(ElgPoints); break;
|
||||||
case ElgLines: intermediate.setOutputPrimitive(ElgLineStrip); break;
|
case ElgLines: intermediate.setOutputPrimitive(ElgLineStrip); break;
|
||||||
case ElgTriangles: intermediate.setOutputPrimitive(ElgTriangles); break;
|
case ElgTriangles: intermediate.setOutputPrimitive(ElgTriangleStrip); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -689,17 +689,9 @@ void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled)
|
|||||||
case EShLangGeometry:
|
case EShLangGeometry:
|
||||||
if (inputPrimitive == ElgNone)
|
if (inputPrimitive == ElgNone)
|
||||||
error(infoSink, "At least one shader must specify an input layout primitive");
|
error(infoSink, "At least one shader must specify an input layout primitive");
|
||||||
if (outputPrimitive == ElgNone
|
if (outputPrimitive == ElgNone)
|
||||||
#ifdef NV_EXTENSIONS
|
|
||||||
&& !getGeoPassthroughEXT()
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
error(infoSink, "At least one shader must specify an output layout primitive");
|
error(infoSink, "At least one shader must specify an output layout primitive");
|
||||||
if (vertices == TQualifier::layoutNotSet
|
if (vertices == TQualifier::layoutNotSet)
|
||||||
#ifdef NV_EXTENSIONS
|
|
||||||
&& !getGeoPassthroughEXT()
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
error(infoSink, "At least one shader must specify a layout(max_vertices = value)");
|
error(infoSink, "At least one shader must specify a layout(max_vertices = value)");
|
||||||
break;
|
break;
|
||||||
case EShLangFragment:
|
case EShLangFragment:
|
||||||
|
Loading…
Reference in New Issue
Block a user