spv.meshShaderSharedMem.mesh
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 77

                              Capability StorageImageWriteWithoutFormat
                              Capability MeshShadingNV
                              Extension  "SPV_NV_mesh_shader"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshNV 4  "main" 11 17
                              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 16  "gid"
                              Name 17  "gl_WorkGroupID"
                              Name 20  "i"
                              Name 34  "mem"
                              Name 37  "block0"
                              MemberName 37(block0) 0  "uni_value"
                              Name 39  ""
                              Name 55  "uni_image"
                              Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
                              MemberDecorate 37(block0) 0 Offset 0
                              Decorate 37(block0) Block
                              Decorate 39 DescriptorSet 0
                              Decorate 55(uni_image) DescriptorSet 0
                              Decorate 55(uni_image) NonReadable
                              Decorate 76 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)
17(gl_WorkGroupID):     10(ptr) Variable Input
              27:      6(int) Constant 10
              28:             TypeBool
              30:             TypeFloat 32
              31:             TypeVector 30(float) 4
              32:             TypeArray 31(fvec4) 27
              33:             TypePointer Workgroup 32
         34(mem):     33(ptr) Variable Workgroup
      37(block0):             TypeStruct 6(int)
              38:             TypePointer Uniform 37(block0)
              39:     38(ptr) Variable Uniform
              40:             TypeInt 32 1
              41:     40(int) Constant 0
              42:             TypePointer Uniform 6(int)
              48:             TypePointer Workgroup 31(fvec4)
              51:     40(int) Constant 1
              53:             TypeImage 30(float) 2D nonsampled format:Unknown
              54:             TypePointer UniformConstant 53
   55(uni_image):     54(ptr) Variable UniformConstant
              59:             TypeVector 40(int) 2
              69:      6(int) Constant 1
              73:      6(int) Constant 264
              74:      6(int) Constant 2
              75:      6(int) Constant 32
              76:    9(ivec3) ConstantComposite 75 69 69
         4(main):           2 Function None 3
               5:             Label
          8(iid):      7(ptr) Variable Function
         16(gid):      7(ptr) Variable Function
           20(i):      7(ptr) Variable Function
              14:     13(ptr) AccessChain 11(gl_LocalInvocationID) 12
              15:      6(int) Load 14
                              Store 8(iid) 15
              18:     13(ptr) AccessChain 17(gl_WorkGroupID) 12
              19:      6(int) Load 18
                              Store 16(gid) 19
                              Store 20(i) 12
                              Branch 21
              21:             Label
                              LoopMerge 23 24 None
                              Branch 25
              25:             Label
              26:      6(int) Load 20(i)
              29:    28(bool) ULessThan 26 27
                              BranchConditional 29 22 23
              22:               Label
              35:      6(int)   Load 20(i)
              36:      6(int)   Load 20(i)
              43:     42(ptr)   AccessChain 39 41
              44:      6(int)   Load 43
              45:      6(int)   IAdd 36 44
              46:   30(float)   ConvertUToF 45
              47:   31(fvec4)   CompositeConstruct 46 46 46 46
              49:     48(ptr)   AccessChain 34(mem) 35
                                Store 49 47
                                Branch 24
              24:               Label
              50:      6(int)   Load 20(i)
              52:      6(int)   IAdd 50 51
                                Store 20(i) 52
                                Branch 21
              23:             Label
              56:          53 Load 55(uni_image)
              57:      6(int) Load 8(iid)
              58:     40(int) Bitcast 57
              60:   59(ivec2) CompositeConstruct 58 58
              61:      6(int) Load 16(gid)
              62:     48(ptr) AccessChain 34(mem) 61
              63:   31(fvec4) Load 62
                              ImageWrite 56 60 63
              64:          53 Load 55(uni_image)
              65:      6(int) Load 8(iid)
              66:     40(int) Bitcast 65
              67:   59(ivec2) CompositeConstruct 66 66
              68:      6(int) Load 16(gid)
              70:      6(int) IAdd 68 69
              71:     48(ptr) AccessChain 34(mem) 70
              72:   31(fvec4) Load 71
                              ImageWrite 64 67 72
                              MemoryBarrier 69 73
                              ControlBarrier 74 74 73
                              Return
                              FunctionEnd
