HLSL: Have loose uniforms also go through the makeTypeNonIo() path.

This commit is contained in:
John Kessenich 2017-02-03 14:06:36 -07:00
parent 2c5ab9c8fc
commit 88c4464df5
6 changed files with 21 additions and 14 deletions

View file

@ -159,6 +159,12 @@ bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const
return false;
}
void HlslParseContext::growGlobalUniformBlock(TSourceLoc& loc, TType& memberType, TString& memberName)
{
makeTypeNonIo(&memberType); //?? losing offsets is okay?
TParseContextBase::growGlobalUniformBlock(loc, memberType, memberName);
}
//
// Return a TLayoutFormat corresponding to the given texture type.
//

View file

@ -160,6 +160,8 @@ public:
void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); }
void popSwitchSequence() { switchSequenceStack.pop_back(); }
virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName) override;
// Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore.
TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node);
bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override;