1 hlsl.nonstaticMemberFunction.frag
3 gl_FragCoord origin is upper left
6 0:1 move second child to first child ( temp 2-component vector of float)
7 0:1 'i' ( global 2-component vector of float)
11 0:5 Function Definition: type1::setmem(vf4; ( temp void)
12 0:5 Function Parameters:
13 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
14 0:5 'm' ( in 4-component vector of float)
16 0:5 move second child to first child ( temp 4-component vector of float)
17 0:5 memVar: direct index for structure ( temp 4-component vector of float)
18 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
21 0:5 'm' ( in 4-component vector of float)
22 0:6 Function Definition: type1::seti(i1; ( temp void)
23 0:6 Function Parameters:
24 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
27 0:6 move second child to first child ( temp int)
28 0:6 i: direct index for structure ( temp int)
29 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
33 0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float)
34 0:9 Function Parameters:
35 0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
36 0:9 'a' ( in 4-component vector of float)
38 0:10 Branch: Return with expression
39 0:10 add ( temp 4-component vector of float)
40 0:10 vector-scale ( temp 4-component vector of float)
41 0:10 Convert int to float ( temp float)
42 0:10 i: direct index for structure ( temp int)
43 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
46 0:10 'a' ( in 4-component vector of float)
47 0:10 memVar: direct index for structure ( temp 4-component vector of float)
48 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
51 0:13 Function Definition: type1::memFun(i1; ( temp int)
52 0:13 Function Parameters:
53 0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
56 0:14 Branch: Return with expression
57 0:14 Convert float to int ( temp int)
58 0:14 subtract ( temp float)
59 0:14 Convert int to float ( temp float)
61 0:14 i: direct index for structure ( temp int)
62 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
66 0:14 direct index ( temp float)
67 0:14 memVar: direct index for structure ( temp 4-component vector of float)
68 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
74 0:19 move second child to first child ( temp 2-component vector of float)
75 0:19 'j' ( global 2-component vector of float)
76 0:19 'i' ( global 2-component vector of float)
77 0:23 Function Definition: type2::memFun( ( temp 2-component vector of float)
78 0:23 Function Parameters:
79 0:23 '@this' ( temp structure{})
81 0:23 Branch: Return with expression
82 0:23 'i' ( global 2-component vector of float)
83 0:27 Function Definition: @main( ( temp 4-component vector of float)
84 0:27 Function Parameters:
86 0:29 Function Call: type1::setmem(vf4; ( temp void)
87 0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
93 0:30 Function Call: type1::seti(i1; ( temp void)
94 0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
98 0:31 move second child to first child ( temp 4-component vector of float)
99 0:31 'f4' ( temp 4-component vector of float)
105 0:32 add second child into first child ( temp 4-component vector of float)
106 0:32 'f4' ( temp 4-component vector of float)
107 0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float)
108 0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
114 0:33 add second child into first child ( temp 4-component vector of float)
115 0:33 'f4' ( temp 4-component vector of float)
116 0:33 Convert int to float ( temp float)
117 0:33 Function Call: type1::memFun(i1; ( temp int)
118 0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
121 0:34 Branch: Return with expression
122 0:34 'f4' ( temp 4-component vector of float)
123 0:27 Function Definition: main( ( temp void)
124 0:27 Function Parameters:
126 0:27 move second child to first child ( temp 4-component vector of float)
127 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
128 0:27 Function Call: @main( ( temp 4-component vector of float)
130 0:? 'i' ( global 2-component vector of float)
131 0:? 'j' ( global 2-component vector of float)
132 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
135 Linked fragment stage:
139 gl_FragCoord origin is upper left
142 0:1 move second child to first child ( temp 2-component vector of float)
143 0:1 'i' ( global 2-component vector of float)
147 0:5 Function Definition: type1::setmem(vf4; ( temp void)
148 0:5 Function Parameters:
149 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
150 0:5 'm' ( in 4-component vector of float)
152 0:5 move second child to first child ( temp 4-component vector of float)
153 0:5 memVar: direct index for structure ( temp 4-component vector of float)
154 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
157 0:5 'm' ( in 4-component vector of float)
158 0:6 Function Definition: type1::seti(i1; ( temp void)
159 0:6 Function Parameters:
160 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
163 0:6 move second child to first child ( temp int)
164 0:6 i: direct index for structure ( temp int)
165 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
169 0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float)
170 0:9 Function Parameters:
171 0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
172 0:9 'a' ( in 4-component vector of float)
174 0:10 Branch: Return with expression
175 0:10 add ( temp 4-component vector of float)
176 0:10 vector-scale ( temp 4-component vector of float)
177 0:10 Convert int to float ( temp float)
178 0:10 i: direct index for structure ( temp int)
179 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
182 0:10 'a' ( in 4-component vector of float)
183 0:10 memVar: direct index for structure ( temp 4-component vector of float)
184 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
187 0:13 Function Definition: type1::memFun(i1; ( temp int)
188 0:13 Function Parameters:
189 0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
192 0:14 Branch: Return with expression
193 0:14 Convert float to int ( temp int)
194 0:14 subtract ( temp float)
195 0:14 Convert int to float ( temp float)
197 0:14 i: direct index for structure ( temp int)
198 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
202 0:14 direct index ( temp float)
203 0:14 memVar: direct index for structure ( temp 4-component vector of float)
204 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i})
210 0:19 move second child to first child ( temp 2-component vector of float)
211 0:19 'j' ( global 2-component vector of float)
212 0:19 'i' ( global 2-component vector of float)
213 0:23 Function Definition: type2::memFun( ( temp 2-component vector of float)
214 0:23 Function Parameters:
215 0:23 '@this' ( temp structure{})
217 0:23 Branch: Return with expression
218 0:23 'i' ( global 2-component vector of float)
219 0:27 Function Definition: @main( ( temp 4-component vector of float)
220 0:27 Function Parameters:
222 0:29 Function Call: type1::setmem(vf4; ( temp void)
223 0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
229 0:30 Function Call: type1::seti(i1; ( temp void)
230 0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
234 0:31 move second child to first child ( temp 4-component vector of float)
235 0:31 'f4' ( temp 4-component vector of float)
241 0:32 add second child into first child ( temp 4-component vector of float)
242 0:32 'f4' ( temp 4-component vector of float)
243 0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float)
244 0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
250 0:33 add second child into first child ( temp 4-component vector of float)
251 0:33 'f4' ( temp 4-component vector of float)
252 0:33 Convert int to float ( temp float)
253 0:33 Function Call: type1::memFun(i1; ( temp int)
254 0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i})
257 0:34 Branch: Return with expression
258 0:34 'f4' ( temp 4-component vector of float)
259 0:27 Function Definition: main( ( temp void)
260 0:27 Function Parameters:
262 0:27 move second child to first child ( temp 4-component vector of float)
263 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
264 0:27 Function Call: @main( ( temp 4-component vector of float)
266 0:? 'i' ( global 2-component vector of float)
267 0:? 'j' ( global 2-component vector of float)
268 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
270 // Module Version 10000
271 // Generated by (magic number): 80001
272 // Id's are bound by 111
275 1: ExtInstImport "GLSL.std.450"
276 MemoryModel Logical GLSL450
277 EntryPoint Fragment 4 "main" 109
278 ExecutionMode 4 OriginUpperLeft
281 MemberName 9(type1) 0 "memVar"
282 MemberName 9(type1) 1 "i"
283 Name 15 "type1::setmem(vf4;"
286 Name 21 "type1::seti(i1;"
289 Name 26 "type1::memFun(vf4;"
292 Name 31 "type1::memFun(i1;"
296 Name 38 "type2::memFun("
307 Name 109 "@entryPointOutput"
308 Decorate 109(@entryPointOutput) Location 0
312 7: TypeVector 6(float) 4
314 9(type1): TypeStruct 7(fvec4) 8(int)
315 10: TypePointer Function 9(type1)
316 11: TypePointer Function 7(fvec4)
317 12: TypeFunction 2 10(ptr) 11(ptr)
318 17: TypePointer Function 8(int)
319 18: TypeFunction 2 10(ptr) 17(ptr)
320 23: TypeFunction 7(fvec4) 10(ptr) 11(ptr)
321 28: TypeFunction 8(int) 10(ptr) 17(ptr)
322 33(type2): TypeStruct
323 34: TypePointer Function 33(type2)
324 35: TypeVector 6(float) 2
325 36: TypeFunction 35(fvec2) 34(ptr)
326 40: TypeFunction 7(fvec4)
327 43: TypePointer Private 35(fvec2)
328 44(i): 43(ptr) Variable Private
329 45: 6(float) Constant 1065353216
330 46: 6(float) Constant 1073741824
331 47: 35(fvec2) ConstantComposite 45 46
332 48(j): 43(ptr) Variable Private
333 50: 8(int) Constant 0
334 53: 8(int) Constant 1
336 72: 71(int) Constant 2
337 73: TypePointer Function 6(float)
338 84: 7(fvec4) ConstantComposite 46 46 46 46
339 87: 8(int) Constant 17
340 91: 7(fvec4) ConstantComposite 45 45 45 45
341 92: 6(float) Constant 1084227584
342 93: 7(fvec4) ConstantComposite 92 92 92 92
343 98: 8(int) Constant 7
344 108: TypePointer Output 7(fvec4)
345 109(@entryPointOutput): 108(ptr) Variable Output
346 4(main): 2 Function None 3
349 49: 35(fvec2) Load 44(i)
351 110: 7(fvec4) FunctionCall 41(@main()
352 Store 109(@entryPointOutput) 110
355 15(type1::setmem(vf4;): 2 Function None 12
356 13(@this): 10(ptr) FunctionParameter
357 14(m): 11(ptr) FunctionParameter
359 51: 7(fvec4) Load 14(m)
360 52: 11(ptr) AccessChain 13(@this) 50
364 21(type1::seti(i1;): 2 Function None 18
365 19(@this): 10(ptr) FunctionParameter
366 20(si): 17(ptr) FunctionParameter
368 54: 8(int) Load 20(si)
369 55: 17(ptr) AccessChain 19(@this) 53
373 26(type1::memFun(vf4;): 7(fvec4) Function None 23
374 24(@this): 10(ptr) FunctionParameter
375 25(a): 11(ptr) FunctionParameter
377 56: 17(ptr) AccessChain 24(@this) 53
379 58: 6(float) ConvertSToF 57
380 59: 7(fvec4) Load 25(a)
381 60: 7(fvec4) VectorTimesScalar 59 58
382 61: 11(ptr) AccessChain 24(@this) 50
384 63: 7(fvec4) FAdd 60 62
387 31(type1::memFun(i1;): 8(int) Function None 28
388 29(@this): 10(ptr) FunctionParameter
389 30(a): 17(ptr) FunctionParameter
391 66: 17(ptr) AccessChain 29(@this) 53
393 68: 8(int) Load 30(a)
394 69: 8(int) IAdd 67 68
395 70: 6(float) ConvertSToF 69
396 74: 73(ptr) AccessChain 29(@this) 50 72
398 76: 6(float) FSub 70 75
399 77: 8(int) ConvertFToS 76
402 38(type2::memFun(): 35(fvec2) Function None 36
403 37(@this): 34(ptr) FunctionParameter
405 80: 35(fvec2) Load 44(i)
408 41(@main(): 7(fvec4) Function None 40
410 83(test): 10(ptr) Variable Function
411 85(param): 11(ptr) Variable Function
412 88(param): 17(ptr) Variable Function
413 90(f4): 11(ptr) Variable Function
414 94(param): 11(ptr) Variable Function
415 99(param): 17(ptr) Variable Function
417 86: 2 FunctionCall 15(type1::setmem(vf4;) 83(test) 85(param)
419 89: 2 FunctionCall 21(type1::seti(i1;) 83(test) 88(param)
422 95: 7(fvec4) FunctionCall 26(type1::memFun(vf4;) 83(test) 94(param)
423 96: 7(fvec4) Load 90(f4)
424 97: 7(fvec4) FAdd 96 95
427 100: 8(int) FunctionCall 31(type1::memFun(i1;) 83(test) 99(param)
428 101: 6(float) ConvertSToF 100
429 102: 7(fvec4) Load 90(f4)
430 103: 7(fvec4) CompositeConstruct 101 101 101 101
431 104: 7(fvec4) FAdd 102 103
433 105: 7(fvec4) Load 90(f4)