1hlsl.buffer_ref_parameter.comp 2Shader version: 500 3local_size = (64, 1, 1) 40:? Sequence 50:4 Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) 60:4 Function Parameters: 70:4 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 80:4 'vertex_id' ( in uint) 90:? Sequence 100:5 Branch: Return with expression 110:? intBitsToFloat ( temp 3-component vector of float) 120:? Sequence 130:5 move second child to first child ( temp int) 140:5 'byteAddrTemp' ( temp int) 150:5 right-shift ( temp int) 160:5 component-wise multiply ( temp uint) 170:5 component-wise multiply ( temp uint) 180:5 'vertex_id' ( in uint) 190:5 Constant: 200:5 3 (const uint) 210:5 Constant: 220:5 4 (const uint) 230:5 Constant: 240:5 2 (const int) 250:? Construct vec3 ( temp 3-component vector of uint) 260:5 indirect index ( temp uint) 270:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 280:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 290:5 Constant: 300:5 0 (const uint) 310:5 'byteAddrTemp' ( temp int) 320:5 indirect index ( temp uint) 330:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 340:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 350:5 Constant: 360:5 0 (const uint) 370:5 add ( temp int) 380:5 'byteAddrTemp' ( temp int) 390:5 Constant: 400:5 1 (const int) 410:5 indirect index ( temp uint) 420:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 430:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 440:5 Constant: 450:5 0 (const uint) 460:5 add ( temp int) 470:5 'byteAddrTemp' ( temp int) 480:5 Constant: 490:5 2 (const int) 500:9 Function Definition: @main(u1; ( temp void) 510:9 Function Parameters: 520:9 'gi' ( in uint) 530:? Sequence 540:10 Sequence 550:10 move second child to first child ( temp 3-component vector of float) 560:10 'position_ms' ( temp 3-component vector of float) 570:10 Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) 580:10 'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 590:10 'gi' ( in uint) 600:? Sequence 610:12 move second child to first child ( temp int) 620:12 'byteAddrTemp' ( temp int) 630:12 right-shift ( temp int) 640:12 Constant: 650:12 0 (const int) 660:12 Constant: 670:12 2 (const int) 680:12 move second child to first child ( temp uint) 690:12 indirect index (layout( row_major std430) buffer uint) 700:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 710:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 720:12 Constant: 730:12 0 (const uint) 740:12 'byteAddrTemp' ( temp int) 750:12 direct index ( temp uint) 760:12 floatBitsToUint ( temp 3-component vector of uint) 770:12 'position_ms' ( temp 3-component vector of float) 780:12 Constant: 790:12 0 (const int) 800:12 move second child to first child ( temp uint) 810:12 indirect index (layout( row_major std430) buffer uint) 820:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 830:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 840:12 Constant: 850:12 0 (const uint) 860:12 add ( temp int) 870:12 'byteAddrTemp' ( temp int) 880:12 Constant: 890:12 1 (const int) 900:12 direct index ( temp uint) 910:12 floatBitsToUint ( temp 3-component vector of uint) 920:12 'position_ms' ( temp 3-component vector of float) 930:12 Constant: 940:12 1 (const int) 950:12 move second child to first child ( temp uint) 960:12 indirect index (layout( row_major std430) buffer uint) 970:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 980:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 990:12 Constant: 1000:12 0 (const uint) 1010:12 add ( temp int) 1020:12 'byteAddrTemp' ( temp int) 1030:12 Constant: 1040:12 2 (const int) 1050:12 direct index ( temp uint) 1060:12 floatBitsToUint ( temp 3-component vector of uint) 1070:12 'position_ms' ( temp 3-component vector of float) 1080:12 Constant: 1090:12 2 (const int) 1100:9 Function Definition: main( ( temp void) 1110:9 Function Parameters: 1120:? Sequence 1130:9 move second child to first child ( temp uint) 1140:? 'gi' ( temp uint) 1150:? 'gi' ( in uint LocalInvocationIndex) 1160:9 Function Call: @main(u1; ( temp void) 1170:? 'gi' ( temp uint) 1180:? Linker Objects 1190:? 'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1200:? 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1210:? 'gi' ( in uint LocalInvocationIndex) 122 123 124Linked compute stage: 125 126 127Shader version: 500 128local_size = (64, 1, 1) 1290:? Sequence 1300:4 Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) 1310:4 Function Parameters: 1320:4 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1330:4 'vertex_id' ( in uint) 1340:? Sequence 1350:5 Branch: Return with expression 1360:? intBitsToFloat ( temp 3-component vector of float) 1370:? Sequence 1380:5 move second child to first child ( temp int) 1390:5 'byteAddrTemp' ( temp int) 1400:5 right-shift ( temp int) 1410:5 component-wise multiply ( temp uint) 1420:5 component-wise multiply ( temp uint) 1430:5 'vertex_id' ( in uint) 1440:5 Constant: 1450:5 3 (const uint) 1460:5 Constant: 1470:5 4 (const uint) 1480:5 Constant: 1490:5 2 (const int) 1500:? Construct vec3 ( temp 3-component vector of uint) 1510:5 indirect index ( temp uint) 1520:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 1530:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1540:5 Constant: 1550:5 0 (const uint) 1560:5 'byteAddrTemp' ( temp int) 1570:5 indirect index ( temp uint) 1580:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 1590:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1600:5 Constant: 1610:5 0 (const uint) 1620:5 add ( temp int) 1630:5 'byteAddrTemp' ( temp int) 1640:5 Constant: 1650:5 1 (const int) 1660:5 indirect index ( temp uint) 1670:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 1680:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1690:5 Constant: 1700:5 0 (const uint) 1710:5 add ( temp int) 1720:5 'byteAddrTemp' ( temp int) 1730:5 Constant: 1740:5 2 (const int) 1750:9 Function Definition: @main(u1; ( temp void) 1760:9 Function Parameters: 1770:9 'gi' ( in uint) 1780:? Sequence 1790:10 Sequence 1800:10 move second child to first child ( temp 3-component vector of float) 1810:10 'position_ms' ( temp 3-component vector of float) 1820:10 Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) 1830:10 'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1840:10 'gi' ( in uint) 1850:? Sequence 1860:12 move second child to first child ( temp int) 1870:12 'byteAddrTemp' ( temp int) 1880:12 right-shift ( temp int) 1890:12 Constant: 1900:12 0 (const int) 1910:12 Constant: 1920:12 2 (const int) 1930:12 move second child to first child ( temp uint) 1940:12 indirect index (layout( row_major std430) buffer uint) 1950:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 1960:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 1970:12 Constant: 1980:12 0 (const uint) 1990:12 'byteAddrTemp' ( temp int) 2000:12 direct index ( temp uint) 2010:12 floatBitsToUint ( temp 3-component vector of uint) 2020:12 'position_ms' ( temp 3-component vector of float) 2030:12 Constant: 2040:12 0 (const int) 2050:12 move second child to first child ( temp uint) 2060:12 indirect index (layout( row_major std430) buffer uint) 2070:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 2080:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 2090:12 Constant: 2100:12 0 (const uint) 2110:12 add ( temp int) 2120:12 'byteAddrTemp' ( temp int) 2130:12 Constant: 2140:12 1 (const int) 2150:12 direct index ( temp uint) 2160:12 floatBitsToUint ( temp 3-component vector of uint) 2170:12 'position_ms' ( temp 3-component vector of float) 2180:12 Constant: 2190:12 1 (const int) 2200:12 move second child to first child ( temp uint) 2210:12 indirect index (layout( row_major std430) buffer uint) 2220:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 2230:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 2240:12 Constant: 2250:12 0 (const uint) 2260:12 add ( temp int) 2270:12 'byteAddrTemp' ( temp int) 2280:12 Constant: 2290:12 2 (const int) 2300:12 direct index ( temp uint) 2310:12 floatBitsToUint ( temp 3-component vector of uint) 2320:12 'position_ms' ( temp 3-component vector of float) 2330:12 Constant: 2340:12 2 (const int) 2350:9 Function Definition: main( ( temp void) 2360:9 Function Parameters: 2370:? Sequence 2380:9 move second child to first child ( temp uint) 2390:? 'gi' ( temp uint) 2400:? 'gi' ( in uint LocalInvocationIndex) 2410:9 Function Call: @main(u1; ( temp void) 2420:? 'gi' ( temp uint) 2430:? Linker Objects 2440:? 'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 2450:? 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 2460:? 'gi' ( in uint LocalInvocationIndex) 247 248// Module Version 10400 249// Generated by (magic number): 8000b 250// Id's are bound by 90 251 252 Capability Shader 253 1: ExtInstImport "GLSL.std.450" 254 MemoryModel Logical GLSL450 255 EntryPoint GLCompute 4 "main" 53 62 85 256 ExecutionMode 4 LocalSize 64 1 1 257 Source HLSL 500 258 Name 4 "main" 259 Name 8 "" 260 MemberName 8 0 "@data" 261 Name 16 "pull_position(block--u1[0]1;u1;" 262 Name 14 "buffer_position" 263 Name 15 "vertex_id" 264 Name 20 "@main(u1;" 265 Name 19 "gi" 266 Name 24 "byteAddrTemp" 267 Name 52 "position_ms" 268 Name 53 "buffer_position_ms" 269 Name 54 "param" 270 Name 57 "byteAddrTemp" 271 Name 60 "r" 272 MemberName 60(r) 0 "@data" 273 Name 62 "r" 274 Name 83 "gi" 275 Name 85 "gi" 276 Name 87 "param" 277 Decorate 7 ArrayStride 4 278 MemberDecorate 8 0 NonWritable 279 MemberDecorate 8 0 Offset 0 280 Decorate 8 Block 281 Decorate 14(buffer_position) NonWritable 282 Decorate 53(buffer_position_ms) DescriptorSet 0 283 Decorate 53(buffer_position_ms) Binding 0 284 Decorate 59 ArrayStride 4 285 MemberDecorate 60(r) 0 Offset 0 286 Decorate 60(r) Block 287 Decorate 62(r) DescriptorSet 0 288 Decorate 62(r) Binding 1 289 Decorate 85(gi) BuiltIn LocalInvocationIndex 290 2: TypeVoid 291 3: TypeFunction 2 292 6: TypeInt 32 0 293 7: TypeRuntimeArray 6(int) 294 8: TypeStruct 7 295 9: TypePointer StorageBuffer 8(struct) 296 10: TypePointer Function 6(int) 297 11: TypeFloat 32 298 12: TypeVector 11(float) 3 299 13: TypeFunction 12(fvec3) 9(ptr) 10(ptr) 300 18: TypeFunction 2 10(ptr) 301 22: TypeInt 32 1 302 23: TypePointer Function 22(int) 303 26: 6(int) Constant 3 304 28: 6(int) Constant 4 305 30: 22(int) Constant 2 306 32: 22(int) Constant 0 307 34: TypePointer StorageBuffer 6(int) 308 38: 22(int) Constant 1 309 46: TypeVector 6(int) 3 310 51: TypePointer Function 12(fvec3) 31153(buffer_position_ms): 9(ptr) Variable StorageBuffer 312 59: TypeRuntimeArray 6(int) 313 60(r): TypeStruct 59 314 61: TypePointer StorageBuffer 60(r) 315 62(r): 61(ptr) Variable StorageBuffer 316 66: 6(int) Constant 0 317 73: 6(int) Constant 1 318 80: 6(int) Constant 2 319 84: TypePointer Input 6(int) 320 85(gi): 84(ptr) Variable Input 321 4(main): 2 Function None 3 322 5: Label 323 83(gi): 10(ptr) Variable Function 324 87(param): 10(ptr) Variable Function 325 86: 6(int) Load 85(gi) 326 Store 83(gi) 86 327 88: 6(int) Load 83(gi) 328 Store 87(param) 88 329 89: 2 FunctionCall 20(@main(u1;) 87(param) 330 Return 331 FunctionEnd 33216(pull_position(block--u1[0]1;u1;): 12(fvec3) Function None 13 33314(buffer_position): 9(ptr) FunctionParameter 334 15(vertex_id): 10(ptr) FunctionParameter 335 17: Label 33624(byteAddrTemp): 23(ptr) Variable Function 337 25: 6(int) Load 15(vertex_id) 338 27: 6(int) IMul 25 26 339 29: 6(int) IMul 27 28 340 31: 22(int) ShiftRightLogical 29 30 341 Store 24(byteAddrTemp) 31 342 33: 22(int) Load 24(byteAddrTemp) 343 35: 34(ptr) AccessChain 14(buffer_position) 32 33 344 36: 6(int) Load 35 345 37: 22(int) Load 24(byteAddrTemp) 346 39: 22(int) IAdd 37 38 347 40: 34(ptr) AccessChain 14(buffer_position) 32 39 348 41: 6(int) Load 40 349 42: 22(int) Load 24(byteAddrTemp) 350 43: 22(int) IAdd 42 30 351 44: 34(ptr) AccessChain 14(buffer_position) 32 43 352 45: 6(int) Load 44 353 47: 46(ivec3) CompositeConstruct 36 41 45 354 48: 12(fvec3) Bitcast 47 355 ReturnValue 48 356 FunctionEnd 357 20(@main(u1;): 2 Function None 18 358 19(gi): 10(ptr) FunctionParameter 359 21: Label 360 52(position_ms): 51(ptr) Variable Function 361 54(param): 10(ptr) Variable Function 36257(byteAddrTemp): 23(ptr) Variable Function 363 55: 6(int) Load 19(gi) 364 Store 54(param) 55 365 56: 12(fvec3) FunctionCall 16(pull_position(block--u1[0]1;u1;) 53(buffer_position_ms) 54(param) 366 Store 52(position_ms) 56 367 58: 22(int) ShiftRightArithmetic 32 30 368 Store 57(byteAddrTemp) 58 369 63: 22(int) Load 57(byteAddrTemp) 370 64: 12(fvec3) Load 52(position_ms) 371 65: 46(ivec3) Bitcast 64 372 67: 6(int) CompositeExtract 65 0 373 68: 34(ptr) AccessChain 62(r) 32 63 374 Store 68 67 375 69: 22(int) Load 57(byteAddrTemp) 376 70: 22(int) IAdd 69 38 377 71: 12(fvec3) Load 52(position_ms) 378 72: 46(ivec3) Bitcast 71 379 74: 6(int) CompositeExtract 72 1 380 75: 34(ptr) AccessChain 62(r) 32 70 381 Store 75 74 382 76: 22(int) Load 57(byteAddrTemp) 383 77: 22(int) IAdd 76 30 384 78: 12(fvec3) Load 52(position_ms) 385 79: 46(ivec3) Bitcast 78 386 81: 6(int) CompositeExtract 79 2 387 82: 34(ptr) AccessChain 62(r) 32 77 388 Store 82 81 389 Return 390 FunctionEnd 391