1 hlsl.nonstaticMemberFunction.frag 2 Shader version: 500 3 gl_FragCoord origin is upper left 4 0:? Sequence 5 0:1 Sequence 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) 8 0:? Constant: 9 0:? 1.000000 10 0:? 2.000000 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) 15 0:? Sequence 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}) 19 0:5 Constant: 20 0:5 0 (const uint) 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}) 25 0:6 'si' ( in int) 26 0:? Sequence 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}) 30 0:6 Constant: 31 0:6 1 (const uint) 32 0:6 'si' ( in int) 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) 37 0:? Sequence 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}) 44 0:10 Constant: 45 0:10 1 (const uint) 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}) 49 0:10 Constant: 50 0:10 0 (const uint) 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}) 54 0:13 'a' ( in int) 55 0:? Sequence 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) 60 0:14 add ( temp int) 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}) 63 0:14 Constant: 64 0:14 1 (const uint) 65 0:14 'a' ( in int) 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}) 69 0:14 Constant: 70 0:14 0 (const uint) 71 0:14 Constant: 72 0:14 2 (const int) 73 0:19 Sequence 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{}) 80 0:? Sequence 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: 85 0:? Sequence 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}) 88 0:? Constant: 89 0:? 2.000000 90 0:? 2.000000 91 0:? 2.000000 92 0:? 2.000000 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}) 95 0:30 Constant: 96 0:30 17 (const int) 97 0:31 Sequence 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) 100 0:? Constant: 101 0:? 1.000000 102 0:? 1.000000 103 0:? 1.000000 104 0:? 1.000000 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}) 109 0:? Constant: 110 0:? 5.000000 111 0:? 5.000000 112 0:? 5.000000 113 0:? 5.000000 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}) 119 0:33 Constant: 120 0:33 7 (const int) 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: 125 0:? Sequence 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) 129 0:? Linker Objects 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) 133 134 135 Linked fragment stage: 136 137 138 Shader version: 500 139 gl_FragCoord origin is upper left 140 0:? Sequence 141 0:1 Sequence 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) 144 0:? Constant: 145 0:? 1.000000 146 0:? 2.000000 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) 151 0:? Sequence 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}) 155 0:5 Constant: 156 0:5 0 (const uint) 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}) 161 0:6 'si' ( in int) 162 0:? Sequence 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}) 166 0:6 Constant: 167 0:6 1 (const uint) 168 0:6 'si' ( in int) 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) 173 0:? Sequence 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}) 180 0:10 Constant: 181 0:10 1 (const uint) 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}) 185 0:10 Constant: 186 0:10 0 (const uint) 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}) 190 0:13 'a' ( in int) 191 0:? Sequence 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) 196 0:14 add ( temp int) 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}) 199 0:14 Constant: 200 0:14 1 (const uint) 201 0:14 'a' ( in int) 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}) 205 0:14 Constant: 206 0:14 0 (const uint) 207 0:14 Constant: 208 0:14 2 (const int) 209 0:19 Sequence 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{}) 216 0:? Sequence 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: 221 0:? Sequence 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}) 224 0:? Constant: 225 0:? 2.000000 226 0:? 2.000000 227 0:? 2.000000 228 0:? 2.000000 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}) 231 0:30 Constant: 232 0:30 17 (const int) 233 0:31 Sequence 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) 236 0:? Constant: 237 0:? 1.000000 238 0:? 1.000000 239 0:? 1.000000 240 0:? 1.000000 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}) 245 0:? Constant: 246 0:? 5.000000 247 0:? 5.000000 248 0:? 5.000000 249 0:? 5.000000 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}) 255 0:33 Constant: 256 0:33 7 (const int) 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: 261 0:? Sequence 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) 265 0:? Linker Objects 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) 269 270 // Module Version 10000 271 // Generated by (magic number): 80007 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) 346 109(@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 356 15(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 365 21(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 374 26(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 388 31(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 403 38(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