Merge pull request #2458 from ShchchowAMD/unique_id-fix

Fix issue for new unique id system.
This commit is contained in:
greg-lunarg 2021-02-15 13:22:14 -07:00 committed by GitHub
commit b0f8a0c3ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 110 additions and 71 deletions

View file

@ -227,10 +227,10 @@ enum ComputeDerivativeMode {
class TIdMaps {
public:
TMap<TString, int>& operator[](int i) { return maps[i]; }
const TMap<TString, int>& operator[](int i) const { return maps[i]; }
TMap<TString, long long>& operator[](long long i) { return maps[i]; }
const TMap<TString, long long>& operator[](long long i) const { return maps[i]; }
private:
TMap<TString, int> maps[EsiCount];
TMap<TString, long long> maps[EsiCount];
};
class TNumericFeatures {
@ -292,7 +292,8 @@ public:
invertY(false),
useStorageBuffer(false),
nanMinMaxClamp(false),
depthReplacing(false)
depthReplacing(false),
uniqueId(0)
#ifndef GLSLANG_WEB
,
implicitThisName("@this"), implicitCounterName("@count"),
@ -911,6 +912,8 @@ public:
void addProcess(const std::string& process) { processes.addProcess(process); }
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
unsigned long long getUniqueId() const { return uniqueId; }
void setUniqueId(unsigned long long id) { uniqueId = id; }
// Certain explicit conversions are allowed conditionally
#ifdef GLSLANG_WEB
@ -939,14 +942,14 @@ public:
#endif
protected:
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
TIntermSymbol* addSymbol(long long Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
void error(TInfoSink& infoSink, const char*);
void warn(TInfoSink& infoSink, const char*);
void mergeCallGraphs(TInfoSink&, TIntermediate&);
void mergeModes(TInfoSink&, TIntermediate&);
void mergeTrees(TInfoSink&, TIntermediate&);
void seedIdMap(TIdMaps& idMaps, int& maxId);
void remapIds(const TIdMaps& idMaps, int idShift, TIntermediate&);
void seedIdMap(TIdMaps& idMaps, long long& IdShift);
void remapIds(const TIdMaps& idMaps, long long idShift, TIntermediate&);
void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
void mergeImplicitArraySizes(TType&, const TType&);
@ -999,6 +1002,7 @@ protected:
int localSize[3];
bool localSizeNotDefault[3];
int localSizeSpecId[3];
unsigned long long uniqueId;
#ifndef GLSLANG_WEB
public:
const char* const implicitThisName;