Unverified Commit c008fcb8 by John Kessenich Committed by GitHub

Merge pull request #2089 from Roy-AMD/Fix-iomapper-issue

Fix iomapper issue
parents ed0da37d 615ae258
...@@ -579,7 +579,10 @@ TDefaultGlslIoResolver::TDefaultGlslIoResolver(const TIntermediate& intermediate ...@@ -579,7 +579,10 @@ TDefaultGlslIoResolver::TDefaultGlslIoResolver(const TIntermediate& intermediate
int TDefaultGlslIoResolver::resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) { int TDefaultGlslIoResolver::resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) {
const TType& type = ent.symbol->getType(); const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getName(); const TString& name = IsAnonymous(ent.symbol->getName()) ?
ent.symbol->getType().getTypeName()
:
ent.symbol->getName();
if (currentStage != stage) { if (currentStage != stage) {
preStage = currentStage; preStage = currentStage;
currentStage = stage; currentStage = stage;
...@@ -663,7 +666,10 @@ int TDefaultGlslIoResolver::resolveInOutLocation(EShLanguage stage, TVarEntryInf ...@@ -663,7 +666,10 @@ int TDefaultGlslIoResolver::resolveInOutLocation(EShLanguage stage, TVarEntryInf
int TDefaultGlslIoResolver::resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) { int TDefaultGlslIoResolver::resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) {
const TType& type = ent.symbol->getType(); const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getName(); const TString& name = IsAnonymous(ent.symbol->getName()) ?
ent.symbol->getType().getTypeName()
:
ent.symbol->getName();
// kick out of not doing this // kick out of not doing this
if (! doAutoLocationMapping()) { if (! doAutoLocationMapping()) {
return ent.newLocation = -1; return ent.newLocation = -1;
...@@ -734,7 +740,10 @@ int TDefaultGlslIoResolver::resolveUniformLocation(EShLanguage /*stage*/, TVarEn ...@@ -734,7 +740,10 @@ int TDefaultGlslIoResolver::resolveUniformLocation(EShLanguage /*stage*/, TVarEn
int TDefaultGlslIoResolver::resolveBinding(EShLanguage /*stage*/, TVarEntryInfo& ent) { int TDefaultGlslIoResolver::resolveBinding(EShLanguage /*stage*/, TVarEntryInfo& ent) {
const TType& type = ent.symbol->getType(); const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getName(); const TString& name = IsAnonymous(ent.symbol->getName()) ?
ent.symbol->getType().getTypeName()
:
ent.symbol->getName();
// On OpenGL arrays of opaque types take a seperate binding for each element // On OpenGL arrays of opaque types take a seperate binding for each element
int numBindings = intermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1; int numBindings = intermediate.getSpv().openGl != 0 && type.isSizedArray() ? type.getCumulativeArraySize() : 1;
TResourceType resource = getResourceType(type); TResourceType resource = getResourceType(type);
...@@ -809,7 +818,10 @@ void TDefaultGlslIoResolver::endCollect(EShLanguage /*stage*/) { ...@@ -809,7 +818,10 @@ void TDefaultGlslIoResolver::endCollect(EShLanguage /*stage*/) {
void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink& infoSink) { void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink& infoSink) {
const TType& type = ent.symbol->getType(); const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getName(); const TString& name = IsAnonymous(ent.symbol->getName()) ?
ent.symbol->getType().getTypeName()
:
ent.symbol->getName();
TStorageQualifier storage = type.getQualifier().storage; TStorageQualifier storage = type.getQualifier().storage;
EShLanguage stage(EShLangCount); EShLanguage stage(EShLangCount);
switch (storage) { switch (storage) {
...@@ -869,7 +881,10 @@ void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink& ...@@ -869,7 +881,10 @@ void TDefaultGlslIoResolver::reserverStorageSlot(TVarEntryInfo& ent, TInfoSink&
void TDefaultGlslIoResolver::reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) { void TDefaultGlslIoResolver::reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) {
const TType& type = ent.symbol->getType(); const TType& type = ent.symbol->getType();
const TString& name = ent.symbol->getName(); const TString& name = IsAnonymous(ent.symbol->getName()) ?
ent.symbol->getType().getTypeName()
:
ent.symbol->getName();
int resource = getResourceType(type); int resource = getResourceType(type);
if (type.getQualifier().hasBinding()) { if (type.getQualifier().hasBinding()) {
TVarSlotMap& varSlotMap = resourceSlotMap[resource]; TVarSlotMap& varSlotMap = resourceSlotMap[resource];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment