hlsl.basic.comp
Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:4  Function Definition: main( (temp void)
0:4    Function Parameters: 
0:?     Sequence
0:5      dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID)
0:5        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
0:5        Constant:
0:5          0 (const uint)
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})


Linked compute stage:


Shader version: 450
local_size = (1, 1, 1)
0:? Sequence
0:4  Function Definition: main( (temp void)
0:4    Function Parameters: 
0:?     Sequence
0:5      dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID)
0:5        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
0:5        Constant:
0:5          0 (const uint)
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 1 1 1
                              Name 4  "main"
                              Name 7  "$Global"
                              MemberName 7($Global) 0  "dti"
                              Name 9  ""
                              MemberDecorate 7($Global) 0 Offset 0
                              MemberDecorate 7($Global) 0 BuiltIn LocalInvocationId
                              Decorate 7($Global) Block
                              Decorate 9 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
      7($Global):             TypeStruct 6(int)
               8:             TypePointer Uniform 7($Global)
               9:      8(ptr) Variable Uniform
              10:      6(int) Constant 0
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
