spv.meshShaderTaskMem.mesh
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 58

                              Capability MeshShadingNV
                              Extension  "SPV_NV_mesh_shader"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshNV 4  "main" 11 22 30
                              ExecutionMode 4 LocalSize 32 1 1
                              ExecutionMode 4 OutputVertices 81
                              ExecutionMode 4 OutputPrimitivesNV 32
                              ExecutionMode 4 OutputTrianglesNV
                              Source GLSL 450
                              SourceExtension  "GL_NV_mesh_shader"
                              Name 4  "main"
                              Name 8  "iid"
                              Name 11  "gl_LocalInvocationID"
                              Name 18  "outBlock"
                              MemberName 18(outBlock) 0  "gid5"
                              MemberName 18(outBlock) 1  "gid6"
                              Name 22  "myblk"
                              Name 28  "taskBlock"
                              MemberName 28(taskBlock) 0  "gid1"
                              MemberName 28(taskBlock) 1  "gid2"
                              Name 30  "mytask"
                              Name 36  "bufferBlock"
                              MemberName 36(bufferBlock) 0  "gid3"
                              MemberName 36(bufferBlock) 1  "gid4"
                              Name 38  "mybuf"
                              Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 18(outBlock) Block
                              Decorate 22(myblk) Location 0
                              Decorate 27 ArrayStride 4
                              MemberDecorate 28(taskBlock) 0 PerTaskNV
                              MemberDecorate 28(taskBlock) 0 Offset 0
                              MemberDecorate 28(taskBlock) 1 PerTaskNV
                              MemberDecorate 28(taskBlock) 1 Offset 16
                              Decorate 28(taskBlock) Block
                              Decorate 30(mytask) Location 0
                              Decorate 35 ArrayStride 4
                              MemberDecorate 36(bufferBlock) 0 Offset 0
                              MemberDecorate 36(bufferBlock) 1 Offset 16
                              Decorate 36(bufferBlock) BufferBlock
                              Decorate 38(mybuf) DescriptorSet 0
                              Decorate 38(mybuf) Binding 0
                              Decorate 57 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:             TypeVector 6(int) 3
              10:             TypePointer Input 9(ivec3)
11(gl_LocalInvocationID):     10(ptr) Variable Input
              12:      6(int) Constant 0
              13:             TypePointer Input 6(int)
              16:             TypeFloat 32
              17:             TypeVector 16(float) 4
    18(outBlock):             TypeStruct 16(float) 17(fvec4)
              19:      6(int) Constant 81
              20:             TypeArray 18(outBlock) 19
              21:             TypePointer Output 20
       22(myblk):     21(ptr) Variable Output
              24:             TypeInt 32 1
              25:     24(int) Constant 0
              26:      6(int) Constant 2
              27:             TypeArray 16(float) 26
   28(taskBlock):             TypeStruct 27 17(fvec4)
              29:             TypePointer Input 28(taskBlock)
      30(mytask):     29(ptr) Variable Input
              31:     24(int) Constant 1
              32:             TypePointer Input 16(float)
              35:             TypeArray 16(float) 26
 36(bufferBlock):             TypeStruct 35 17(fvec4)
              37:             TypePointer Uniform 36(bufferBlock)
       38(mybuf):     37(ptr) Variable Uniform
              39:             TypePointer Uniform 16(float)
              43:             TypePointer Output 16(float)
              46:             TypePointer Input 17(fvec4)
              49:             TypePointer Uniform 17(fvec4)
              53:             TypePointer Output 17(fvec4)
              55:      6(int) Constant 32
              56:      6(int) Constant 1
              57:    9(ivec3) ConstantComposite 55 56 56
         4(main):           2 Function None 3
               5:             Label
          8(iid):      7(ptr) Variable Function
              14:     13(ptr) AccessChain 11(gl_LocalInvocationID) 12
              15:      6(int) Load 14
                              Store 8(iid) 15
              23:      6(int) Load 8(iid)
              33:     32(ptr) AccessChain 30(mytask) 25 31
              34:   16(float) Load 33
              40:     39(ptr) AccessChain 38(mybuf) 25 31
              41:   16(float) Load 40
              42:   16(float) FAdd 34 41
              44:     43(ptr) AccessChain 22(myblk) 23 25
                              Store 44 42
              45:      6(int) Load 8(iid)
              47:     46(ptr) AccessChain 30(mytask) 31
              48:   17(fvec4) Load 47
              50:     49(ptr) AccessChain 38(mybuf) 31
              51:   17(fvec4) Load 50
              52:   17(fvec4) FAdd 48 51
              54:     53(ptr) AccessChain 22(myblk) 45 31
                              Store 54 52
                              Return
                              FunctionEnd
