hlsl.wavequery.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 unsized 1-element array of uint)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6            Constant:
0:6              0 (const uint)
0:6          '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
0:6        Test condition and select ( temp uint): no shortcircuit
0:6          Condition
0:6          subgroupElect ( temp bool)
0:6          true case
0:6          '@gl_SubgroupSize' ( in uint SubgroupSize)
0:6          false case
0:6          Constant:
0:6            0 (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 unsized 1-element 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 unsized 1-element array of uint)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:6            Constant:
0:6              0 (const uint)
0:6          '@gl_SubgroupInvocationID' ( in uint SubgroupInvocationID)
0:6        Test condition and select ( temp uint): no shortcircuit
0:6          Condition
0:6          subgroupElect ( temp bool)
0:6          true case
0:6          '@gl_SubgroupSize' ( in uint SubgroupSize)
0:6          false case
0:6          Constant:
0:6            0 (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 unsized 1-element array of uint @data})

// Module Version 10300
// Generated by (magic number): 8000b
// Id's are bound by 28

                              Capability Shader
                              Capability GroupNonUniform
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "CSMain" 16 21
                              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 16  "@gl_SubgroupInvocationID"
                              Name 21  "@gl_SubgroupSize"
                              Decorate 9 ArrayStride 4
                              MemberDecorate 10(data) 0 Offset 0
                              Decorate 10(data) Block
                              Decorate 12(data) DescriptorSet 0
                              Decorate 12(data) Binding 0
                              Decorate 16(@gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 21(@gl_SubgroupSize) BuiltIn SubgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeInt 32 0
               9:             TypeRuntimeArray 8(int)
        10(data):             TypeStruct 9
              11:             TypePointer StorageBuffer 10(data)
        12(data):     11(ptr) Variable StorageBuffer
              13:             TypeInt 32 1
              14:     13(int) Constant 0
              15:             TypePointer Input 8(int)
16(@gl_SubgroupInvocationID):     15(ptr) Variable Input
              18:             TypeBool
              19:      8(int) Constant 3
21(@gl_SubgroupSize):     15(ptr) Variable Input
              23:      8(int) Constant 0
              25:             TypePointer StorageBuffer 8(int)
       4(CSMain):           2 Function None 3
               5:             Label
              27:           2 FunctionCall 6(@CSMain()
                              Return
                              FunctionEnd
     6(@CSMain():           2 Function None 3
               7:             Label
              17:      8(int) Load 16(@gl_SubgroupInvocationID)
              20:    18(bool) GroupNonUniformElect 19
              22:      8(int) Load 21(@gl_SubgroupSize)
              24:      8(int) Select 20 22 23
              26:     25(ptr) AccessChain 12(data) 14 17
                              Store 26 24
                              Return
                              FunctionEnd
