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 implicitly-sized 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 implicitly-sized 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 int)
0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:14                  Constant:
0:14                    0 (const int)
0:14                Constant:
0:14                  -1 (const int)
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 implicitly-sized array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized 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 implicitly-sized array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized 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 implicitly-sized 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 int @count})
0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized 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 implicitly-sized 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 implicitly-sized 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 int)
0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:14                  Constant:
0:14                    0 (const int)
0:14                Constant:
0:14                  -1 (const int)
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 implicitly-sized array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized 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 implicitly-sized array of 4-component vector of float)
0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized 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 implicitly-sized 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 int @count})
0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)

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

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