1hlsl.nonstaticMemberFunction.frag 2Shader version: 500 3gl_FragCoord origin is upper left 40:? Sequence 50:1 Sequence 60:1 move second child to first child ( temp 2-component vector of float) 70:1 'i' ( global 2-component vector of float) 80:1 Constant: 90:1 1.000000 100:1 2.000000 110:5 Function Definition: type1::setmem(vf4; ( temp void) 120:5 Function Parameters: 130:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 140:5 'm' ( in 4-component vector of float) 150:? Sequence 160:5 move second child to first child ( temp 4-component vector of float) 170:5 memVar: direct index for structure ( temp 4-component vector of float) 180:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 190:5 Constant: 200:5 0 (const uint) 210:5 'm' ( in 4-component vector of float) 220:6 Function Definition: type1::seti(i1; ( temp void) 230:6 Function Parameters: 240:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 250:6 'si' ( in int) 260:? Sequence 270:6 move second child to first child ( temp int) 280:6 i: direct index for structure ( temp int) 290:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 300:6 Constant: 310:6 1 (const uint) 320:6 'si' ( in int) 330:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) 340:9 Function Parameters: 350:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 360:9 'a' ( in 4-component vector of float) 370:? Sequence 380:10 Branch: Return with expression 390:10 add ( temp 4-component vector of float) 400:10 vector-scale ( temp 4-component vector of float) 410:10 Convert int to float ( temp float) 420:10 i: direct index for structure ( temp int) 430:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 440:10 Constant: 450:10 1 (const uint) 460:10 'a' ( in 4-component vector of float) 470:10 memVar: direct index for structure ( temp 4-component vector of float) 480:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 490:10 Constant: 500:10 0 (const uint) 510:13 Function Definition: type1::memFun(i1; ( temp int) 520:13 Function Parameters: 530:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 540:13 'a' ( in int) 550:? Sequence 560:14 Branch: Return with expression 570:14 Convert float to int ( temp int) 580:14 subtract ( temp float) 590:14 Convert int to float ( temp float) 600:14 add ( temp int) 610:14 i: direct index for structure ( temp int) 620:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 630:14 Constant: 640:14 1 (const uint) 650:14 'a' ( in int) 660:14 direct index ( temp float) 670:14 memVar: direct index for structure ( temp 4-component vector of float) 680:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 690:14 Constant: 700:14 0 (const uint) 710:14 Constant: 720:14 2 (const int) 730:19 Sequence 740:19 move second child to first child ( temp 2-component vector of float) 750:19 'j' ( global 2-component vector of float) 760:19 'i' ( global 2-component vector of float) 770:23 Function Definition: type2::memFun( ( temp 2-component vector of float) 780:23 Function Parameters: 790:23 '@this' ( temp structure{}) 800:? Sequence 810:23 Branch: Return with expression 820:23 'i' ( global 2-component vector of float) 830:27 Function Definition: @main( ( temp 4-component vector of float) 840:27 Function Parameters: 850:? Sequence 860:29 Function Call: type1::setmem(vf4; ( temp void) 870:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 880:29 Constant: 890:29 2.000000 900:29 2.000000 910:29 2.000000 920:29 2.000000 930:30 Function Call: type1::seti(i1; ( temp void) 940:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 950:30 Constant: 960:30 17 (const int) 970:31 Sequence 980:31 move second child to first child ( temp 4-component vector of float) 990:31 'f4' ( temp 4-component vector of float) 1000:31 Constant: 1010:31 1.000000 1020:31 1.000000 1030:31 1.000000 1040:31 1.000000 1050:32 add second child into first child ( temp 4-component vector of float) 1060:32 'f4' ( temp 4-component vector of float) 1070:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) 1080:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1090:32 Constant: 1100:32 5.000000 1110:32 5.000000 1120:32 5.000000 1130:32 5.000000 1140:33 add second child into first child ( temp 4-component vector of float) 1150:33 'f4' ( temp 4-component vector of float) 1160:33 Convert int to float ( temp float) 1170:33 Function Call: type1::memFun(i1; ( temp int) 1180:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1190:33 Constant: 1200:33 7 (const int) 1210:34 Branch: Return with expression 1220:34 'f4' ( temp 4-component vector of float) 1230:27 Function Definition: main( ( temp void) 1240:27 Function Parameters: 1250:? Sequence 1260:27 move second child to first child ( temp 4-component vector of float) 1270:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 1280:27 Function Call: @main( ( temp 4-component vector of float) 1290:? Linker Objects 1300:? 'i' ( global 2-component vector of float) 1310:? 'j' ( global 2-component vector of float) 1320:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 133 134 135Linked fragment stage: 136 137 138Shader version: 500 139gl_FragCoord origin is upper left 1400:? Sequence 1410:1 Sequence 1420:1 move second child to first child ( temp 2-component vector of float) 1430:1 'i' ( global 2-component vector of float) 1440:1 Constant: 1450:1 1.000000 1460:1 2.000000 1470:5 Function Definition: type1::setmem(vf4; ( temp void) 1480:5 Function Parameters: 1490:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1500:5 'm' ( in 4-component vector of float) 1510:? Sequence 1520:5 move second child to first child ( temp 4-component vector of float) 1530:5 memVar: direct index for structure ( temp 4-component vector of float) 1540:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1550:5 Constant: 1560:5 0 (const uint) 1570:5 'm' ( in 4-component vector of float) 1580:6 Function Definition: type1::seti(i1; ( temp void) 1590:6 Function Parameters: 1600:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1610:6 'si' ( in int) 1620:? Sequence 1630:6 move second child to first child ( temp int) 1640:6 i: direct index for structure ( temp int) 1650:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1660:6 Constant: 1670:6 1 (const uint) 1680:6 'si' ( in int) 1690:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) 1700:9 Function Parameters: 1710:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1720:9 'a' ( in 4-component vector of float) 1730:? Sequence 1740:10 Branch: Return with expression 1750:10 add ( temp 4-component vector of float) 1760:10 vector-scale ( temp 4-component vector of float) 1770:10 Convert int to float ( temp float) 1780:10 i: direct index for structure ( temp int) 1790:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1800:10 Constant: 1810:10 1 (const uint) 1820:10 'a' ( in 4-component vector of float) 1830:10 memVar: direct index for structure ( temp 4-component vector of float) 1840:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1850:10 Constant: 1860:10 0 (const uint) 1870:13 Function Definition: type1::memFun(i1; ( temp int) 1880:13 Function Parameters: 1890:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1900:13 'a' ( in int) 1910:? Sequence 1920:14 Branch: Return with expression 1930:14 Convert float to int ( temp int) 1940:14 subtract ( temp float) 1950:14 Convert int to float ( temp float) 1960:14 add ( temp int) 1970:14 i: direct index for structure ( temp int) 1980:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 1990:14 Constant: 2000:14 1 (const uint) 2010:14 'a' ( in int) 2020:14 direct index ( temp float) 2030:14 memVar: direct index for structure ( temp 4-component vector of float) 2040:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 2050:14 Constant: 2060:14 0 (const uint) 2070:14 Constant: 2080:14 2 (const int) 2090:19 Sequence 2100:19 move second child to first child ( temp 2-component vector of float) 2110:19 'j' ( global 2-component vector of float) 2120:19 'i' ( global 2-component vector of float) 2130:23 Function Definition: type2::memFun( ( temp 2-component vector of float) 2140:23 Function Parameters: 2150:23 '@this' ( temp structure{}) 2160:? Sequence 2170:23 Branch: Return with expression 2180:23 'i' ( global 2-component vector of float) 2190:27 Function Definition: @main( ( temp 4-component vector of float) 2200:27 Function Parameters: 2210:? Sequence 2220:29 Function Call: type1::setmem(vf4; ( temp void) 2230:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 2240:29 Constant: 2250:29 2.000000 2260:29 2.000000 2270:29 2.000000 2280:29 2.000000 2290:30 Function Call: type1::seti(i1; ( temp void) 2300:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 2310:30 Constant: 2320:30 17 (const int) 2330:31 Sequence 2340:31 move second child to first child ( temp 4-component vector of float) 2350:31 'f4' ( temp 4-component vector of float) 2360:31 Constant: 2370:31 1.000000 2380:31 1.000000 2390:31 1.000000 2400:31 1.000000 2410:32 add second child into first child ( temp 4-component vector of float) 2420:32 'f4' ( temp 4-component vector of float) 2430:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) 2440:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 2450:32 Constant: 2460:32 5.000000 2470:32 5.000000 2480:32 5.000000 2490:32 5.000000 2500:33 add second child into first child ( temp 4-component vector of float) 2510:33 'f4' ( temp 4-component vector of float) 2520:33 Convert int to float ( temp float) 2530:33 Function Call: type1::memFun(i1; ( temp int) 2540:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 2550:33 Constant: 2560:33 7 (const int) 2570:34 Branch: Return with expression 2580:34 'f4' ( temp 4-component vector of float) 2590:27 Function Definition: main( ( temp void) 2600:27 Function Parameters: 2610:? Sequence 2620:27 move second child to first child ( temp 4-component vector of float) 2630:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 2640:27 Function Call: @main( ( temp 4-component vector of float) 2650:? Linker Objects 2660:? 'i' ( global 2-component vector of float) 2670:? 'j' ( global 2-component vector of float) 2680:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 269 270// Module Version 10000 271// Generated by (magic number): 8000a 272// Id's are bound by 111 273 274 Capability Shader 275 1: ExtInstImport "GLSL.std.450" 276 MemoryModel Logical GLSL450 277 EntryPoint Fragment 4 "main" 109 278 ExecutionMode 4 OriginUpperLeft 279 Source HLSL 500 280 Name 4 "main" 281 Name 9 "type1" 282 MemberName 9(type1) 0 "memVar" 283 MemberName 9(type1) 1 "i" 284 Name 15 "type1::setmem(vf4;" 285 Name 13 "@this" 286 Name 14 "m" 287 Name 21 "type1::seti(i1;" 288 Name 19 "@this" 289 Name 20 "si" 290 Name 26 "type1::memFun(vf4;" 291 Name 24 "@this" 292 Name 25 "a" 293 Name 31 "type1::memFun(i1;" 294 Name 29 "@this" 295 Name 30 "a" 296 Name 33 "type2" 297 Name 38 "type2::memFun(" 298 Name 37 "@this" 299 Name 41 "@main(" 300 Name 44 "i" 301 Name 48 "j" 302 Name 83 "test" 303 Name 85 "param" 304 Name 88 "param" 305 Name 90 "f4" 306 Name 94 "param" 307 Name 99 "param" 308 Name 109 "@entryPointOutput" 309 Decorate 109(@entryPointOutput) Location 0 310 2: TypeVoid 311 3: TypeFunction 2 312 6: TypeFloat 32 313 7: TypeVector 6(float) 4 314 8: TypeInt 32 1 315 9(type1): TypeStruct 7(fvec4) 8(int) 316 10: TypePointer Function 9(type1) 317 11: TypePointer Function 7(fvec4) 318 12: TypeFunction 2 10(ptr) 11(ptr) 319 17: TypePointer Function 8(int) 320 18: TypeFunction 2 10(ptr) 17(ptr) 321 23: TypeFunction 7(fvec4) 10(ptr) 11(ptr) 322 28: TypeFunction 8(int) 10(ptr) 17(ptr) 323 33(type2): TypeStruct 324 34: TypePointer Function 33(type2) 325 35: TypeVector 6(float) 2 326 36: TypeFunction 35(fvec2) 34(ptr) 327 40: TypeFunction 7(fvec4) 328 43: TypePointer Private 35(fvec2) 329 44(i): 43(ptr) Variable Private 330 45: 6(float) Constant 1065353216 331 46: 6(float) Constant 1073741824 332 47: 35(fvec2) ConstantComposite 45 46 333 48(j): 43(ptr) Variable Private 334 50: 8(int) Constant 0 335 53: 8(int) Constant 1 336 71: TypeInt 32 0 337 72: 71(int) Constant 2 338 73: TypePointer Function 6(float) 339 84: 7(fvec4) ConstantComposite 46 46 46 46 340 87: 8(int) Constant 17 341 91: 7(fvec4) ConstantComposite 45 45 45 45 342 92: 6(float) Constant 1084227584 343 93: 7(fvec4) ConstantComposite 92 92 92 92 344 98: 8(int) Constant 7 345 108: TypePointer Output 7(fvec4) 346109(@entryPointOutput): 108(ptr) Variable Output 347 4(main): 2 Function None 3 348 5: Label 349 Store 44(i) 47 350 49: 35(fvec2) Load 44(i) 351 Store 48(j) 49 352 110: 7(fvec4) FunctionCall 41(@main() 353 Store 109(@entryPointOutput) 110 354 Return 355 FunctionEnd 35615(type1::setmem(vf4;): 2 Function None 12 357 13(@this): 10(ptr) FunctionParameter 358 14(m): 11(ptr) FunctionParameter 359 16: Label 360 51: 7(fvec4) Load 14(m) 361 52: 11(ptr) AccessChain 13(@this) 50 362 Store 52 51 363 Return 364 FunctionEnd 36521(type1::seti(i1;): 2 Function None 18 366 19(@this): 10(ptr) FunctionParameter 367 20(si): 17(ptr) FunctionParameter 368 22: Label 369 54: 8(int) Load 20(si) 370 55: 17(ptr) AccessChain 19(@this) 53 371 Store 55 54 372 Return 373 FunctionEnd 37426(type1::memFun(vf4;): 7(fvec4) Function None 23 375 24(@this): 10(ptr) FunctionParameter 376 25(a): 11(ptr) FunctionParameter 377 27: Label 378 56: 17(ptr) AccessChain 24(@this) 53 379 57: 8(int) Load 56 380 58: 6(float) ConvertSToF 57 381 59: 7(fvec4) Load 25(a) 382 60: 7(fvec4) VectorTimesScalar 59 58 383 61: 11(ptr) AccessChain 24(@this) 50 384 62: 7(fvec4) Load 61 385 63: 7(fvec4) FAdd 60 62 386 ReturnValue 63 387 FunctionEnd 38831(type1::memFun(i1;): 8(int) Function None 28 389 29(@this): 10(ptr) FunctionParameter 390 30(a): 17(ptr) FunctionParameter 391 32: Label 392 66: 17(ptr) AccessChain 29(@this) 53 393 67: 8(int) Load 66 394 68: 8(int) Load 30(a) 395 69: 8(int) IAdd 67 68 396 70: 6(float) ConvertSToF 69 397 74: 73(ptr) AccessChain 29(@this) 50 72 398 75: 6(float) Load 74 399 76: 6(float) FSub 70 75 400 77: 8(int) ConvertFToS 76 401 ReturnValue 77 402 FunctionEnd 40338(type2::memFun(): 35(fvec2) Function None 36 404 37(@this): 34(ptr) FunctionParameter 405 39: Label 406 80: 35(fvec2) Load 44(i) 407 ReturnValue 80 408 FunctionEnd 409 41(@main(): 7(fvec4) Function None 40 410 42: Label 411 83(test): 10(ptr) Variable Function 412 85(param): 11(ptr) Variable Function 413 88(param): 17(ptr) Variable Function 414 90(f4): 11(ptr) Variable Function 415 94(param): 11(ptr) Variable Function 416 99(param): 17(ptr) Variable Function 417 Store 85(param) 84 418 86: 2 FunctionCall 15(type1::setmem(vf4;) 83(test) 85(param) 419 Store 88(param) 87 420 89: 2 FunctionCall 21(type1::seti(i1;) 83(test) 88(param) 421 Store 90(f4) 91 422 Store 94(param) 93 423 95: 7(fvec4) FunctionCall 26(type1::memFun(vf4;) 83(test) 94(param) 424 96: 7(fvec4) Load 90(f4) 425 97: 7(fvec4) FAdd 96 95 426 Store 90(f4) 97 427 Store 99(param) 98 428 100: 8(int) FunctionCall 31(type1::memFun(i1;) 83(test) 99(param) 429 101: 6(float) ConvertSToF 100 430 102: 7(fvec4) Load 90(f4) 431 103: 7(fvec4) CompositeConstruct 101 101 101 101 432 104: 7(fvec4) FAdd 102 103 433 Store 90(f4) 104 434 105: 7(fvec4) Load 90(f4) 435 ReturnValue 105 436 FunctionEnd 437