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

                              Capability MeshShadingEXT
                              Extension  "SPV_EXT_mesh_shader"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshEXT 4  "main" 11 22 30 38
                              ExecutionMode 4 LocalSize 32 1 1
                              ExecutionMode 4 OutputVertices 81
                              ExecutionMode 4 OutputPrimitivesNV 32
                              ExecutionMode 4 OutputTrianglesNV
                              Source GLSL 450
                              SourceExtension  "GL_EXT_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 35 ArrayStride 4
                              MemberDecorate 36(bufferBlock) 0 Offset 0
                              MemberDecorate 36(bufferBlock) 1 Offset 16
                              Decorate 36(bufferBlock) Block
                              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 TaskPayloadWorkgroupEXT 28(taskBlock)
      30(mytask):     29(ptr) Variable TaskPayloadWorkgroupEXT
              31:     24(int) Constant 1
              32:             TypePointer TaskPayloadWorkgroupEXT 16(float)
              35:             TypeArray 16(float) 26
 36(bufferBlock):             TypeStruct 35 17(fvec4)
              37:             TypePointer StorageBuffer 36(bufferBlock)
       38(mybuf):     37(ptr) Variable StorageBuffer
              39:             TypePointer StorageBuffer 16(float)
              43:             TypePointer Output 16(float)
              46:             TypePointer TaskPayloadWorkgroupEXT 17(fvec4)
              49:             TypePointer StorageBuffer 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
