GLSL: Fix #1330: default outputs for GL_NV_geometry_shader_passthrough

This commit is contained in:
John Kessenich 2018-04-10 22:01:19 -06:00
parent 9de57c815b
commit e891afacf4
2 changed files with 21 additions and 1 deletions

View file

@ -3977,6 +3977,26 @@ void TParseContext::finish()
default:
break;
}
// Set default outputs for GL_NV_geometry_shader_passthrough
if (language == EShLangGeometry && extensionTurnedOn(E_SPV_NV_geometry_shader_passthrough)) {
if (intermediate.getOutputPrimitive() == ElgNone) {
switch (intermediate.getInputPrimitive()) {
case ElgPoints: intermediate.setOutputPrimitive(ElgPoints); break;
case ElgLines: intermediate.setOutputPrimitive(ElgLineStrip); break;
case ElgTriangles: intermediate.setOutputPrimitive(ElgTriangles); break;
default: break;
}
}
if (intermediate.getVertices() == TQualifier::layoutNotSet) {
switch (intermediate.getInputPrimitive()) {
case ElgPoints: intermediate.setVertices(1); break;
case ElgLines: intermediate.setVertices(2); break;
case ElgTriangles: intermediate.setVertices(3); break;
default: break;
}
}
}
}
//