hlsl.numthreads.comp
Shader version: 500
local_size = (1, 4, 8)
0:? Sequence
0:4  Function Definition: main(vu3; ( temp void)
0:4    Function Parameters: 
0:4      'tid' ( in 3-component vector of uint)
0:9  Function Definition: @main_aux2(vu3; ( temp void)
0:9    Function Parameters: 
0:9      'tid' ( in 3-component vector of uint)
0:9  Function Definition: main_aux2( ( temp void)
0:9    Function Parameters: 
0:?     Sequence
0:9      move second child to first child ( temp 3-component vector of uint)
0:?         'tid' ( temp 3-component vector of uint)
0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
0:9      Function Call: @main_aux2(vu3; ( temp void)
0:?         'tid' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)


Linked compute stage:


Shader version: 500
local_size = (1, 4, 8)
0:? Sequence
0:4  Function Definition: main(vu3; ( temp void)
0:4    Function Parameters: 
0:4      'tid' ( in 3-component vector of uint)
0:9  Function Definition: @main_aux2(vu3; ( temp void)
0:9    Function Parameters: 
0:9      'tid' ( in 3-component vector of uint)
0:9  Function Definition: main_aux2( ( temp void)
0:9    Function Parameters: 
0:?     Sequence
0:9      move second child to first child ( temp 3-component vector of uint)
0:?         'tid' ( temp 3-component vector of uint)
0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
0:9      Function Call: @main_aux2(vu3; ( temp void)
0:?         'tid' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main_aux2" 18
                              ExecutionMode 4 LocalSize 1 4 8
                              Source HLSL 500
                              Name 4  "main_aux2"
                              Name 11  "main(vu3;"
                              Name 10  "tid"
                              Name 14  "@main_aux2(vu3;"
                              Name 13  "tid"
                              Name 16  "tid"
                              Name 18  "tid"
                              Name 20  "param"
                              Decorate 18(tid) 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)
              17:             TypePointer Input 7(ivec3)
         18(tid):     17(ptr) Variable Input
    4(main_aux2):           2 Function None 3
               5:             Label
         16(tid):      8(ptr) Variable Function
       20(param):      8(ptr) Variable Function
              19:    7(ivec3) Load 18(tid)
                              Store 16(tid) 19
              21:    7(ivec3) Load 16(tid)
                              Store 20(param) 21
              22:           2 FunctionCall 14(@main_aux2(vu3;) 20(param)
                              Return
                              FunctionEnd
   11(main(vu3;):           2 Function None 9
         10(tid):      8(ptr) FunctionParameter
              12:             Label
                              Return
                              FunctionEnd
14(@main_aux2(vu3;):           2 Function None 9
         13(tid):      8(ptr) FunctionParameter
              15:             Label
                              Return
                              FunctionEnd
