| hlsl.buffer_ref_parameter.comp |
| Shader version: 500 |
| local_size = (64, 1, 1) |
| 0:? Sequence |
| 0:4 Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) |
| 0:4 Function Parameters: |
| 0:4 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:4 'vertex_id' ( in uint) |
| 0:? Sequence |
| 0:5 Branch: Return with expression |
| 0:? intBitsToFloat ( temp 3-component vector of float) |
| 0:? Sequence |
| 0:5 move second child to first child ( temp int) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 right-shift ( temp int) |
| 0:5 component-wise multiply ( temp uint) |
| 0:5 component-wise multiply ( temp uint) |
| 0:5 'vertex_id' ( in uint) |
| 0:5 Constant: |
| 0:5 3 (const uint) |
| 0:5 Constant: |
| 0:5 4 (const uint) |
| 0:5 Constant: |
| 0:5 2 (const int) |
| 0:? Construct vec3 ( temp 3-component vector of uint) |
| 0:5 indirect index ( temp uint) |
| 0:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:5 Constant: |
| 0:5 0 (const uint) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 indirect index ( temp uint) |
| 0:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:5 Constant: |
| 0:5 0 (const uint) |
| 0:5 add ( temp int) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 Constant: |
| 0:5 1 (const int) |
| 0:5 indirect index ( temp uint) |
| 0:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:5 Constant: |
| 0:5 0 (const uint) |
| 0:5 add ( temp int) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 Constant: |
| 0:5 2 (const int) |
| 0:9 Function Definition: @main(u1; ( temp void) |
| 0:9 Function Parameters: |
| 0:9 'gi' ( in uint) |
| 0:? Sequence |
| 0:10 Sequence |
| 0:10 move second child to first child ( temp 3-component vector of float) |
| 0:10 'position_ms' ( temp 3-component vector of float) |
| 0:10 Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) |
| 0: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}) |
| 0:10 'gi' ( in uint) |
| 0:? Sequence |
| 0:12 move second child to first child ( temp int) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 right-shift ( temp int) |
| 0:12 Constant: |
| 0:12 0 (const int) |
| 0:12 Constant: |
| 0:12 2 (const int) |
| 0:12 move second child to first child ( temp uint) |
| 0:12 indirect index (layout( row_major std430) buffer uint) |
| 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:12 Constant: |
| 0:12 0 (const uint) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 direct index ( temp uint) |
| 0:12 floatBitsToUint ( temp 3-component vector of uint) |
| 0:12 'position_ms' ( temp 3-component vector of float) |
| 0:12 Constant: |
| 0:12 0 (const int) |
| 0:12 move second child to first child ( temp uint) |
| 0:12 indirect index (layout( row_major std430) buffer uint) |
| 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:12 Constant: |
| 0:12 0 (const uint) |
| 0:12 add ( temp int) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 Constant: |
| 0:12 1 (const int) |
| 0:12 direct index ( temp uint) |
| 0:12 floatBitsToUint ( temp 3-component vector of uint) |
| 0:12 'position_ms' ( temp 3-component vector of float) |
| 0:12 Constant: |
| 0:12 1 (const int) |
| 0:12 move second child to first child ( temp uint) |
| 0:12 indirect index (layout( row_major std430) buffer uint) |
| 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:12 Constant: |
| 0:12 0 (const uint) |
| 0:12 add ( temp int) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 Constant: |
| 0:12 2 (const int) |
| 0:12 direct index ( temp uint) |
| 0:12 floatBitsToUint ( temp 3-component vector of uint) |
| 0:12 'position_ms' ( temp 3-component vector of float) |
| 0:12 Constant: |
| 0:12 2 (const int) |
| 0:9 Function Definition: main( ( temp void) |
| 0:9 Function Parameters: |
| 0:? Sequence |
| 0:9 move second child to first child ( temp uint) |
| 0:? 'gi' ( temp uint) |
| 0:? 'gi' ( in uint LocalInvocationIndex) |
| 0:9 Function Call: @main(u1; ( temp void) |
| 0:? 'gi' ( temp uint) |
| 0:? Linker Objects |
| 0:? '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}) |
| 0:? 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:? 'gi' ( in uint LocalInvocationIndex) |
| |
| |
| Linked compute stage: |
| |
| |
| Shader version: 500 |
| local_size = (64, 1, 1) |
| 0:? Sequence |
| 0:4 Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) |
| 0:4 Function Parameters: |
| 0:4 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:4 'vertex_id' ( in uint) |
| 0:? Sequence |
| 0:5 Branch: Return with expression |
| 0:? intBitsToFloat ( temp 3-component vector of float) |
| 0:? Sequence |
| 0:5 move second child to first child ( temp int) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 right-shift ( temp int) |
| 0:5 component-wise multiply ( temp uint) |
| 0:5 component-wise multiply ( temp uint) |
| 0:5 'vertex_id' ( in uint) |
| 0:5 Constant: |
| 0:5 3 (const uint) |
| 0:5 Constant: |
| 0:5 4 (const uint) |
| 0:5 Constant: |
| 0:5 2 (const int) |
| 0:? Construct vec3 ( temp 3-component vector of uint) |
| 0:5 indirect index ( temp uint) |
| 0:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:5 Constant: |
| 0:5 0 (const uint) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 indirect index ( temp uint) |
| 0:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:5 Constant: |
| 0:5 0 (const uint) |
| 0:5 add ( temp int) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 Constant: |
| 0:5 1 (const int) |
| 0:5 indirect index ( temp uint) |
| 0:5 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:5 'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:5 Constant: |
| 0:5 0 (const uint) |
| 0:5 add ( temp int) |
| 0:5 'byteAddrTemp' ( temp int) |
| 0:5 Constant: |
| 0:5 2 (const int) |
| 0:9 Function Definition: @main(u1; ( temp void) |
| 0:9 Function Parameters: |
| 0:9 'gi' ( in uint) |
| 0:? Sequence |
| 0:10 Sequence |
| 0:10 move second child to first child ( temp 3-component vector of float) |
| 0:10 'position_ms' ( temp 3-component vector of float) |
| 0:10 Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float) |
| 0: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}) |
| 0:10 'gi' ( in uint) |
| 0:? Sequence |
| 0:12 move second child to first child ( temp int) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 right-shift ( temp int) |
| 0:12 Constant: |
| 0:12 0 (const int) |
| 0:12 Constant: |
| 0:12 2 (const int) |
| 0:12 move second child to first child ( temp uint) |
| 0:12 indirect index (layout( row_major std430) buffer uint) |
| 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:12 Constant: |
| 0:12 0 (const uint) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 direct index ( temp uint) |
| 0:12 floatBitsToUint ( temp 3-component vector of uint) |
| 0:12 'position_ms' ( temp 3-component vector of float) |
| 0:12 Constant: |
| 0:12 0 (const int) |
| 0:12 move second child to first child ( temp uint) |
| 0:12 indirect index (layout( row_major std430) buffer uint) |
| 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:12 Constant: |
| 0:12 0 (const uint) |
| 0:12 add ( temp int) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 Constant: |
| 0:12 1 (const int) |
| 0:12 direct index ( temp uint) |
| 0:12 floatBitsToUint ( temp 3-component vector of uint) |
| 0:12 'position_ms' ( temp 3-component vector of float) |
| 0:12 Constant: |
| 0:12 1 (const int) |
| 0:12 move second child to first child ( temp uint) |
| 0:12 indirect index (layout( row_major std430) buffer uint) |
| 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) |
| 0:12 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:12 Constant: |
| 0:12 0 (const uint) |
| 0:12 add ( temp int) |
| 0:12 'byteAddrTemp' ( temp int) |
| 0:12 Constant: |
| 0:12 2 (const int) |
| 0:12 direct index ( temp uint) |
| 0:12 floatBitsToUint ( temp 3-component vector of uint) |
| 0:12 'position_ms' ( temp 3-component vector of float) |
| 0:12 Constant: |
| 0:12 2 (const int) |
| 0:9 Function Definition: main( ( temp void) |
| 0:9 Function Parameters: |
| 0:? Sequence |
| 0:9 move second child to first child ( temp uint) |
| 0:? 'gi' ( temp uint) |
| 0:? 'gi' ( in uint LocalInvocationIndex) |
| 0:9 Function Call: @main(u1; ( temp void) |
| 0:? 'gi' ( temp uint) |
| 0:? Linker Objects |
| 0:? '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}) |
| 0:? 'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) |
| 0:? 'gi' ( in uint LocalInvocationIndex) |
| |
| // Module Version 10400 |
| // Generated by (magic number): 8000b |
| // Id's are bound by 90 |
| |
| Capability Shader |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint GLCompute 4 "main" 53 62 85 |
| ExecutionMode 4 LocalSize 64 1 1 |
| Source HLSL 500 |
| Name 4 "main" |
| Name 8 "" |
| MemberName 8 0 "@data" |
| Name 16 "pull_position(block--u1[0]1;u1;" |
| Name 14 "buffer_position" |
| Name 15 "vertex_id" |
| Name 20 "@main(u1;" |
| Name 19 "gi" |
| Name 24 "byteAddrTemp" |
| Name 52 "position_ms" |
| Name 53 "buffer_position_ms" |
| Name 54 "param" |
| Name 57 "byteAddrTemp" |
| Name 60 "r" |
| MemberName 60(r) 0 "@data" |
| Name 62 "r" |
| Name 83 "gi" |
| Name 85 "gi" |
| Name 87 "param" |
| Decorate 7 ArrayStride 4 |
| MemberDecorate 8 0 NonWritable |
| MemberDecorate 8 0 Offset 0 |
| Decorate 8 Block |
| Decorate 14(buffer_position) NonWritable |
| Decorate 53(buffer_position_ms) DescriptorSet 0 |
| Decorate 53(buffer_position_ms) Binding 0 |
| Decorate 59 ArrayStride 4 |
| MemberDecorate 60(r) 0 Offset 0 |
| Decorate 60(r) Block |
| Decorate 62(r) DescriptorSet 0 |
| Decorate 62(r) Binding 1 |
| Decorate 85(gi) BuiltIn LocalInvocationIndex |
| 2: TypeVoid |
| 3: TypeFunction 2 |
| 6: TypeInt 32 0 |
| 7: TypeRuntimeArray 6(int) |
| 8: TypeStruct 7 |
| 9: TypePointer StorageBuffer 8(struct) |
| 10: TypePointer Function 6(int) |
| 11: TypeFloat 32 |
| 12: TypeVector 11(float) 3 |
| 13: TypeFunction 12(fvec3) 9(ptr) 10(ptr) |
| 18: TypeFunction 2 10(ptr) |
| 22: TypeInt 32 1 |
| 23: TypePointer Function 22(int) |
| 26: 6(int) Constant 3 |
| 28: 6(int) Constant 4 |
| 30: 22(int) Constant 2 |
| 32: 22(int) Constant 0 |
| 34: TypePointer StorageBuffer 6(int) |
| 38: 22(int) Constant 1 |
| 46: TypeVector 6(int) 3 |
| 51: TypePointer Function 12(fvec3) |
| 53(buffer_position_ms): 9(ptr) Variable StorageBuffer |
| 59: TypeRuntimeArray 6(int) |
| 60(r): TypeStruct 59 |
| 61: TypePointer StorageBuffer 60(r) |
| 62(r): 61(ptr) Variable StorageBuffer |
| 66: 6(int) Constant 0 |
| 73: 6(int) Constant 1 |
| 80: 6(int) Constant 2 |
| 84: TypePointer Input 6(int) |
| 85(gi): 84(ptr) Variable Input |
| 4(main): 2 Function None 3 |
| 5: Label |
| 83(gi): 10(ptr) Variable Function |
| 87(param): 10(ptr) Variable Function |
| 86: 6(int) Load 85(gi) |
| Store 83(gi) 86 |
| 88: 6(int) Load 83(gi) |
| Store 87(param) 88 |
| 89: 2 FunctionCall 20(@main(u1;) 87(param) |
| Return |
| FunctionEnd |
| 16(pull_position(block--u1[0]1;u1;): 12(fvec3) Function None 13 |
| 14(buffer_position): 9(ptr) FunctionParameter |
| 15(vertex_id): 10(ptr) FunctionParameter |
| 17: Label |
| 24(byteAddrTemp): 23(ptr) Variable Function |
| 25: 6(int) Load 15(vertex_id) |
| 27: 6(int) IMul 25 26 |
| 29: 6(int) IMul 27 28 |
| 31: 22(int) ShiftRightLogical 29 30 |
| Store 24(byteAddrTemp) 31 |
| 33: 22(int) Load 24(byteAddrTemp) |
| 35: 34(ptr) AccessChain 14(buffer_position) 32 33 |
| 36: 6(int) Load 35 |
| 37: 22(int) Load 24(byteAddrTemp) |
| 39: 22(int) IAdd 37 38 |
| 40: 34(ptr) AccessChain 14(buffer_position) 32 39 |
| 41: 6(int) Load 40 |
| 42: 22(int) Load 24(byteAddrTemp) |
| 43: 22(int) IAdd 42 30 |
| 44: 34(ptr) AccessChain 14(buffer_position) 32 43 |
| 45: 6(int) Load 44 |
| 47: 46(ivec3) CompositeConstruct 36 41 45 |
| 48: 12(fvec3) Bitcast 47 |
| ReturnValue 48 |
| FunctionEnd |
| 20(@main(u1;): 2 Function None 18 |
| 19(gi): 10(ptr) FunctionParameter |
| 21: Label |
| 52(position_ms): 51(ptr) Variable Function |
| 54(param): 10(ptr) Variable Function |
| 57(byteAddrTemp): 23(ptr) Variable Function |
| 55: 6(int) Load 19(gi) |
| Store 54(param) 55 |
| 56: 12(fvec3) FunctionCall 16(pull_position(block--u1[0]1;u1;) 53(buffer_position_ms) 54(param) |
| Store 52(position_ms) 56 |
| 58: 22(int) ShiftRightArithmetic 32 30 |
| Store 57(byteAddrTemp) 58 |
| 63: 22(int) Load 57(byteAddrTemp) |
| 64: 12(fvec3) Load 52(position_ms) |
| 65: 46(ivec3) Bitcast 64 |
| 67: 6(int) CompositeExtract 65 0 |
| 68: 34(ptr) AccessChain 62(r) 32 63 |
| Store 68 67 |
| 69: 22(int) Load 57(byteAddrTemp) |
| 70: 22(int) IAdd 69 38 |
| 71: 12(fvec3) Load 52(position_ms) |
| 72: 46(ivec3) Bitcast 71 |
| 74: 6(int) CompositeExtract 72 1 |
| 75: 34(ptr) AccessChain 62(r) 32 70 |
| Store 75 74 |
| 76: 22(int) Load 57(byteAddrTemp) |
| 77: 22(int) IAdd 76 30 |
| 78: 12(fvec3) Load 52(position_ms) |
| 79: 46(ivec3) Bitcast 78 |
| 81: 6(int) CompositeExtract 79 2 |
| 82: 34(ptr) AccessChain 62(r) 32 77 |
| Store 82 81 |
| Return |
| FunctionEnd |