3 gl_FragCoord origin is upper left
5 0:1 Function Definition: f0( ( temp void)
6 0:1 Function Parameters:
9 0:2 Loop with condition tested first
12 0:5 Function Definition: f1(vf4; ( temp void)
13 0:5 Function Parameters:
14 0:5 'input' ( in 4-component vector of float)
17 0:6 Pre-Increment ( temp 4-component vector of float)
18 0:6 'input' ( in 4-component vector of float)
19 0:6 Loop with condition tested first
22 0:9 Function Definition: f2(vf4; ( temp void)
23 0:9 Function Parameters:
24 0:9 'input' ( in 4-component vector of float)
27 0:10 Loop with condition tested first: Unroll
30 0:10 NotEqual ( temp 4-component vector of bool)
31 0:10 'input' ( in 4-component vector of float)
32 0:10 'input' ( in 4-component vector of float)
34 0:13 Function Definition: f3(vf4; ( temp float)
35 0:13 Function Parameters:
36 0:13 'input' ( in 4-component vector of float)
39 0:14 Loop with condition tested first
42 0:14 NotEqual ( temp 4-component vector of bool)
43 0:14 'input' ( in 4-component vector of float)
44 0:14 'input' ( in 4-component vector of float)
47 0:14 Branch: Return with expression
48 0:14 Construct float ( temp float)
49 0:14 Negate value ( temp 4-component vector of float)
50 0:14 'input' ( in 4-component vector of float)
51 0:17 Function Definition: f4(vf4; ( temp float)
52 0:17 Function Parameters:
53 0:17 'input' ( in 4-component vector of float)
56 0:18 Pre-Decrement ( temp 4-component vector of float)
57 0:18 'input' ( in 4-component vector of float)
58 0:18 Loop with condition tested first
61 0:18 NotEqual ( temp 4-component vector of bool)
62 0:18 'input' ( in 4-component vector of float)
63 0:18 'input' ( in 4-component vector of float)
66 0:18 Branch: Return with expression
67 0:18 Construct float ( temp float)
68 0:18 Negate value ( temp 4-component vector of float)
69 0:18 'input' ( in 4-component vector of float)
70 0:18 Loop Terminal Expression
71 0:18 add second child into first child ( temp 4-component vector of float)
72 0:18 'input' ( in 4-component vector of float)
75 0:21 Function Definition: f5(vf4; ( temp void)
76 0:21 Function Parameters:
77 0:21 'input' ( in 4-component vector of float)
80 0:22 Loop with condition tested first
81 0:22 No loop condition
83 0:22 Test condition and select ( temp void)
85 0:22 Compare Greater Than ( temp bool)
86 0:22 direct index ( temp float)
87 0:22 'input' ( in 4-component vector of float)
94 0:25 Function Definition: f6(vf4; ( temp void)
95 0:25 Function Parameters:
96 0:25 'input' ( in 4-component vector of float)
99 0:26 Loop with condition tested first
100 0:26 No loop condition
102 0:26 Test condition and select ( temp void)
104 0:26 Compare Greater Than ( temp bool)
105 0:26 direct index ( temp float)
106 0:26 'input' ( in 4-component vector of float)
112 0:26 Branch: Continue
113 0:29 Function Definition: f99( ( temp void)
114 0:29 Function Parameters:
117 0:30 move second child to first child ( temp int)
118 0:30 'first' ( temp int)
121 0:30 move second child to first child ( temp int)
122 0:30 'second' ( temp int)
125 0:30 Loop with condition tested first
126 0:30 No loop condition
129 0:30 'first' ( temp int)
130 0:30 'second' ( temp int)
131 0:33 Function Definition: f100(f1; ( temp void)
132 0:33 Function Parameters:
133 0:33 'ii' ( in float)
136 0:34 Comma ( temp float)
137 0:34 Comma ( temp float)
138 0:34 Pre-Decrement ( temp float)
139 0:34 'ii' ( in float)
140 0:34 Pre-Decrement ( temp float)
141 0:34 'ii' ( in float)
142 0:34 Pre-Decrement ( temp float)
143 0:34 'ii' ( in float)
144 0:34 Loop with condition tested first
145 0:34 No loop condition
147 0:34 'ii' ( in float)
148 0:38 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
149 0:38 Function Parameters:
150 0:38 'input' ( in 4-component vector of float)
152 0:39 Function Call: f0( ( temp void)
153 0:40 Function Call: f1(vf4; ( temp void)
154 0:40 'input' ( in 4-component vector of float)
155 0:41 Function Call: f2(vf4; ( temp void)
156 0:41 'input' ( in 4-component vector of float)
157 0:42 Function Call: f3(vf4; ( temp float)
158 0:42 'input' ( in 4-component vector of float)
159 0:43 Function Call: f4(vf4; ( temp float)
160 0:43 'input' ( in 4-component vector of float)
161 0:44 Function Call: f5(vf4; ( temp void)
162 0:44 'input' ( in 4-component vector of float)
163 0:45 Function Call: f6(vf4; ( temp void)
164 0:45 'input' ( in 4-component vector of float)
166 0:48 move second child to first child ( temp int)
167 0:48 'ii' ( temp int)
170 0:48 Loop with condition tested first
172 0:48 Compare Less Than ( temp bool)
173 0:48 'ii' ( temp int)
177 0:48 Test condition and select ( temp void)
179 0:48 Compare Equal ( temp bool)
180 0:48 'ii' ( temp int)
184 0:48 Branch: Continue
185 0:48 Loop Terminal Expression
186 0:48 Pre-Increment ( temp int)
187 0:48 'ii' ( temp int)
188 0:49 Pre-Decrement ( temp float)
189 0:49 'ii' ( temp float)
190 0:51 Function Call: f99( ( temp void)
192 0:53 move second child to first child ( temp int)
196 0:53 move second child to first child ( temp int)
197 0:53 'count' ( temp int)
198 0:53 Convert float to int ( temp int)
199 0:53 'ii' ( temp float)
200 0:53 Loop with condition tested first
202 0:53 Compare Less Than ( temp bool)
204 0:53 'count' ( temp int)
206 0:53 Loop Terminal Expression
207 0:53 Post-Increment ( temp int)
210 0:54 move second child to first child ( temp float)
211 0:54 'first' ( temp float)
214 0:54 Loop with condition tested first
216 0:54 Compare Less Than ( temp bool)
217 0:54 'first' ( temp float)
218 0:54 direct index ( temp float)
219 0:54 'second' ( temp 2-element array of float)
223 0:54 add ( temp float)
224 0:54 add ( temp float)
225 0:54 'first' ( temp float)
226 0:54 direct index ( temp float)
227 0:54 'second' ( temp 2-element array of float)
230 0:54 'third' ( temp float)
231 0:54 Loop Terminal Expression
232 0:54 Pre-Increment ( temp float)
233 0:54 direct index ( temp float)
234 0:54 'second' ( temp 2-element array of float)
237 0:56 Function Call: f100(f1; ( temp void)
238 0:56 'ii' ( temp float)
239 0:58 Branch: Return with expression
240 0:58 'input' ( in 4-component vector of float)
241 0:38 Function Definition: PixelShaderFunction( ( temp void)
242 0:38 Function Parameters:
244 0:38 move second child to first child ( temp 4-component vector of float)
245 0:? 'input' ( temp 4-component vector of float)
246 0:? 'input' (layout( location=0) in 4-component vector of float)
247 0:38 move second child to first child ( temp 4-component vector of float)
248 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
249 0:38 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
250 0:? 'input' ( temp 4-component vector of float)
252 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
253 0:? 'input' (layout( location=0) in 4-component vector of float)
256 Linked fragment stage:
260 gl_FragCoord origin is upper left
262 0:1 Function Definition: f0( ( temp void)
263 0:1 Function Parameters:
266 0:2 Loop with condition tested first
267 0:2 No loop condition
269 0:5 Function Definition: f1(vf4; ( temp void)
270 0:5 Function Parameters:
271 0:5 'input' ( in 4-component vector of float)
274 0:6 Pre-Increment ( temp 4-component vector of float)
275 0:6 'input' ( in 4-component vector of float)
276 0:6 Loop with condition tested first
277 0:6 No loop condition
279 0:9 Function Definition: f2(vf4; ( temp void)
280 0:9 Function Parameters:
281 0:9 'input' ( in 4-component vector of float)
284 0:10 Loop with condition tested first: Unroll
286 0:10 any ( temp bool)
287 0:10 NotEqual ( temp 4-component vector of bool)
288 0:10 'input' ( in 4-component vector of float)
289 0:10 'input' ( in 4-component vector of float)
291 0:13 Function Definition: f3(vf4; ( temp float)
292 0:13 Function Parameters:
293 0:13 'input' ( in 4-component vector of float)
296 0:14 Loop with condition tested first
298 0:14 any ( temp bool)
299 0:14 NotEqual ( temp 4-component vector of bool)
300 0:14 'input' ( in 4-component vector of float)
301 0:14 'input' ( in 4-component vector of float)
304 0:14 Branch: Return with expression
305 0:14 Construct float ( temp float)
306 0:14 Negate value ( temp 4-component vector of float)
307 0:14 'input' ( in 4-component vector of float)
308 0:17 Function Definition: f4(vf4; ( temp float)
309 0:17 Function Parameters:
310 0:17 'input' ( in 4-component vector of float)
313 0:18 Pre-Decrement ( temp 4-component vector of float)
314 0:18 'input' ( in 4-component vector of float)
315 0:18 Loop with condition tested first
317 0:18 any ( temp bool)
318 0:18 NotEqual ( temp 4-component vector of bool)
319 0:18 'input' ( in 4-component vector of float)
320 0:18 'input' ( in 4-component vector of float)
323 0:18 Branch: Return with expression
324 0:18 Construct float ( temp float)
325 0:18 Negate value ( temp 4-component vector of float)
326 0:18 'input' ( in 4-component vector of float)
327 0:18 Loop Terminal Expression
328 0:18 add second child into first child ( temp 4-component vector of float)
329 0:18 'input' ( in 4-component vector of float)
332 0:21 Function Definition: f5(vf4; ( temp void)
333 0:21 Function Parameters:
334 0:21 'input' ( in 4-component vector of float)
337 0:22 Loop with condition tested first
338 0:22 No loop condition
340 0:22 Test condition and select ( temp void)
342 0:22 Compare Greater Than ( temp bool)
343 0:22 direct index ( temp float)
344 0:22 'input' ( in 4-component vector of float)
351 0:25 Function Definition: f6(vf4; ( temp void)
352 0:25 Function Parameters:
353 0:25 'input' ( in 4-component vector of float)
356 0:26 Loop with condition tested first
357 0:26 No loop condition
359 0:26 Test condition and select ( temp void)
361 0:26 Compare Greater Than ( temp bool)
362 0:26 direct index ( temp float)
363 0:26 'input' ( in 4-component vector of float)
369 0:26 Branch: Continue
370 0:29 Function Definition: f99( ( temp void)
371 0:29 Function Parameters:
374 0:30 move second child to first child ( temp int)
375 0:30 'first' ( temp int)
378 0:30 move second child to first child ( temp int)
379 0:30 'second' ( temp int)
382 0:30 Loop with condition tested first
383 0:30 No loop condition
386 0:30 'first' ( temp int)
387 0:30 'second' ( temp int)
388 0:33 Function Definition: f100(f1; ( temp void)
389 0:33 Function Parameters:
390 0:33 'ii' ( in float)
393 0:34 Comma ( temp float)
394 0:34 Comma ( temp float)
395 0:34 Pre-Decrement ( temp float)
396 0:34 'ii' ( in float)
397 0:34 Pre-Decrement ( temp float)
398 0:34 'ii' ( in float)
399 0:34 Pre-Decrement ( temp float)
400 0:34 'ii' ( in float)
401 0:34 Loop with condition tested first
402 0:34 No loop condition
404 0:34 'ii' ( in float)
405 0:38 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
406 0:38 Function Parameters:
407 0:38 'input' ( in 4-component vector of float)
409 0:39 Function Call: f0( ( temp void)
410 0:40 Function Call: f1(vf4; ( temp void)
411 0:40 'input' ( in 4-component vector of float)
412 0:41 Function Call: f2(vf4; ( temp void)
413 0:41 'input' ( in 4-component vector of float)
414 0:42 Function Call: f3(vf4; ( temp float)
415 0:42 'input' ( in 4-component vector of float)
416 0:43 Function Call: f4(vf4; ( temp float)
417 0:43 'input' ( in 4-component vector of float)
418 0:44 Function Call: f5(vf4; ( temp void)
419 0:44 'input' ( in 4-component vector of float)
420 0:45 Function Call: f6(vf4; ( temp void)
421 0:45 'input' ( in 4-component vector of float)
423 0:48 move second child to first child ( temp int)
424 0:48 'ii' ( temp int)
427 0:48 Loop with condition tested first
429 0:48 Compare Less Than ( temp bool)
430 0:48 'ii' ( temp int)
434 0:48 Test condition and select ( temp void)
436 0:48 Compare Equal ( temp bool)
437 0:48 'ii' ( temp int)
441 0:48 Branch: Continue
442 0:48 Loop Terminal Expression
443 0:48 Pre-Increment ( temp int)
444 0:48 'ii' ( temp int)
445 0:49 Pre-Decrement ( temp float)
446 0:49 'ii' ( temp float)
447 0:51 Function Call: f99( ( temp void)
449 0:53 move second child to first child ( temp int)
453 0:53 move second child to first child ( temp int)
454 0:53 'count' ( temp int)
455 0:53 Convert float to int ( temp int)
456 0:53 'ii' ( temp float)
457 0:53 Loop with condition tested first
459 0:53 Compare Less Than ( temp bool)
461 0:53 'count' ( temp int)
463 0:53 Loop Terminal Expression
464 0:53 Post-Increment ( temp int)
467 0:54 move second child to first child ( temp float)
468 0:54 'first' ( temp float)
471 0:54 Loop with condition tested first
473 0:54 Compare Less Than ( temp bool)
474 0:54 'first' ( temp float)
475 0:54 direct index ( temp float)
476 0:54 'second' ( temp 2-element array of float)
480 0:54 add ( temp float)
481 0:54 add ( temp float)
482 0:54 'first' ( temp float)
483 0:54 direct index ( temp float)
484 0:54 'second' ( temp 2-element array of float)
487 0:54 'third' ( temp float)
488 0:54 Loop Terminal Expression
489 0:54 Pre-Increment ( temp float)
490 0:54 direct index ( temp float)
491 0:54 'second' ( temp 2-element array of float)
494 0:56 Function Call: f100(f1; ( temp void)
495 0:56 'ii' ( temp float)
496 0:58 Branch: Return with expression
497 0:58 'input' ( in 4-component vector of float)
498 0:38 Function Definition: PixelShaderFunction( ( temp void)
499 0:38 Function Parameters:
501 0:38 move second child to first child ( temp 4-component vector of float)
502 0:? 'input' ( temp 4-component vector of float)
503 0:? 'input' (layout( location=0) in 4-component vector of float)
504 0:38 move second child to first child ( temp 4-component vector of float)
505 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
506 0:38 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
507 0:? 'input' ( temp 4-component vector of float)
509 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
510 0:? 'input' (layout( location=0) in 4-component vector of float)
512 // Module Version 10000
513 // Generated by (magic number): 8000b
514 // Id's are bound by 240
517 1: ExtInstImport "GLSL.std.450"
518 MemoryModel Logical GLSL450
519 EntryPoint Fragment 4 "PixelShaderFunction" 233 236
520 ExecutionMode 4 OriginUpperLeft
522 Name 4 "PixelShaderFunction"
539 Name 40 "@PixelShaderFunction(vf4;"
559 Name 236 "@entryPointOutput"
561 Decorate 233(input) Location 0
562 Decorate 236(@entryPointOutput) Location 0
566 9: TypeVector 8(float) 4
567 10: TypePointer Function 9(fvec4)
568 11: TypeFunction 2 10(ptr)
569 18: TypeFunction 8(float) 10(ptr)
570 33: TypePointer Function 8(float)
571 34: TypeFunction 2 33(ptr)
572 38: TypeFunction 9(fvec4) 10(ptr)
573 47: 8(float) Constant 1065353216
575 62: TypeVector 61(bool) 4
576 95: 8(float) Constant 1073741824
578 105: 104(int) Constant 0
580 123: TypePointer Function 122(int)
581 125: 122(int) Constant 0
582 127: 122(int) Constant 1
583 165: 122(int) Constant 4294967295
584 172: 122(int) Constant 3
585 175: 122(int) Constant 2
586 201: 8(float) Constant 0
587 208: 104(int) Constant 2
588 209: TypeArray 8(float) 208
589 210: TypePointer Function 209
590 232: TypePointer Input 9(fvec4)
591 233(input): 232(ptr) Variable Input
592 235: TypePointer Output 9(fvec4)
593 236(@entryPointOutput): 235(ptr) Variable Output
594 4(PixelShaderFunction): 2 Function None 3
596 231(input): 10(ptr) Variable Function
597 237(param): 10(ptr) Variable Function
598 234: 9(fvec4) Load 233(input)
600 238: 9(fvec4) Load 231(input)
602 239: 9(fvec4) FunctionCall 40(@PixelShaderFunction(vf4;) 237(param)
603 Store 236(@entryPointOutput) 239
606 6(f0(): 2 Function None 3
619 13(f1(vf4;): 2 Function None 11
620 12(input): 10(ptr) FunctionParameter
622 46: 9(fvec4) Load 12(input)
623 48: 9(fvec4) CompositeConstruct 47 47 47 47
624 49: 9(fvec4) FAdd 46 48
637 16(f2(vf4;): 2 Function None 11
638 15(input): 10(ptr) FunctionParameter
642 LoopMerge 56 57 Unroll
645 59: 9(fvec4) Load 15(input)
646 60: 9(fvec4) Load 15(input)
647 63: 62(bvec4) FUnordNotEqual 59 60
649 BranchConditional 64 55 56
657 20(f3(vf4;): 8(float) Function None 18
658 19(input): 10(ptr) FunctionParameter
665 70: 9(fvec4) Load 19(input)
666 71: 9(fvec4) Load 19(input)
667 72: 62(bvec4) FUnordNotEqual 70 71
669 BranchConditional 73 66 67
671 74: 9(fvec4) Load 19(input)
672 75: 9(fvec4) FNegate 74
673 76: 8(float) CompositeExtract 75 0
681 23(f4(vf4;): 8(float) Function None 18
682 22(input): 10(ptr) FunctionParameter
684 79: 9(fvec4) Load 22(input)
685 80: 9(fvec4) CompositeConstruct 47 47 47 47
686 81: 9(fvec4) FSub 79 80
693 87: 9(fvec4) Load 22(input)
694 88: 9(fvec4) Load 22(input)
695 89: 62(bvec4) FUnordNotEqual 87 88
697 BranchConditional 90 83 84
699 91: 9(fvec4) Load 22(input)
700 92: 9(fvec4) FNegate 91
701 93: 8(float) CompositeExtract 92 0
709 26(f5(vf4;): 2 Function None 11
710 25(input): 10(ptr) FunctionParameter
714 LoopMerge 102 103 None
717 106: 33(ptr) AccessChain 25(input) 105
718 107: 8(float) Load 106
719 108: 61(bool) FOrdGreaterThan 107 95
720 SelectionMerge 110 None
721 BranchConditional 108 109 110
731 29(f6(vf4;): 2 Function None 11
732 28(input): 10(ptr) FunctionParameter
736 LoopMerge 114 115 None
739 116: 33(ptr) AccessChain 28(input) 105
740 117: 8(float) Load 116
741 118: 61(bool) FOrdGreaterThan 117 95
742 SelectionMerge 120 None
743 BranchConditional 118 119 120
753 31(f99(): 2 Function None 3
755 124(first): 123(ptr) Variable Function
756 126(second): 123(ptr) Variable Function
758 Store 126(second) 127
761 LoopMerge 130 131 None
764 132: 122(int) Load 124(first)
765 133: 122(int) Load 126(second)
766 134: 122(int) IAdd 132 133
773 36(f100(f1;): 2 Function None 34
774 35(ii): 33(ptr) FunctionParameter
776 135: 8(float) Load 35(ii)
777 136: 8(float) FSub 135 47
779 137: 8(float) Load 35(ii)
780 138: 8(float) FSub 137 47
782 139: 8(float) Load 35(ii)
783 140: 8(float) FSub 139 47
787 LoopMerge 143 144 None
796 40(@PixelShaderFunction(vf4;): 9(fvec4) Function None 38
797 39(input): 10(ptr) FunctionParameter
799 146(param): 10(ptr) Variable Function
800 149(param): 10(ptr) Variable Function
801 152(param): 10(ptr) Variable Function
802 155(param): 10(ptr) Variable Function
803 158(param): 10(ptr) Variable Function
804 161(param): 10(ptr) Variable Function
805 164(ii): 123(ptr) Variable Function
806 182(ii): 33(ptr) Variable Function
807 186(i): 123(ptr) Variable Function
808 187(count): 123(ptr) Variable Function
809 200(first): 33(ptr) Variable Function
810 211(second): 210(ptr) Variable Function
811 219(third): 33(ptr) Variable Function
812 225(param): 33(ptr) Variable Function
813 145: 2 FunctionCall 6(f0()
814 147: 9(fvec4) Load 39(input)
816 148: 2 FunctionCall 13(f1(vf4;) 146(param)
817 150: 9(fvec4) Load 39(input)
819 151: 2 FunctionCall 16(f2(vf4;) 149(param)
820 153: 9(fvec4) Load 39(input)
822 154: 8(float) FunctionCall 20(f3(vf4;) 152(param)
823 156: 9(fvec4) Load 39(input)
825 157: 8(float) FunctionCall 23(f4(vf4;) 155(param)
826 159: 9(fvec4) Load 39(input)
828 160: 2 FunctionCall 26(f5(vf4;) 158(param)
829 162: 9(fvec4) Load 39(input)
831 163: 2 FunctionCall 29(f6(vf4;) 161(param)
835 LoopMerge 168 169 None
838 171: 122(int) Load 164(ii)
839 173: 61(bool) SLessThan 171 172
840 BranchConditional 173 167 168
842 174: 122(int) Load 164(ii)
843 176: 61(bool) IEqual 174 175
844 SelectionMerge 178 None
845 BranchConditional 176 177 178
851 180: 122(int) Load 164(ii)
852 181: 122(int) IAdd 180 127
856 183: 8(float) Load 182(ii)
857 184: 8(float) FSub 183 47
859 185: 2 FunctionCall 31(f99()
861 188: 8(float) Load 182(ii)
862 189: 122(int) ConvertFToS 188
866 LoopMerge 192 193 None
869 195: 122(int) Load 186(i)
870 196: 122(int) Load 187(count)
871 197: 61(bool) SLessThan 195 196
872 BranchConditional 197 191 192
876 198: 122(int) Load 186(i)
877 199: 122(int) IAdd 198 127
884 LoopMerge 204 205 None
887 207: 8(float) Load 200(first)
888 212: 33(ptr) AccessChain 211(second) 125
889 213: 8(float) Load 212
890 214: 61(bool) FOrdLessThan 207 213
891 BranchConditional 214 203 204
893 215: 8(float) Load 200(first)
894 216: 33(ptr) AccessChain 211(second) 127
895 217: 8(float) Load 216
896 218: 8(float) FAdd 215 217
897 220: 8(float) Load 219(third)
898 221: 8(float) FAdd 218 220
901 222: 33(ptr) AccessChain 211(second) 127
902 223: 8(float) Load 222
903 224: 8(float) FAdd 223 47
907 226: 8(float) Load 182(ii)
909 227: 2 FunctionCall 36(f100(f1;) 225(param)
910 228: 9(fvec4) Load 39(input)