blob: c222f25c21f01ad8a151837294938150d613a2f3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
spv.controlFlowAttributes.frag
WARNING: 0:27: 'unroll' : expected no arguments
WARNING: 0:28: 'dont_unroll' : expected no arguments
WARNING: 0:29: 'dependency_infinite' : expected no arguments
WARNING: 0:30: 'dependency_length' : expected a single integer argument
WARNING: 0:31: '' : attribute with arguments not recognized, skipping
WARNING: 0:32: '' : attribute with arguments not recognized, skipping
WARNING: 0:33: '' : attribute with arguments not recognized, skipping
Validation failed
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 123
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_EXT_control_flow_attributes"
Name 4 "main"
Name 6 "f0("
Name 8 "f1("
Name 23 "i"
Name 41 "i"
Name 52 "cond"
Name 65 "i"
Name 84 "i"
2: TypeVoid
3: TypeFunction 2
19: TypeBool
20: 19(bool) ConstantTrue
21: TypeInt 32 1
22: TypePointer Function 21(int)
24: 21(int) Constant 0
31: 21(int) Constant 8
34: 21(int) Constant 1
51: TypePointer Private 19(bool)
52(cond): 51(ptr) Variable Private
59: 19(bool) ConstantFalse
60: 21(int) Constant 3
4(main): 2 Function None 3
5: Label
23(i): 22(ptr) Variable Function
41(i): 22(ptr) Variable Function
65(i): 22(ptr) Variable Function
84(i): 22(ptr) Variable Function
Store 23(i) 24
Branch 25
25: Label
LoopMerge 27 28 Unroll
Branch 29
29: Label
30: 21(int) Load 23(i)
32: 19(bool) SLessThan 30 31
BranchConditional 32 26 27
26: Label
Branch 28
28: Label
33: 21(int) Load 23(i)
35: 21(int) IAdd 33 34
Store 23(i) 35
Branch 25
27: Label
36: 2 FunctionCall 6(f0()
Branch 37
37: Label
LoopMerge 39 40 DependencyInfinite
Branch 38
38: Label
Branch 40
40: Label
BranchConditional 20 37 39
39: Label
Store 41(i) 24
Branch 42
42: Label
LoopMerge 44 45 DependencyLength 4
Branch 46
46: Label
47: 21(int) Load 41(i)
48: 19(bool) SLessThan 47 31
BranchConditional 48 43 44
43: Label
Branch 45
45: Label
49: 21(int) Load 41(i)
50: 21(int) IAdd 49 34
Store 41(i) 50
Branch 42
44: Label
53: 19(bool) Load 52(cond)
SelectionMerge 55 Flatten
BranchConditional 53 54 55
54: Label
Branch 55
55: Label
56: 19(bool) Load 52(cond)
SelectionMerge 58 DontFlatten
BranchConditional 56 57 58
57: Label
Store 52(cond) 59
Branch 58
58: Label
SelectionMerge 62 DontFlatten
Switch 60 62
case 3: 61
61: Label
Branch 62
62: Label
Store 65(i) 24
Branch 66
66: Label
LoopMerge 68 69 None
Branch 70
70: Label
71: 21(int) Load 65(i)
72: 19(bool) SLessThan 71 31
BranchConditional 72 67 68
67: Label
Branch 69
69: Label
73: 21(int) Load 65(i)
74: 21(int) IAdd 73 34
Store 65(i) 74
Branch 66
68: Label
Branch 75
75: Label
LoopMerge 77 78 None
Branch 79
79: Label
BranchConditional 20 76 77
76: Label
Branch 78
78: Label
Branch 75
77: Label
Branch 80
80: Label
LoopMerge 82 83 None
Branch 81
81: Label
Branch 83
83: Label
BranchConditional 20 80 82
82: Label
Store 84(i) 24
Branch 85
85: Label
LoopMerge 87 88 None
Branch 89
89: Label
90: 21(int) Load 84(i)
91: 19(bool) SLessThan 90 31
BranchConditional 91 86 87
86: Label
Branch 88
88: Label
92: 21(int) Load 84(i)
93: 21(int) IAdd 92 34
Store 84(i) 93
Branch 85
87: Label
94: 19(bool) Load 52(cond)
SelectionMerge 96 None
BranchConditional 94 95 96
95: Label
Branch 96
96: Label
97: 19(bool) Load 52(cond)
SelectionMerge 99 None
BranchConditional 97 98 99
98: Label
Store 52(cond) 59
Branch 99
99: Label
SelectionMerge 101 None
Switch 60 101
case 3: 100
100: Label
Branch 101
101: Label
Branch 104
104: Label
LoopMerge 106 107 Unroll DontUnroll DependencyLength 2
Branch 108
108: Label
109: 19(bool) Load 52(cond)
BranchConditional 109 105 106
105: Label
Branch 107
107: Label
Branch 104
106: Label
SelectionMerge 111 DontFlatten
Switch 60 111
case 3: 110
110: Label
Branch 111
111: Label
114: 19(bool) Load 52(cond)
SelectionMerge 116 Flatten
BranchConditional 114 115 116
115: Label
Branch 116
116: Label
Branch 117
117: Label
LoopMerge 119 120 DependencyInfinite
Branch 121
121: Label
122: 19(bool) Load 52(cond)
BranchConditional 122 118 119
118: Label
Branch 120
120: Label
Branch 117
119: Label
Return
FunctionEnd
6(f0(): 2 Function None 3
7: Label
Branch 10
10: Label
LoopMerge 12 13 DontUnroll
Branch 11
11: Label
Branch 13
13: Label
Branch 10
12: Label
Unreachable
FunctionEnd
8(f1(): 2 Function None 3
9: Label
Branch 14
14: Label
LoopMerge 16 17 DontUnroll
Branch 18
18: Label
BranchConditional 20 15 16
15: Label
Branch 17
17: Label
Branch 14
16: Label
Return
FunctionEnd
|