HLSL: fix GS implementation for EP wrapping
The prior implementation of GS did not work with the new EP wrapping architecture. This fixes it: the Append() method now looks up the actual output rather than the internal sanitized temporary type, and writes to that.
This commit is contained in:
@@ -611,12 +611,15 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList)
|
||||
qualifier.layoutFormat = type.getQualifier().layoutFormat;
|
||||
qualifier.precision = type.getQualifier().precision;
|
||||
|
||||
if (type.getQualifier().storage == EvqVaryingOut ||
|
||||
if (type.getQualifier().storage == EvqOut ||
|
||||
type.getQualifier().storage == EvqBuffer) {
|
||||
qualifier.storage = type.getQualifier().storage;
|
||||
qualifier.readonly = type.getQualifier().readonly;
|
||||
}
|
||||
|
||||
if (type.getQualifier().builtIn != EbvNone)
|
||||
qualifier.builtIn = type.getQualifier().builtIn;
|
||||
|
||||
type.getQualifier() = qualifier;
|
||||
}
|
||||
|
||||
@@ -1035,7 +1038,8 @@ bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geom
|
||||
return false;
|
||||
}
|
||||
|
||||
type.getQualifier().storage = EvqVaryingOut;
|
||||
type.getQualifier().storage = EvqOut;
|
||||
type.getQualifier().builtIn = EbvGsOutputStream;
|
||||
|
||||
if (! acceptTokenClass(EHTokRightAngle)) {
|
||||
expected("right angle bracket");
|
||||
|
||||
Reference in New Issue
Block a user