HLSL: Improve setting and testing of interpolation qualifiers.

Notably, use of 'linear' on a non-input could mark it as an input.
This commit is contained in:
John Kessenich
2016-09-16 17:10:39 -06:00
parent d21baed6bc
commit 34e7ee79bb
8 changed files with 299 additions and 184 deletions

View File

@@ -435,7 +435,7 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type)
return false;
if (type.getBasicType() == EbtBlock) {
// the type was a block, which set some parts of the qualifier
parseContext.mergeQualifiers(loc, type.getQualifier(), qualifier, true);
parseContext.mergeQualifiers(type.getQualifier(), qualifier);
// further, it can create an anonymous instance of the block
if (peekTokenClass(EHTokSemicolon))
parseContext.declareBlock(loc, type);
@@ -476,7 +476,6 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier)
qualifier.volatil = true;
break;
case EHTokLinear:
qualifier.storage = EvqVaryingIn;
qualifier.smooth = true;
break;
case EHTokCentroid: