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

                              Capability ClipDistance
                              Capability CullDistance
                              Capability FragmentShadingRateKHR
                              Capability DrawParameters
                              Capability MultiView
                              Capability MeshShadingEXT
                              Extension  "SPV_EXT_mesh_shader"
                              Extension  "SPV_KHR_fragment_shading_rate"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshEXT 4  "main" 13 19 24 41 93 135 153 156
                              ExecutionMode 4 LocalSize 32 1 1
                              ExecutionMode 4 OutputVertices 81
                              ExecutionMode 4 OutputPrimitivesNV 32
                              ExecutionMode 4 OutputTrianglesNV
                              Source GLSL 460
                              SourceExtension  "GL_ARB_shader_draw_parameters"
                              SourceExtension  "GL_EXT_mesh_shader"
                              SourceExtension  "GL_EXT_multiview"
                              Name 4  "main"
                              Name 6  "testAdditionalBuiltins("
                              Name 10  "iid"
                              Name 13  "gl_LocalInvocationID"
                              Name 18  "gid"
                              Name 19  "gl_WorkGroupID"
                              Name 23  "numWorkGrous"
                              Name 24  "gl_NumWorkGroups"
                              Name 26  "vertexCount"
                              Name 28  "primitiveCount"
                              Name 38  "gl_MeshPerVertexEXT"
                              MemberName 38(gl_MeshPerVertexEXT) 0  "gl_Position"
                              MemberName 38(gl_MeshPerVertexEXT) 1  "gl_PointSize"
                              MemberName 38(gl_MeshPerVertexEXT) 2  "gl_ClipDistance"
                              MemberName 38(gl_MeshPerVertexEXT) 3  "gl_CullDistance"
                              Name 41  "gl_MeshVerticesEXT"
                              Name 90  "gl_MeshPerPrimitiveEXT"
                              MemberName 90(gl_MeshPerPrimitiveEXT) 0  "gl_PrimitiveID"
                              MemberName 90(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
                              MemberName 90(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
                              MemberName 90(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
                              MemberName 90(gl_MeshPerPrimitiveEXT) 4  "gl_PrimitiveShadingRateEXT"
                              Name 93  "gl_MeshPrimitivesEXT"
                              Name 135  "gl_PrimitiveTriangleIndicesEXT"
                              Name 151  "id"
                              Name 153  "gl_DrawIDARB"
                              Name 155  "viewIdx"
                              Name 156  "gl_ViewIndex"
                              Decorate 13(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
                              Decorate 24(gl_NumWorkGroups) BuiltIn NumWorkgroups
                              MemberDecorate 38(gl_MeshPerVertexEXT) 0 BuiltIn Position
                              MemberDecorate 38(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
                              MemberDecorate 38(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
                              MemberDecorate 38(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
                              Decorate 38(gl_MeshPerVertexEXT) Block
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
                              Decorate 90(gl_MeshPerPrimitiveEXT) Block
                              Decorate 135(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
                              Decorate 153(gl_DrawIDARB) BuiltIn DrawIndex
                              Decorate 156(gl_ViewIndex) BuiltIn ViewIndex
                              Decorate 158 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeInt 32 0
               9:             TypePointer Function 8(int)
              11:             TypeVector 8(int) 3
              12:             TypePointer Input 11(ivec3)
13(gl_LocalInvocationID):     12(ptr) Variable Input
              14:      8(int) Constant 0
              15:             TypePointer Input 8(int)
19(gl_WorkGroupID):     12(ptr) Variable Input
              22:             TypePointer Function 11(ivec3)
24(gl_NumWorkGroups):     12(ptr) Variable Input
              27:      8(int) Constant 81
              29:      8(int) Constant 32
              32:             TypeFloat 32
              33:             TypeVector 32(float) 4
              34:      8(int) Constant 4
              35:             TypeArray 32(float) 34
              36:      8(int) Constant 3
              37:             TypeArray 32(float) 36
38(gl_MeshPerVertexEXT):             TypeStruct 33(fvec4) 32(float) 35 37
              39:             TypeArray 38(gl_MeshPerVertexEXT) 27
              40:             TypePointer Output 39
41(gl_MeshVerticesEXT):     40(ptr) Variable Output
              43:             TypeInt 32 1
              44:     43(int) Constant 0
              45:   32(float) Constant 1065353216
              46:   33(fvec4) ConstantComposite 45 45 45 45
              47:             TypePointer Output 33(fvec4)
              50:     43(int) Constant 1
              51:   32(float) Constant 1073741824
              52:             TypePointer Output 32(float)
              55:     43(int) Constant 2
              56:     43(int) Constant 3
              57:   32(float) Constant 1077936128
              60:   32(float) Constant 1082130432
              62:      8(int) Constant 1
              63:      8(int) Constant 264
              64:      8(int) Constant 2
              89:             TypeBool
90(gl_MeshPerPrimitiveEXT):             TypeStruct 43(int) 43(int) 43(int) 89(bool) 43(int)
              91:             TypeArray 90(gl_MeshPerPrimitiveEXT) 29
              92:             TypePointer Output 91
93(gl_MeshPrimitivesEXT):     92(ptr) Variable Output
              95:     43(int) Constant 6
              96:             TypePointer Output 43(int)
              99:     43(int) Constant 7
             102:     43(int) Constant 8
             105:    89(bool) ConstantFalse
             106:             TypePointer Output 89(bool)
             132:      8(int) Constant 96
             133:             TypeArray 11(ivec3) 132
             134:             TypePointer Output 133
135(gl_PrimitiveTriangleIndicesEXT):    134(ptr) Variable Output
             136:      8(int) Constant 257
             137:   11(ivec3) ConstantComposite 136 136 136
             138:             TypePointer Output 11(ivec3)
             142:   11(ivec3) ConstantComposite 64 64 64
             150:             TypePointer Function 43(int)
             152:             TypePointer Input 43(int)
153(gl_DrawIDARB):    152(ptr) Variable Input
156(gl_ViewIndex):    152(ptr) Variable Input
             158:   11(ivec3) ConstantComposite 29 62 62
         4(main):           2 Function None 3
               5:             Label
         10(iid):      9(ptr) Variable Function
         18(gid):      9(ptr) Variable Function
23(numWorkGrous):     22(ptr) Variable Function
 26(vertexCount):      9(ptr) Variable Function
28(primitiveCount):      9(ptr) Variable Function
              16:     15(ptr) AccessChain 13(gl_LocalInvocationID) 14
              17:      8(int) Load 16
                              Store 10(iid) 17
              20:     15(ptr) AccessChain 19(gl_WorkGroupID) 14
              21:      8(int) Load 20
                              Store 18(gid) 21
              25:   11(ivec3) Load 24(gl_NumWorkGroups)
                              Store 23(numWorkGrous) 25
                              Store 26(vertexCount) 27
                              Store 28(primitiveCount) 29
              30:      8(int) Load 26(vertexCount)
              31:      8(int) Load 28(primitiveCount)
                              SetMeshOutputsEXT 30 31
              42:      8(int) Load 10(iid)
              48:     47(ptr) AccessChain 41(gl_MeshVerticesEXT) 42 44
                              Store 48 46
              49:      8(int) Load 10(iid)
              53:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 49 50
                              Store 53 51
              54:      8(int) Load 10(iid)
              58:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 54 55 56
                              Store 58 57
              59:      8(int) Load 10(iid)
              61:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 59 56 55
                              Store 61 60
                              MemoryBarrier 62 63
                              ControlBarrier 64 64 63
              65:      8(int) Load 10(iid)
              66:      8(int) IAdd 65 62
              67:      8(int) Load 10(iid)
              68:     47(ptr) AccessChain 41(gl_MeshVerticesEXT) 67 44
              69:   33(fvec4) Load 68
              70:     47(ptr) AccessChain 41(gl_MeshVerticesEXT) 66 44
                              Store 70 69
              71:      8(int) Load 10(iid)
              72:      8(int) IAdd 71 62
              73:      8(int) Load 10(iid)
              74:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 73 50
              75:   32(float) Load 74
              76:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 72 50
                              Store 76 75
              77:      8(int) Load 10(iid)
              78:      8(int) IAdd 77 62
              79:      8(int) Load 10(iid)
              80:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 79 55 56
              81:   32(float) Load 80
              82:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 78 55 56
                              Store 82 81
              83:      8(int) Load 10(iid)
              84:      8(int) IAdd 83 62
              85:      8(int) Load 10(iid)
              86:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 85 56 55
              87:   32(float) Load 86
              88:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 84 56 55
                              Store 88 87
                              MemoryBarrier 62 63
                              ControlBarrier 64 64 63
              94:      8(int) Load 10(iid)
              97:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 94 44
                              Store 97 95
              98:      8(int) Load 10(iid)
             100:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 98 50
                              Store 100 99
             101:      8(int) Load 10(iid)
             103:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 101 55
                              Store 103 102
             104:      8(int) Load 10(iid)
             107:    106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 104 56
                              Store 107 105
                              MemoryBarrier 62 63
                              ControlBarrier 64 64 63
             108:      8(int) Load 10(iid)
             109:      8(int) IAdd 108 62
             110:      8(int) Load 10(iid)
             111:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 110 44
             112:     43(int) Load 111
             113:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 109 44
                              Store 113 112
             114:      8(int) Load 10(iid)
             115:      8(int) IAdd 114 62
             116:      8(int) Load 10(iid)
             117:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 116 50
             118:     43(int) Load 117
             119:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 115 50
                              Store 119 118
             120:      8(int) Load 10(iid)
             121:      8(int) IAdd 120 62
             122:      8(int) Load 10(iid)
             123:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 122 55
             124:     43(int) Load 123
             125:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 121 55
                              Store 125 124
             126:      8(int) Load 10(iid)
             127:      8(int) IAdd 126 62
             128:      8(int) Load 10(iid)
             129:    106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 128 56
             130:    89(bool) Load 129
             131:    106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 127 56
                              Store 131 130
                              MemoryBarrier 62 63
                              ControlBarrier 64 64 63
             139:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 44
                              Store 139 137
             140:      8(int) Load 28(primitiveCount)
             141:      8(int) ISub 140 62
             143:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 141
                              Store 143 142
             144:      8(int) Load 18(gid)
             145:      8(int) Load 18(gid)
             146:      8(int) ISub 145 62
             147:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 146
             148:   11(ivec3) Load 147
             149:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 144
                              Store 149 148
                              MemoryBarrier 62 63
                              ControlBarrier 64 64 63
                              Return
                              FunctionEnd
6(testAdditionalBuiltins():           2 Function None 3
               7:             Label
         151(id):    150(ptr) Variable Function
    155(viewIdx):    150(ptr) Variable Function
             154:     43(int) Load 153(gl_DrawIDARB)
                              Store 151(id) 154
             157:     43(int) Load 156(gl_ViewIndex)
                              Store 155(viewIdx) 157
                              Return
                              FunctionEnd
