Vulkan: Finish semantics for what creates spec-const-semantics.

Note: This required adding a new test mode to see the AST for vulkan tests.
This also required reworking some deeper parts of type creation, regarding
when storage qualification and constness is deduced bottom-up or dictated
top-down.
This commit is contained in:
John Kessenich 2016-05-23 16:07:07 -06:00
parent 87a94fc0fa
commit d82c906378
16 changed files with 610 additions and 245 deletions

View file

@ -7,7 +7,7 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 134
// Id's are bound by 131
Capability Shader
1: ExtInstImport "GLSL.std.450"
@ -91,48 +91,45 @@ Linked vertex stage:
89: 41(int) Constant 4294967294
90: TypeVector 41(int) 4
91: 90(ivec4) SpecConstantComposite 42 42 88 89
92: 39(float) Constant 1067450368
93: TypeVector 39(float) 4
94: 93(fvec4) SpecConstantComposite 40 92 40 92
95: TypeVector 22(bool) 4
96: 90(ivec4) ConstantComposite 44 44 44 44
97: 95(bvec4) SpecConstantOp 171 87 96
98: 95(bvec4) SpecConstantOp 171 91 96
99: 86(ivec4) ConstantComposite 12 12 12 12
100: 86(ivec4) ConstantComposite 32 32 32 32
101: 86(ivec4) SpecConstantOp 169 97 100 99
102: 90(ivec4) ConstantComposite 48 48 48 48
103: 90(ivec4) SpecConstantOp 169 97 102 96
104: 90(ivec4) SpecConstantOp 128 87 96
105: 86(ivec4) SpecConstantOp 128 91 96
106: 86(ivec4) SpecConstantOp 200 87
107: 86(ivec4) SpecConstantOp 126 87
108: 86(ivec4) ConstantComposite 20 20 20 20
109: 86(ivec4) SpecConstantOp 128 87 108
110: 86(ivec4) SpecConstantOp 128 87 108
111: 86(ivec4) ConstantComposite 56 56 56 56
112: 86(ivec4) SpecConstantOp 130 110 111
113: 86(ivec4) ConstantComposite 58 58 58 58
114: 86(ivec4) SpecConstantOp 130 112 113
115: 86(ivec4) SpecConstantOp 132 87 108
116: 86(ivec4) ConstantComposite 63 63 63 63
117: 86(ivec4) SpecConstantOp 135 115 116
118: 86(ivec4) SpecConstantOp 139 87 113
119: 86(ivec4) ConstantComposite 72 72 72 72
120: 86(ivec4) SpecConstantOp 195 87 119
121: 86(ivec4) SpecConstantOp 196 87 108
122: 6(int) Constant 1024
123: 86(ivec4) ConstantComposite 122 122 122 122
124: 86(ivec4) SpecConstantOp 197 87 123
125: 41(int) Constant 2048
126: 90(ivec4) ConstantComposite 125 125 125 125
127: 90(ivec4) SpecConstantOp 198 91 126
128: 6(int) SpecConstantOp 81 87 0
129: TypeVector 6(int) 2
130: 129(ivec2) SpecConstantOp 79 87 87 1(GLSL.std.450) 0
131: TypeVector 6(int) 3
132: 131(ivec3) SpecConstantOp 79 87 87 2 1(GLSL.std.450) 0
133: 86(ivec4) SpecConstantOp 79 87 87 1(GLSL.std.450) 2 0 3
92: TypeVector 22(bool) 4
93: 90(ivec4) ConstantComposite 44 44 44 44
94: 92(bvec4) SpecConstantOp 171 87 93
95: 92(bvec4) SpecConstantOp 171 91 93
96: 86(ivec4) ConstantComposite 12 12 12 12
97: 86(ivec4) ConstantComposite 32 32 32 32
98: 86(ivec4) SpecConstantOp 169 94 97 96
99: 90(ivec4) ConstantComposite 48 48 48 48
100: 90(ivec4) SpecConstantOp 169 94 99 93
101: 90(ivec4) SpecConstantOp 128 87 93
102: 86(ivec4) SpecConstantOp 128 91 93
103: 86(ivec4) SpecConstantOp 200 87
104: 86(ivec4) SpecConstantOp 126 87
105: 86(ivec4) ConstantComposite 20 20 20 20
106: 86(ivec4) SpecConstantOp 128 87 105
107: 86(ivec4) SpecConstantOp 128 87 105
108: 86(ivec4) ConstantComposite 56 56 56 56
109: 86(ivec4) SpecConstantOp 130 107 108
110: 86(ivec4) ConstantComposite 58 58 58 58
111: 86(ivec4) SpecConstantOp 130 109 110
112: 86(ivec4) SpecConstantOp 132 87 105
113: 86(ivec4) ConstantComposite 63 63 63 63
114: 86(ivec4) SpecConstantOp 135 112 113
115: 86(ivec4) SpecConstantOp 139 87 110
116: 86(ivec4) ConstantComposite 72 72 72 72
117: 86(ivec4) SpecConstantOp 195 87 116
118: 86(ivec4) SpecConstantOp 196 87 105
119: 6(int) Constant 1024
120: 86(ivec4) ConstantComposite 119 119 119 119
121: 86(ivec4) SpecConstantOp 197 87 120
122: 41(int) Constant 2048
123: 90(ivec4) ConstantComposite 122 122 122 122
124: 90(ivec4) SpecConstantOp 198 91 123
125: 6(int) SpecConstantOp 81 87 0
126: TypeVector 6(int) 2
127: 126(ivec2) SpecConstantOp 79 87 87 1(GLSL.std.450) 0
128: TypeVector 6(int) 3
129: 128(ivec3) SpecConstantOp 79 87 87 2 1(GLSL.std.450) 0
130: 86(ivec4) SpecConstantOp 79 87 87 1(GLSL.std.450) 2 0 3
4(main): 2 Function None 3
5: Label
Return