Add Error check flag in io mapper
GLSL could detect contradictory uniform binding, but missing error reporting, even if we could now observe error inside infosink. Add error check when first time validate uniform binding. When doing traversal, it should be zero error. This error check flag will be used during linking time. To quickly report errors like contradictory uniform bindings. Add error check flags for TDefaultGlslIoResolver when catching EPrefixInternalError
This commit is contained in:
parent
bd97b6f9f2
commit
8a914f4293
2 changed files with 4 additions and 0 deletions
|
|
@ -831,6 +831,7 @@ void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink&
|
|||
if (iter->second != location) {
|
||||
TString errorMsg = "Invalid location: " + name;
|
||||
infoSink.info.message(EPrefixInternalError, errorMsg.c_str());
|
||||
hasError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -856,6 +857,7 @@ void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink&
|
|||
if (iter->second != location) {
|
||||
TString errorMsg = "Invalid location: " + name;
|
||||
infoSink.info.message(EPrefixInternalError, errorMsg.c_str());
|
||||
hasError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -884,6 +886,7 @@ void TDefaultGlslIoResolver::reserverResourceSlot(TVarEntryInfo& ent, TInfoSink&
|
|||
if (iter->second != binding) {
|
||||
TString errorMsg = "Invalid binding: " + name;
|
||||
infoSink.info.message(EPrefixInternalError, errorMsg.c_str());
|
||||
hasError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ public:
|
|||
uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage);
|
||||
|
||||
TSlotSetMap slots;
|
||||
bool hasError = false;
|
||||
|
||||
protected:
|
||||
TDefaultIoResolverBase(TDefaultIoResolverBase&);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue