hlsl.structbuffer.floatidx.comp
Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:13  Function Definition: @main(vu3; ( temp void)
0:13    Function Parameters: 
0:13      'nThreadId' ( in 3-component vector of uint)
0:?     Sequence
0:14      Sequence
0:14        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14          'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14              'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
0:14              Constant:
0:14                0 (const uint)
0:14            add ( temp uint)
0:14              AtomicAdd ( temp uint)
0:14                @count: direct index for structure ( temp uint)
0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:14                  Constant:
0:14                    0 (const int)
0:14                Constant:
0:14                  4294967295 (const uint)
0:14              Constant:
0:14                -1 (const int)
0:15      Sequence
0:15        move second child to first child ( temp 2-component vector of float)
0:15          'coord' ( temp 2-component vector of float)
0:15          Convert uint to float ( temp 2-component vector of float)
0:15            vector swizzle ( temp 2-component vector of uint)
0:15              threadId: direct index for structure ( temp 2-component vector of uint)
0:15                'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:15                Constant:
0:15                  1 (const int)
0:15              Sequence
0:15                Constant:
0:15                  0 (const int)
0:15                Constant:
0:15                  1 (const int)
0:16      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:16          'storeTemp' ( temp 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:16            Constant:
0:16              0 (const int)
0:16        imageStore ( temp void)
0:16          'outtx' (layout( rgba32f) uniform image2D)
0:16          Convert float to uint ( temp 2-component vector of uint)
0:16            'coord' ( temp 2-component vector of float)
0:16          'storeTemp' ( temp 4-component vector of float)
0:16        'storeTemp' ( temp 4-component vector of float)
0:18      move second child to first child ( temp 4-component vector of float)
0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18            Constant:
0:18              0 (const uint)
0:18          Convert float to uint ( temp uint)
0:18            direct index ( temp float)
0:18              'coord' ( temp 2-component vector of float)
0:18              Constant:
0:18                0 (const int)
0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18            Constant:
0:18              0 (const uint)
0:18          Convert float to uint ( temp uint)
0:18            direct index ( temp float)
0:18              'coord' ( temp 2-component vector of float)
0:18              Constant:
0:18                1 (const int)
0:13  Function Definition: main( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp 3-component vector of uint)
0:?         'nThreadId' ( temp 3-component vector of uint)
0:?         'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
0:13      Function Call: @main(vu3; ( temp void)
0:?         'nThreadId' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'outtx' (layout( rgba32f) uniform image2D)
0:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)


Linked compute stage:


Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:13  Function Definition: @main(vu3; ( temp void)
0:13    Function Parameters: 
0:13      'nThreadId' ( in 3-component vector of uint)
0:?     Sequence
0:14      Sequence
0:14        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14          'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:14              'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
0:14              Constant:
0:14                0 (const uint)
0:14            add ( temp uint)
0:14              AtomicAdd ( temp uint)
0:14                @count: direct index for structure ( temp uint)
0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:14                  Constant:
0:14                    0 (const int)
0:14                Constant:
0:14                  4294967295 (const uint)
0:14              Constant:
0:14                -1 (const int)
0:15      Sequence
0:15        move second child to first child ( temp 2-component vector of float)
0:15          'coord' ( temp 2-component vector of float)
0:15          Convert uint to float ( temp 2-component vector of float)
0:15            vector swizzle ( temp 2-component vector of uint)
0:15              threadId: direct index for structure ( temp 2-component vector of uint)
0:15                'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:15                Constant:
0:15                  1 (const int)
0:15              Sequence
0:15                Constant:
0:15                  0 (const int)
0:15                Constant:
0:15                  1 (const int)
0:16      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:16          'storeTemp' ( temp 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
0:16            Constant:
0:16              0 (const int)
0:16        imageStore ( temp void)
0:16          'outtx' (layout( rgba32f) uniform image2D)
0:16          Convert float to uint ( temp 2-component vector of uint)
0:16            'coord' ( temp 2-component vector of float)
0:16          'storeTemp' ( temp 4-component vector of float)
0:16        'storeTemp' ( temp 4-component vector of float)
0:18      move second child to first child ( temp 4-component vector of float)
0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18            Constant:
0:18              0 (const uint)
0:18          Convert float to uint ( temp uint)
0:18            direct index ( temp float)
0:18              'coord' ( temp 2-component vector of float)
0:18              Constant:
0:18                0 (const int)
0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:18            Constant:
0:18              0 (const uint)
0:18          Convert float to uint ( temp uint)
0:18            direct index ( temp float)
0:18              'coord' ( temp 2-component vector of float)
0:18              Constant:
0:18                1 (const int)
0:13  Function Definition: main( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp 3-component vector of uint)
0:?         'nThreadId' ( temp 3-component vector of uint)
0:?         'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
0:13      Function Call: @main(vu3; ( temp void)
0:?         'nThreadId' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'outtx' (layout( rgba32f) uniform image2D)
0:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)

// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 85

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 80
                              ExecutionMode 4 LocalSize 1 1 1
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "@main(vu3;"
                              Name 10  "nThreadId"
                              Name 16  "sb_t"
                              MemberName 16(sb_t) 0  "color"
                              MemberName 16(sb_t) 1  "threadId"
                              Name 18  "data"
                              Name 19  "sb_t"
                              MemberName 19(sb_t) 0  "color"
                              MemberName 19(sb_t) 1  "threadId"
                              Name 21  "csb"
                              MemberName 21(csb) 0  "@data"
                              Name 23  "csb"
                              Name 26  "csb@count"
                              MemberName 26(csb@count) 0  "@count"
                              Name 28  "csb@count"
                              Name 49  "coord"
                              Name 53  "storeTemp"
                              Name 58  "outtx"
                              Name 64  "rwsb"
                              MemberName 64(rwsb) 0  "@data"
                              Name 66  "rwsb"
                              Name 78  "nThreadId"
                              Name 80  "nThreadId"
                              Name 82  "param"
                              MemberDecorate 19(sb_t) 0 Offset 0
                              MemberDecorate 19(sb_t) 1 Offset 16
                              Decorate 20 ArrayStride 32
                              MemberDecorate 21(csb) 0 Offset 0
                              Decorate 21(csb) BufferBlock
                              Decorate 23(csb) DescriptorSet 0
                              Decorate 23(csb) Binding 1
                              MemberDecorate 26(csb@count) 0 Offset 0
                              Decorate 26(csb@count) BufferBlock
                              Decorate 28(csb@count) DescriptorSet 0
                              Decorate 28(csb@count) Binding 0
                              Decorate 58(outtx) DescriptorSet 0
                              Decorate 58(outtx) Binding 0
                              Decorate 63 ArrayStride 16
                              MemberDecorate 64(rwsb) 0 Offset 0
                              Decorate 64(rwsb) BufferBlock
                              Decorate 66(rwsb) DescriptorSet 0
                              Decorate 66(rwsb) Binding 0
                              Decorate 80(nThreadId) BuiltIn GlobalInvocationId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 3
               8:             TypePointer Function 7(ivec3)
               9:             TypeFunction 2 8(ptr)
              13:             TypeFloat 32
              14:             TypeVector 13(float) 4
              15:             TypeVector 6(int) 2
        16(sb_t):             TypeStruct 14(fvec4) 15(ivec2)
              17:             TypePointer Function 16(sb_t)
        19(sb_t):             TypeStruct 14(fvec4) 15(ivec2)
              20:             TypeRuntimeArray 19(sb_t)
         21(csb):             TypeStruct 20
              22:             TypePointer Uniform 21(csb)
         23(csb):     22(ptr) Variable Uniform
              24:             TypeInt 32 1
              25:     24(int) Constant 0
   26(csb@count):             TypeStruct 6(int)
              27:             TypePointer Uniform 26(csb@count)
   28(csb@count):     27(ptr) Variable Uniform
              29:             TypePointer Uniform 6(int)
              31:      6(int) Constant 4294967295
              32:      6(int) Constant 1
              33:      6(int) Constant 0
              35:     24(int) Constant 4294967295
              37:             TypePointer Uniform 19(sb_t)
              41:             TypePointer Function 14(fvec4)
              44:     24(int) Constant 1
              45:             TypePointer Function 15(ivec2)
              47:             TypeVector 13(float) 2
              48:             TypePointer Function 47(fvec2)
              56:             TypeImage 13(float) 2D nonsampled format:Rgba32f
              57:             TypePointer UniformConstant 56
       58(outtx):     57(ptr) Variable UniformConstant
              63:             TypeRuntimeArray 14(fvec4)
        64(rwsb):             TypeStruct 63
              65:             TypePointer Uniform 64(rwsb)
        66(rwsb):     65(ptr) Variable Uniform
              67:             TypePointer Function 13(float)
              74:             TypePointer Uniform 14(fvec4)
              79:             TypePointer Input 7(ivec3)
   80(nThreadId):     79(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
   78(nThreadId):      8(ptr) Variable Function
       82(param):      8(ptr) Variable Function
              81:    7(ivec3) Load 80(nThreadId)
                              Store 78(nThreadId) 81
              83:    7(ivec3) Load 78(nThreadId)
                              Store 82(param) 83
              84:           2 FunctionCall 11(@main(vu3;) 82(param)
                              Return
                              FunctionEnd
  11(@main(vu3;):           2 Function None 9
   10(nThreadId):      8(ptr) FunctionParameter
              12:             Label
        18(data):     17(ptr) Variable Function
       49(coord):     48(ptr) Variable Function
   53(storeTemp):     41(ptr) Variable Function
              30:     29(ptr) AccessChain 28(csb@count) 25
              34:      6(int) AtomicIAdd 30 32 33 31
              36:      6(int) IAdd 34 35
              38:     37(ptr) AccessChain 23(csb) 25 36
              39:    19(sb_t) Load 38
              40:   14(fvec4) CompositeExtract 39 0
              42:     41(ptr) AccessChain 18(data) 25
                              Store 42 40
              43:   15(ivec2) CompositeExtract 39 1
              46:     45(ptr) AccessChain 18(data) 44
                              Store 46 43
              50:     45(ptr) AccessChain 18(data) 44
              51:   15(ivec2) Load 50
              52:   47(fvec2) ConvertUToF 51
                              Store 49(coord) 52
              54:     41(ptr) AccessChain 18(data) 25
              55:   14(fvec4) Load 54
                              Store 53(storeTemp) 55
              59:          56 Load 58(outtx)
              60:   47(fvec2) Load 49(coord)
              61:   15(ivec2) ConvertFToU 60
              62:   14(fvec4) Load 53(storeTemp)
                              ImageWrite 59 61 62
              68:     67(ptr) AccessChain 49(coord) 33
              69:   13(float) Load 68
              70:      6(int) ConvertFToU 69
              71:     67(ptr) AccessChain 49(coord) 32
              72:   13(float) Load 71
              73:      6(int) ConvertFToU 72
              75:     74(ptr) AccessChain 66(rwsb) 25 73
              76:   14(fvec4) Load 75
              77:     74(ptr) AccessChain 66(rwsb) 25 70
                              Store 77 76
                              Return
                              FunctionEnd