Merge pull request #2089 from Roy-AMD/Fix-iomapper-issue
Fix iomapper issue
This commit is contained in:
commit
c008fcb8cc
@ -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
|
|||||||
|
|
||||||
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
|
|||||||
|
|
||||||
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*/) {
|
|||||||
|
|
||||||
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&
|
|||||||
|
|
||||||
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];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user