SPIR-V do not decorate: members of plain structs with location; non-top level members with interp.
This fixes some vulkanCTS tests that use struct arrays as a member of in/out interface blocks. From Vulkan spec: "If it is a not a Block, then the structure type must have a Location decoration. Its members are assigned consecutive locations in their declaration order, with the first member assigned to the location specified for the structure type. >>>>> The members, and their nested types, must not themselves have Location decorations <<<<" From SPIR-V spec: "When applied to structure-type members, the Decorations Noperspective, Flat, Patch, Centroid, and Sample can only be applied to the top-level members of the structure type. (Nested objects' types cannot be structures whose members are decorated with these decorations.)"
This commit is contained in:
@@ -63,18 +63,9 @@ Linked vertex stage:
|
||||
Decorate 55(sampb2) Binding 5
|
||||
Decorate 56(sampb4) DescriptorSet 0
|
||||
Decorate 56(sampb4) Binding 31
|
||||
MemberDecorate 59(S) 0 Flat
|
||||
MemberDecorate 59(S) 0 Location 1
|
||||
MemberDecorate 59(S) 1 Flat
|
||||
MemberDecorate 59(S) 1 Location 2
|
||||
MemberDecorate 59(S) 2 Flat
|
||||
MemberDecorate 59(S) 2 Location 3
|
||||
MemberDecorate 60(SS) 0 Flat
|
||||
MemberDecorate 60(SS) 0 Location 0
|
||||
MemberDecorate 60(SS) 1 Flat
|
||||
MemberDecorate 60(SS) 1 Location 1
|
||||
MemberDecorate 60(SS) 2 Flat
|
||||
MemberDecorate 60(SS) 2 Location 4
|
||||
MemberDecorate 63(MS) 0 Location 17
|
||||
Decorate 63(MS) Block
|
||||
2: TypeVoid
|
||||
|
||||
@@ -66,14 +66,6 @@ Linked fragment stage:
|
||||
MemberName 140(s2) 2 "s1_1"
|
||||
MemberName 140(s2) 3 "bleh"
|
||||
Name 142 "foo2"
|
||||
MemberDecorate 13(s1) 0 Flat
|
||||
MemberDecorate 13(s1) 1 Flat
|
||||
MemberDecorate 14(s2) 0 Flat
|
||||
MemberDecorate 14(s2) 1 Flat
|
||||
MemberDecorate 14(s2) 2 Flat
|
||||
MemberDecorate 14(s2) 3 Flat
|
||||
MemberDecorate 15(s1) 0 Flat
|
||||
MemberDecorate 15(s1) 1 Flat
|
||||
MemberDecorate 16(s3) 0 Flat
|
||||
MemberDecorate 16(s3) 1 Flat
|
||||
MemberDecorate 16(s3) 2 Flat
|
||||
@@ -82,8 +74,6 @@ Linked fragment stage:
|
||||
Decorate 131(samp2D) DescriptorSet 0
|
||||
MemberDecorate 136(s1) 0 Flat
|
||||
MemberDecorate 136(s1) 1 Flat
|
||||
MemberDecorate 139(s1) 0 Flat
|
||||
MemberDecorate 139(s1) 1 Flat
|
||||
MemberDecorate 140(s2) 0 Flat
|
||||
MemberDecorate 140(s2) 1 Flat
|
||||
MemberDecorate 140(s2) 2 Flat
|
||||
|
||||
@@ -52,19 +52,10 @@ Linked fragment stage:
|
||||
Name 67 "coord"
|
||||
Name 73 "constructed"
|
||||
Decorate 10(Count) Flat
|
||||
MemberDecorate 13(lunarStruct1) 0 Flat
|
||||
MemberDecorate 13(lunarStruct1) 1 Flat
|
||||
MemberDecorate 14(lunarStruct2) 0 Flat
|
||||
MemberDecorate 14(lunarStruct2) 1 Flat
|
||||
MemberDecorate 14(lunarStruct2) 2 Flat
|
||||
MemberDecorate 18(lunarStruct1) 0 Flat
|
||||
MemberDecorate 18(lunarStruct1) 1 Flat
|
||||
MemberDecorate 19(lunarStruct3) 0 Flat
|
||||
MemberDecorate 19(lunarStruct3) 1 Flat
|
||||
MemberDecorate 19(lunarStruct3) 2 Flat
|
||||
MemberDecorate 19(lunarStruct3) 3 Flat
|
||||
MemberDecorate 32(lunarStruct1) 0 Flat
|
||||
MemberDecorate 32(lunarStruct1) 1 Flat
|
||||
MemberDecorate 33(lunarStruct2) 0 Flat
|
||||
MemberDecorate 33(lunarStruct2) 1 Flat
|
||||
MemberDecorate 33(lunarStruct2) 2 Flat
|
||||
|
||||
Reference in New Issue
Block a user