hlsl.waveordered.comp
Shader version: 500
local_size = (32, 16, 1)
0:? Sequence
0:5  Function Definition: @CSMain( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:6      move second child to first child ( temp uint)
0:6        indirect index (layout( row_major std430) buffer uint)
0:6          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6            Constant:
0:6              0 (const uint)
0:6          add ( temp uint)
0:6            add ( temp uint)
0:6              component-wise multiply ( temp uint)
0:6                add ( temp uint)
0:6                  component-wise multiply ( temp uint)
0:6                    direct index ( temp uint)
0:6                      '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
0:6                      Constant:
0:6                        1 (const int)
0:6                    direct index ( temp uint)
0:6                      '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
0:6                      Constant:
0:6                        2 (const int)
0:6                  direct index ( temp uint)
0:6                    '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
0:6                    Constant:
0:6                      1 (const int)
0:6                component-wise multiply ( temp uint)
0:6                  '@gl_NumSubgroups' ( in uint unknown built-in variable)
0:6                  direct index ( temp uint)
0:6                    '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
0:6                    Constant:
0:6                      0 (const int)
0:6              direct index ( temp uint)
0:6                '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
0:6                Constant:
0:6                  0 (const int)
0:6            '@gl_SubgroupID' ( in uint unknown built-in variable)
0:6        Constant:
0:6          1 (const uint)
0:5  Function Definition: CSMain( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      Function Call: @CSMain( ( temp void)
0:?   Linker Objects
0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})


Linked compute stage:


Shader version: 500
local_size = (32, 16, 1)
0:? Sequence
0:5  Function Definition: @CSMain( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:6      move second child to first child ( temp uint)
0:6        indirect index (layout( row_major std430) buffer uint)
0:6          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:6            Constant:
0:6              0 (const uint)
0:6          add ( temp uint)
0:6            add ( temp uint)
0:6              component-wise multiply ( temp uint)
0:6                add ( temp uint)
0:6                  component-wise multiply ( temp uint)
0:6                    direct index ( temp uint)
0:6                      '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
0:6                      Constant:
0:6                        1 (const int)
0:6                    direct index ( temp uint)
0:6                      '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
0:6                      Constant:
0:6                        2 (const int)
0:6                  direct index ( temp uint)
0:6                    '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
0:6                    Constant:
0:6                      1 (const int)
0:6                component-wise multiply ( temp uint)
0:6                  '@gl_NumSubgroups' ( in uint unknown built-in variable)
0:6                  direct index ( temp uint)
0:6                    '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
0:6                    Constant:
0:6                      0 (const int)
0:6              direct index ( temp uint)
0:6                '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
0:6                Constant:
0:6                  0 (const int)
0:6            '@gl_SubgroupID' ( in uint unknown built-in variable)
0:6        Constant:
0:6          1 (const uint)
0:5  Function Definition: CSMain( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      Function Call: @CSMain( ( temp void)
0:?   Linker Objects
0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})

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

                              Capability Shader
                              Capability GroupNonUniform
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "CSMain" 17 22 30 40
                              ExecutionMode 4 LocalSize 32 16 1
                              Source HLSL 500
                              Name 4  "CSMain"
                              Name 6  "@CSMain("
                              Name 10  "data"
                              MemberName 10(data) 0  "@data"
                              Name 12  "data"
                              Name 17  "@gl_NumWorkGroups"
                              Name 22  "@gl_WorkGroupID"
                              Name 30  "@gl_NumSubgroups"
                              Name 40  "@gl_SubgroupID"
                              Decorate 9 ArrayStride 4
                              MemberDecorate 10(data) 0 Offset 0
                              Decorate 10(data) BufferBlock
                              Decorate 12(data) DescriptorSet 0
                              Decorate 17(@gl_NumWorkGroups) BuiltIn NumWorkgroups
                              Decorate 22(@gl_WorkGroupID) BuiltIn WorkgroupId
                              Decorate 30(@gl_NumSubgroups) BuiltIn NumSubgroups
                              Decorate 40(@gl_SubgroupID) BuiltIn SubgroupId
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeInt 32 0
               9:             TypeRuntimeArray 8(int)
        10(data):             TypeStruct 9
              11:             TypePointer Uniform 10(data)
        12(data):     11(ptr) Variable Uniform
              13:             TypeInt 32 1
              14:     13(int) Constant 0
              15:             TypeVector 8(int) 3
              16:             TypePointer Input 15(ivec3)
17(@gl_NumWorkGroups):     16(ptr) Variable Input
              18:      8(int) Constant 1
              19:             TypePointer Input 8(int)
22(@gl_WorkGroupID):     16(ptr) Variable Input
              23:      8(int) Constant 2
30(@gl_NumSubgroups):     19(ptr) Variable Input
              32:      8(int) Constant 0
40(@gl_SubgroupID):     19(ptr) Variable Input
              43:             TypePointer Uniform 8(int)
       4(CSMain):           2 Function None 3
               5:             Label
              45:           2 FunctionCall 6(@CSMain()
                              Return
                              FunctionEnd
     6(@CSMain():           2 Function None 3
               7:             Label
              20:     19(ptr) AccessChain 17(@gl_NumWorkGroups) 18
              21:      8(int) Load 20
              24:     19(ptr) AccessChain 22(@gl_WorkGroupID) 23
              25:      8(int) Load 24
              26:      8(int) IMul 21 25
              27:     19(ptr) AccessChain 22(@gl_WorkGroupID) 18
              28:      8(int) Load 27
              29:      8(int) IAdd 26 28
              31:      8(int) Load 30(@gl_NumSubgroups)
              33:     19(ptr) AccessChain 17(@gl_NumWorkGroups) 32
              34:      8(int) Load 33
              35:      8(int) IMul 31 34
              36:      8(int) IMul 29 35
              37:     19(ptr) AccessChain 22(@gl_WorkGroupID) 32
              38:      8(int) Load 37
              39:      8(int) IAdd 36 38
              41:      8(int) Load 40(@gl_SubgroupID)
              42:      8(int) IAdd 39 41
              44:     43(ptr) AccessChain 12(data) 14 42
                              Store 44 18
                              Return
                              FunctionEnd
