SPV: Certain decorations are missing for structure-typed in/out variables.

This commit is contained in:
Rex Xu
2016-06-29 15:03:44 +08:00
parent 187254b92c
commit c884b4a47f
5 changed files with 9 additions and 1 deletions

View File

@@ -4024,7 +4024,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
id = createSpvVariable(symbol); id = createSpvVariable(symbol);
symbolValues[symbol->getId()] = id; symbolValues[symbol->getId()] = id;
if (! symbol->getType().isStruct()) { if (symbol->getBasicType() != glslang::EbtBlock) {
addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier())); addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier()));

View File

@@ -63,6 +63,7 @@ Linked vertex stage:
Decorate 55(sampb2) Binding 5 Decorate 55(sampb2) Binding 5
Decorate 56(sampb4) DescriptorSet 0 Decorate 56(sampb4) DescriptorSet 0
Decorate 56(sampb4) Binding 31 Decorate 56(sampb4) Binding 31
Decorate 62(var) Flat
Decorate 62(var) Location 0 Decorate 62(var) Location 0
MemberDecorate 63(MS) 0 Location 17 MemberDecorate 63(MS) 0 Location 17
Decorate 63(MS) Block Decorate 63(MS) Block

View File

@@ -162,6 +162,7 @@ Linked vertex stage:
Decorate 58(bBt3) BufferBlock Decorate 58(bBt3) BufferBlock
Decorate 60(bBtn3) DescriptorSet 1 Decorate 60(bBtn3) DescriptorSet 1
Decorate 60(bBtn3) Binding 0 Decorate 60(bBtn3) Binding 0
Decorate 62(sout) Flat
MemberDecorate 63(S) 0 Invariant MemberDecorate 63(S) 0 Invariant
MemberDecorate 63(S) 1 Invariant MemberDecorate 63(S) 1 Invariant
MemberDecorate 63(S) 2 Invariant MemberDecorate 63(S) 2 Invariant

View File

@@ -44,8 +44,11 @@ Linked fragment stage:
Name 128 "samp2D" Name 128 "samp2D"
Name 134 "foo" Name 134 "foo"
Name 135 "foo2" Name 135 "foo2"
Decorate 15(foo3) Flat
Decorate 90(condition) Flat Decorate 90(condition) Flat
Decorate 128(samp2D) DescriptorSet 0 Decorate 128(samp2D) DescriptorSet 0
Decorate 134(foo) Flat
Decorate 135(foo2) Flat
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1

View File

@@ -39,6 +39,9 @@ Linked fragment stage:
Name 63 "coord" Name 63 "coord"
Name 69 "constructed" Name 69 "constructed"
Decorate 10(Count) Flat Decorate 10(Count) Flat
Decorate 20(foo3) Flat
Decorate 34(foo2) Flat
Decorate 36(foo) Flat
Decorate 59(samp2D) DescriptorSet 0 Decorate 59(samp2D) DescriptorSet 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2