HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.

This needs some render testing, but is destined to be part of master.

This also leads to a variety of other simplifications.
 - IO are global symbols, so only need one list of linkage nodes (deferred)
 - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized
 - several parts of splitting/flattening are now localized
This commit is contained in:
John Kessenich
2017-01-19 15:41:47 -07:00
parent 18adbdbbb8
commit 02467d8d94
171 changed files with 37604 additions and 32679 deletions

View File

@@ -3,250 +3,259 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 191
// Id's are bound by 198
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 180 184
EntryPoint Fragment 4 "main" 188 192
ExecutionMode 4 OriginUpperLeft
Decorate 41 DescriptorSet 0
Decorate 41 Binding 0
Decorate 45 DescriptorSet 0
Decorate 45 Binding 0
Decorate 56 DescriptorSet 0
Decorate 69 DescriptorSet 0
Decorate 79 DescriptorSet 0
Decorate 90 DescriptorSet 0
Decorate 101 DescriptorSet 0
Decorate 113 DescriptorSet 0
Decorate 124 DescriptorSet 0
Decorate 134 DescriptorSet 0
Decorate 147 DescriptorSet 0
Decorate 156 DescriptorSet 0
Decorate 165 DescriptorSet 0
Decorate 180 Location 0
Decorate 184 BuiltIn FragDepth
Decorate 188 DescriptorSet 0
Decorate 189 DescriptorSet 0
Decorate 190 DescriptorSet 0
Decorate 190 Binding 1
Decorate 49 DescriptorSet 0
Decorate 49 Binding 0
Decorate 60 DescriptorSet 0
Decorate 73 DescriptorSet 0
Decorate 83 DescriptorSet 0
Decorate 94 DescriptorSet 0
Decorate 105 DescriptorSet 0
Decorate 117 DescriptorSet 0
Decorate 128 DescriptorSet 0
Decorate 138 DescriptorSet 0
Decorate 151 DescriptorSet 0
Decorate 160 DescriptorSet 0
Decorate 169 DescriptorSet 0
Decorate 188 Location 0
Decorate 192 BuiltIn FragDepth
Decorate 195 DescriptorSet 0
Decorate 196 DescriptorSet 0
Decorate 197 DescriptorSet 0
Decorate 197 Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int)
8: TypePointer Function 7(struct)
10: 6(int) Constant 1
11: TypePointer Function 6(int)
13: 6(int) Constant 2
15: 6(int) Constant 3
17: 6(int) Constant 4
19: 6(int) Constant 5
21: 6(int) Constant 6
23: 6(int) Constant 0
25: 6(int) Constant 7
27: 6(int) Constant 8
29: 6(int) Constant 9
31: 6(int) Constant 10
33: 6(int) Constant 11
35: TypeFloat 32
36: TypeVector 35(float) 4
37: TypePointer Function 36(fvec4)
39: TypeImage 35(float) 1D sampled format:Unknown
40: TypePointer UniformConstant 39
41: 40(ptr) Variable UniformConstant
43: TypeSampler
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeStruct 7(fvec4) 6(float)
9: TypeFunction 8(struct)
12: TypeInt 32 1
13: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int)
14: TypePointer Function 13(struct)
16: 12(int) Constant 1
17: TypePointer Function 12(int)
19: 12(int) Constant 2
21: 12(int) Constant 3
23: 12(int) Constant 4
25: 12(int) Constant 5
27: 12(int) Constant 6
29: 12(int) Constant 0
31: 12(int) Constant 7
33: 12(int) Constant 8
35: 12(int) Constant 9
37: 12(int) Constant 10
39: 12(int) Constant 11
41: TypePointer Function 7(fvec4)
43: TypeImage 6(float) 1D sampled format:Unknown
44: TypePointer UniformConstant 43
45: 44(ptr) Variable UniformConstant
47: TypeSampledImage 39
49: 35(float) Constant 1036831949
51: TypeVector 6(int) 4
52: TypePointer Function 51(ivec4)
54: TypeImage 6(int) 1D sampled format:Unknown
55: TypePointer UniformConstant 54
56: 55(ptr) Variable UniformConstant
59: TypeSampledImage 54
61: 35(float) Constant 1045220557
63: TypeInt 32 0
64: TypeVector 63(int) 4
65: TypePointer Function 64(ivec4)
67: TypeImage 63(int) 1D sampled format:Unknown
68: TypePointer UniformConstant 67
69: 68(ptr) Variable UniformConstant
72: TypeSampledImage 67
74: 35(float) Constant 1050253722
77: TypeImage 35(float) 2D sampled format:Unknown
78: TypePointer UniformConstant 77
79: 78(ptr) Variable UniformConstant
82: TypeSampledImage 77
84: TypeVector 35(float) 2
85: 84(fvec2) ConstantComposite 49 61
88: TypeImage 6(int) 2D sampled format:Unknown
89: TypePointer UniformConstant 88
90: 89(ptr) Variable UniformConstant
93: TypeSampledImage 88
95: 35(float) Constant 1053609165
96: 84(fvec2) ConstantComposite 74 95
99: TypeImage 63(int) 2D sampled format:Unknown
100: TypePointer UniformConstant 99
101: 100(ptr) Variable UniformConstant
104: TypeSampledImage 99
106: 35(float) Constant 1056964608
107: 35(float) Constant 1058642330
108: 84(fvec2) ConstantComposite 106 107
111: TypeImage 35(float) 3D sampled format:Unknown
112: TypePointer UniformConstant 111
113: 112(ptr) Variable UniformConstant
116: TypeSampledImage 111
118: TypeVector 35(float) 3
119: 118(fvec3) ConstantComposite 49 61 74
122: TypeImage 6(int) 3D sampled format:Unknown
123: TypePointer UniformConstant 122
124: 123(ptr) Variable UniformConstant
127: TypeSampledImage 122
129: 118(fvec3) ConstantComposite 95 106 107
132: TypeImage 63(int) 3D sampled format:Unknown
133: TypePointer UniformConstant 132
134: 133(ptr) Variable UniformConstant
137: TypeSampledImage 132
139: 35(float) Constant 1060320051
140: 35(float) Constant 1061997773
141: 35(float) Constant 1063675494
142: 118(fvec3) ConstantComposite 139 140 141
145: TypeImage 35(float) Cube sampled format:Unknown
146: TypePointer UniformConstant 145
147: 146(ptr) Variable UniformConstant
150: TypeSampledImage 145
154: TypeImage 6(int) Cube sampled format:Unknown
155: TypePointer UniformConstant 154
156: 155(ptr) Variable UniformConstant
159: TypeSampledImage 154
163: TypeImage 63(int) Cube sampled format:Unknown
164: TypePointer UniformConstant 163
165: 164(ptr) Variable UniformConstant
168: TypeSampledImage 163
171: TypeStruct 36(fvec4) 35(float)
172: TypePointer Function 171(struct)
174: 35(float) Constant 1065353216
175: 36(fvec4) ConstantComposite 174 174 174 174
177: TypePointer Function 35(float)
179: TypePointer Output 36(fvec4)
180: 179(ptr) Variable Output
183: TypePointer Output 35(float)
184: 183(ptr) Variable Output
188: 44(ptr) Variable UniformConstant
189: 44(ptr) Variable UniformConstant
190: 40(ptr) Variable UniformConstant
47: TypeSampler
48: TypePointer UniformConstant 47
49: 48(ptr) Variable UniformConstant
51: TypeSampledImage 43
53: 6(float) Constant 1036831949
55: TypeVector 12(int) 4
56: TypePointer Function 55(ivec4)
58: TypeImage 12(int) 1D sampled format:Unknown
59: TypePointer UniformConstant 58
60: 59(ptr) Variable UniformConstant
63: TypeSampledImage 58
65: 6(float) Constant 1045220557
67: TypeInt 32 0
68: TypeVector 67(int) 4
69: TypePointer Function 68(ivec4)
71: TypeImage 67(int) 1D sampled format:Unknown
72: TypePointer UniformConstant 71
73: 72(ptr) Variable UniformConstant
76: TypeSampledImage 71
78: 6(float) Constant 1050253722
81: TypeImage 6(float) 2D sampled format:Unknown
82: TypePointer UniformConstant 81
83: 82(ptr) Variable UniformConstant
86: TypeSampledImage 81
88: TypeVector 6(float) 2
89: 88(fvec2) ConstantComposite 53 65
92: TypeImage 12(int) 2D sampled format:Unknown
93: TypePointer UniformConstant 92
94: 93(ptr) Variable UniformConstant
97: TypeSampledImage 92
99: 6(float) Constant 1053609165
100: 88(fvec2) ConstantComposite 78 99
103: TypeImage 67(int) 2D sampled format:Unknown
104: TypePointer UniformConstant 103
105: 104(ptr) Variable UniformConstant
108: TypeSampledImage 103
110: 6(float) Constant 1056964608
111: 6(float) Constant 1058642330
112: 88(fvec2) ConstantComposite 110 111
115: TypeImage 6(float) 3D sampled format:Unknown
116: TypePointer UniformConstant 115
117: 116(ptr) Variable UniformConstant
120: TypeSampledImage 115
122: TypeVector 6(float) 3
123: 122(fvec3) ConstantComposite 53 65 78
126: TypeImage 12(int) 3D sampled format:Unknown
127: TypePointer UniformConstant 126
128: 127(ptr) Variable UniformConstant
131: TypeSampledImage 126
133: 122(fvec3) ConstantComposite 99 110 111
136: TypeImage 67(int) 3D sampled format:Unknown
137: TypePointer UniformConstant 136
138: 137(ptr) Variable UniformConstant
141: TypeSampledImage 136
143: 6(float) Constant 1060320051
144: 6(float) Constant 1061997773
145: 6(float) Constant 1063675494
146: 122(fvec3) ConstantComposite 143 144 145
149: TypeImage 6(float) Cube sampled format:Unknown
150: TypePointer UniformConstant 149
151: 150(ptr) Variable UniformConstant
154: TypeSampledImage 149
158: TypeImage 12(int) Cube sampled format:Unknown
159: TypePointer UniformConstant 158
160: 159(ptr) Variable UniformConstant
163: TypeSampledImage 158
167: TypeImage 67(int) Cube sampled format:Unknown
168: TypePointer UniformConstant 167
169: 168(ptr) Variable UniformConstant
172: TypeSampledImage 167
175: TypePointer Function 8(struct)
177: 6(float) Constant 1065353216
178: 7(fvec4) ConstantComposite 177 177 177 177
180: TypePointer Function 6(float)
187: TypePointer Output 7(fvec4)
188: 187(ptr) Variable Output
191: TypePointer Output 6(float)
192: 191(ptr) Variable Output
195: 48(ptr) Variable UniformConstant
196: 48(ptr) Variable UniformConstant
197: 44(ptr) Variable UniformConstant
4: 2 Function None 3
5: Label
9: 8(ptr) Variable Function
38: 37(ptr) Variable Function
53: 52(ptr) Variable Function
66: 65(ptr) Variable Function
76: 37(ptr) Variable Function
87: 52(ptr) Variable Function
98: 65(ptr) Variable Function
110: 37(ptr) Variable Function
121: 52(ptr) Variable Function
131: 65(ptr) Variable Function
144: 37(ptr) Variable Function
153: 52(ptr) Variable Function
162: 65(ptr) Variable Function
173: 172(ptr) Variable Function
12: 11(ptr) AccessChain 9 10
Store 12 10
14: 11(ptr) AccessChain 9 13
Store 14 10
16: 11(ptr) AccessChain 9 15
Store 16 10
18: 11(ptr) AccessChain 9 17
Store 18 10
20: 11(ptr) AccessChain 9 19
Store 20 10
22: 11(ptr) AccessChain 9 21
Store 22 10
24: 11(ptr) AccessChain 9 23
Store 24 10
26: 11(ptr) AccessChain 9 25
Store 26 10
28: 11(ptr) AccessChain 9 27
Store 28 10
30: 11(ptr) AccessChain 9 29
Store 30 10
32: 11(ptr) AccessChain 9 31
Store 32 10
34: 11(ptr) AccessChain 9 33
Store 34 10
42: 39 Load 41
46: 43 Load 45
48: 47 SampledImage 42 46
50: 36(fvec4) ImageSampleImplicitLod 48 49
Store 38 50
57: 54 Load 56
58: 43 Load 45
60: 59 SampledImage 57 58
62: 51(ivec4) ImageSampleImplicitLod 60 61
Store 53 62
70: 67 Load 69
71: 43 Load 45
73: 72 SampledImage 70 71
75: 64(ivec4) ImageSampleImplicitLod 73 74
Store 66 75
80: 77 Load 79
81: 43 Load 45
83: 82 SampledImage 80 81
86: 36(fvec4) ImageSampleImplicitLod 83 85
Store 76 86
91: 88 Load 90
92: 43 Load 45
94: 93 SampledImage 91 92
97: 51(ivec4) ImageSampleImplicitLod 94 96
Store 87 97
102: 99 Load 101
103: 43 Load 45
105: 104 SampledImage 102 103
109: 64(ivec4) ImageSampleImplicitLod 105 108
Store 98 109
114: 111 Load 113
115: 43 Load 45
117: 116 SampledImage 114 115
120: 36(fvec4) ImageSampleImplicitLod 117 119
Store 110 120
125: 122 Load 124
126: 43 Load 45
128: 127 SampledImage 125 126
130: 51(ivec4) ImageSampleImplicitLod 128 129
Store 121 130
135: 132 Load 134
136: 43 Load 45
138: 137 SampledImage 135 136
143: 64(ivec4) ImageSampleImplicitLod 138 142
Store 131 143
148: 145 Load 147
149: 43 Load 45
151: 150 SampledImage 148 149
152: 36(fvec4) ImageSampleImplicitLod 151 119
Store 144 152
157: 154 Load 156
158: 43 Load 45
160: 159 SampledImage 157 158
161: 51(ivec4) ImageSampleImplicitLod 160 129
Store 153 161
166: 163 Load 165
167: 43 Load 45
169: 168 SampledImage 166 167
170: 64(ivec4) ImageSampleImplicitLod 169 142
Store 162 170
176: 37(ptr) AccessChain 173 23
Store 176 175
178: 177(ptr) AccessChain 173 10
Store 178 174
181: 37(ptr) AccessChain 173 23
182: 36(fvec4) Load 181
Store 180 182
185: 177(ptr) AccessChain 173 10
186: 35(float) Load 185
Store 184 186
185: 175(ptr) Variable Function
186: 8(struct) FunctionCall 10
Store 185 186
189: 41(ptr) AccessChain 185 29
190: 7(fvec4) Load 189
Store 188 190
193: 180(ptr) AccessChain 185 16
194: 6(float) Load 193
Store 192 194
Return
FunctionEnd
10: 8(struct) Function None 9
11: Label
15: 14(ptr) Variable Function
42: 41(ptr) Variable Function
57: 56(ptr) Variable Function
70: 69(ptr) Variable Function
80: 41(ptr) Variable Function
91: 56(ptr) Variable Function
102: 69(ptr) Variable Function
114: 41(ptr) Variable Function
125: 56(ptr) Variable Function
135: 69(ptr) Variable Function
148: 41(ptr) Variable Function
157: 56(ptr) Variable Function
166: 69(ptr) Variable Function
176: 175(ptr) Variable Function
18: 17(ptr) AccessChain 15 16
Store 18 16
20: 17(ptr) AccessChain 15 19
Store 20 16
22: 17(ptr) AccessChain 15 21
Store 22 16
24: 17(ptr) AccessChain 15 23
Store 24 16
26: 17(ptr) AccessChain 15 25
Store 26 16
28: 17(ptr) AccessChain 15 27
Store 28 16
30: 17(ptr) AccessChain 15 29
Store 30 16
32: 17(ptr) AccessChain 15 31
Store 32 16
34: 17(ptr) AccessChain 15 33
Store 34 16
36: 17(ptr) AccessChain 15 35
Store 36 16
38: 17(ptr) AccessChain 15 37
Store 38 16
40: 17(ptr) AccessChain 15 39
Store 40 16
46: 43 Load 45
50: 47 Load 49
52: 51 SampledImage 46 50
54: 7(fvec4) ImageSampleImplicitLod 52 53
Store 42 54
61: 58 Load 60
62: 47 Load 49
64: 63 SampledImage 61 62
66: 55(ivec4) ImageSampleImplicitLod 64 65
Store 57 66
74: 71 Load 73
75: 47 Load 49
77: 76 SampledImage 74 75
79: 68(ivec4) ImageSampleImplicitLod 77 78
Store 70 79
84: 81 Load 83
85: 47 Load 49
87: 86 SampledImage 84 85
90: 7(fvec4) ImageSampleImplicitLod 87 89
Store 80 90
95: 92 Load 94
96: 47 Load 49
98: 97 SampledImage 95 96
101: 55(ivec4) ImageSampleImplicitLod 98 100
Store 91 101
106: 103 Load 105
107: 47 Load 49
109: 108 SampledImage 106 107
113: 68(ivec4) ImageSampleImplicitLod 109 112
Store 102 113
118: 115 Load 117
119: 47 Load 49
121: 120 SampledImage 118 119
124: 7(fvec4) ImageSampleImplicitLod 121 123
Store 114 124
129: 126 Load 128
130: 47 Load 49
132: 131 SampledImage 129 130
134: 55(ivec4) ImageSampleImplicitLod 132 133
Store 125 134
139: 136 Load 138
140: 47 Load 49
142: 141 SampledImage 139 140
147: 68(ivec4) ImageSampleImplicitLod 142 146
Store 135 147
152: 149 Load 151
153: 47 Load 49
155: 154 SampledImage 152 153
156: 7(fvec4) ImageSampleImplicitLod 155 123
Store 148 156
161: 158 Load 160
162: 47 Load 49
164: 163 SampledImage 161 162
165: 55(ivec4) ImageSampleImplicitLod 164 133
Store 157 165
170: 167 Load 169
171: 47 Load 49
173: 172 SampledImage 170 171
174: 68(ivec4) ImageSampleImplicitLod 173 146
Store 166 174
179: 41(ptr) AccessChain 176 29
Store 179 178
181: 180(ptr) AccessChain 176 16
Store 181 177
182: 8(struct) Load 176
ReturnValue 182
FunctionEnd