SPV: Tighten up number of struct-types declared based on decoration.

Takes some pressure off of issue #304.
Structures don't inherit locations and then explicitly decorate
members with them, so removed this reason to have another instance
of a structure type.
This commit is contained in:
John Kessenich
2016-09-01 17:05:23 -06:00
parent 5e56423046
commit f2b7f3353b
61 changed files with 2057 additions and 2308 deletions

View File

@@ -7,12 +7,12 @@ Linked tessellation control stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
// Id's are bound by 23
Capability Tessellation
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 9 16 20 23
EntryPoint TessellationControl 4 "main" 9 16 19 22
ExecutionMode 4 OutputVertices 4
Source GLSL 450
Name 4 "main"
@@ -25,42 +25,39 @@ Linked tessellation control stage:
MemberName 11(TheBlock) 1 "bMem2"
MemberName 11(TheBlock) 2 "s"
Name 16 "tcBlock"
Name 17 "S"
MemberName 17(S) 0 "sMem1"
MemberName 17(S) 1 "sMem2"
Name 18 "SingleBlock"
MemberName 18(SingleBlock) 0 "bMem1"
MemberName 18(SingleBlock) 1 "bMem2"
MemberName 18(SingleBlock) 2 "s"
Name 20 "singleBlock"
Name 21 "bn"
MemberName 21(bn) 0 "v1"
MemberName 21(bn) 1 "v2"
MemberName 21(bn) 2 "v3"
Name 23 ""
Name 17 "SingleBlock"
MemberName 17(SingleBlock) 0 "bMem1"
MemberName 17(SingleBlock) 1 "bMem2"
MemberName 17(SingleBlock) 2 "s"
Name 19 "singleBlock"
Name 20 "bn"
MemberName 20(bn) 0 "v1"
MemberName 20(bn) 1 "v2"
MemberName 20(bn) 2 "v3"
Name 22 ""
Decorate 9(patchOut) Patch
MemberDecorate 11(TheBlock) 0 Patch
MemberDecorate 11(TheBlock) 1 Patch
MemberDecorate 11(TheBlock) 2 Patch
Decorate 11(TheBlock) Block
Decorate 16(tcBlock) Location 12
MemberDecorate 18(SingleBlock) 0 Patch
MemberDecorate 18(SingleBlock) 0 Location 2
MemberDecorate 18(SingleBlock) 1 Patch
MemberDecorate 18(SingleBlock) 1 Location 3
MemberDecorate 18(SingleBlock) 2 Patch
MemberDecorate 18(SingleBlock) 2 Location 4
Decorate 18(SingleBlock) Block
Decorate 20(singleBlock) Location 2
MemberDecorate 21(bn) 0 Patch
MemberDecorate 21(bn) 0 Location 20
MemberDecorate 21(bn) 0 Component 0
MemberDecorate 21(bn) 1 Patch
MemberDecorate 21(bn) 1 Location 24
MemberDecorate 21(bn) 2 Patch
MemberDecorate 21(bn) 2 Location 25
MemberDecorate 21(bn) 2 Component 0
Decorate 21(bn) Block
MemberDecorate 17(SingleBlock) 0 Patch
MemberDecorate 17(SingleBlock) 0 Location 2
MemberDecorate 17(SingleBlock) 1 Patch
MemberDecorate 17(SingleBlock) 1 Location 3
MemberDecorate 17(SingleBlock) 2 Patch
MemberDecorate 17(SingleBlock) 2 Location 4
Decorate 17(SingleBlock) Block
Decorate 19(singleBlock) Location 2
MemberDecorate 20(bn) 0 Patch
MemberDecorate 20(bn) 0 Location 20
MemberDecorate 20(bn) 0 Component 0
MemberDecorate 20(bn) 1 Patch
MemberDecorate 20(bn) 1 Location 24
MemberDecorate 20(bn) 2 Patch
MemberDecorate 20(bn) 2 Location 25
MemberDecorate 20(bn) 2 Component 0
Decorate 20(bn) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -74,13 +71,12 @@ Linked tessellation control stage:
14: TypeArray 11(TheBlock) 13
15: TypePointer Output 14
16(tcBlock): 15(ptr) Variable Output
17(S): TypeStruct 6(float) 6(float)
18(SingleBlock): TypeStruct 6(float) 6(float) 17(S)
19: TypePointer Output 18(SingleBlock)
20(singleBlock): 19(ptr) Variable Output
21(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4)
22: TypePointer Output 21(bn)
23: 22(ptr) Variable Output
17(SingleBlock): TypeStruct 6(float) 6(float) 10(S)
18: TypePointer Output 17(SingleBlock)
19(singleBlock): 18(ptr) Variable Output
20(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4)
21: TypePointer Output 20(bn)
22: 21(ptr) Variable Output
4(main): 2 Function None 3
5: Label
Return