Fix interpolant ES error

The restriction of no swizzling and no struct fields as an interpolant
were not being checked when using the ES profile.

Fixes #3277.
This commit is contained in:
Nathaniel Cesario 2023-09-12 14:35:50 -06:00 committed by arcady-lunarg
parent a8d39f97cd
commit 52c59ecd3d
7 changed files with 655 additions and 27 deletions

View file

@ -43,11 +43,12 @@
#include "../Public/ShaderLang.h"
#include "Versions.h"
#include <algorithm>
#include <array>
#include <functional>
#include <set>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <array>
class TInfoSink;
@ -572,7 +573,8 @@ public:
TIntermTyped* foldSwizzle(TIntermTyped* node, TSwizzleSelectors<TVectorSelector>& fields, const TSourceLoc&);
// Tree ops
static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay , bool BufferReferenceOk = false);
static const TIntermTyped* traverseLValueBase(const TIntermTyped*, bool swizzleOkay, bool bufferReferenceOk = false,
std::function<bool(const TIntermNode&)> proc = {});
// Linkage related
void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&);