spv.meshShaderPerViewUserDefined.mesh
Validation failed
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 108

                              Capability MeshShadingNV
                              Extension  "SPV_NV_mesh_shader"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshNV 4  "main" 11 20 21 35 67 92 95 96 97 102 105 106 107
                              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  "viewID"
                              Name 20  "gl_MeshViewIndicesNV"
                              Name 21  "gl_MeshViewCountNV"
                              Name 31  "block"
                              MemberName 31(block) 0  "color1"
                              MemberName 31(block) 1  "color2"
                              MemberName 31(block) 2  "color3"
                              MemberName 31(block) 3  "color4"
                              Name 35  "b"
                              Name 64  "perviewBlock"
                              MemberName 64(perviewBlock) 0  "color5"
                              MemberName 64(perviewBlock) 1  "color6"
                              MemberName 64(perviewBlock) 2  "color7"
                              MemberName 64(perviewBlock) 3  "color8"
                              Name 67  "b2"
                              Name 92  "nonBlk1"
                              Name 95  "nonBlk2"
                              Name 96  "nonBlk3"
                              Name 97  "nonBlk4"
                              Name 102  "nonBlkArr1"
                              Name 105  "nonBlkArr2"
                              Name 106  "nonBlkArr3"
                              Name 107  "nonBlkArr4"
                              Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 20(gl_MeshViewIndicesNV) BuiltIn MeshViewIndicesNV
                              Decorate 21(gl_MeshViewCountNV) BuiltIn MeshViewCountNV
                              MemberDecorate 31(block) 0 PerPrimitiveNV
                              MemberDecorate 31(block) 0 PerViewNV
                              MemberDecorate 31(block) 1 PerPrimitiveNV
                              MemberDecorate 31(block) 2 PerViewNV
                              Decorate 31(block) Block
                              Decorate 35(b) Location 0
                              MemberDecorate 64(perviewBlock) 0 PerPrimitiveNV
                              MemberDecorate 64(perviewBlock) 0 PerViewNV
                              MemberDecorate 64(perviewBlock) 1 PerPrimitiveNV
                              MemberDecorate 64(perviewBlock) 1 PerViewNV
                              MemberDecorate 64(perviewBlock) 2 PerViewNV
                              MemberDecorate 64(perviewBlock) 3 PerViewNV
                              Decorate 64(perviewBlock) Block
                              Decorate 67(b2) Location 10
                              Decorate 89 BuiltIn WorkgroupSize
                              Decorate 92(nonBlk1) PerViewNV
                              Decorate 92(nonBlk1) Location 18
                              Decorate 95(nonBlk2) PerPrimitiveNV
                              Decorate 95(nonBlk2) PerViewNV
                              Decorate 95(nonBlk2) Location 19
                              Decorate 96(nonBlk3) PerViewNV
                              Decorate 96(nonBlk3) Location 20
                              Decorate 97(nonBlk4) PerPrimitiveNV
                              Decorate 97(nonBlk4) PerViewNV
                              Decorate 97(nonBlk4) Location 21
                              Decorate 102(nonBlkArr1) PerViewNV
                              Decorate 102(nonBlkArr1) Location 22
                              Decorate 105(nonBlkArr2) PerPrimitiveNV
                              Decorate 105(nonBlkArr2) PerViewNV
                              Decorate 105(nonBlkArr2) Location 24
                              Decorate 106(nonBlkArr3) PerViewNV
                              Decorate 106(nonBlkArr3) Location 26
                              Decorate 107(nonBlkArr4) PerPrimitiveNV
                              Decorate 107(nonBlkArr4) PerViewNV
                              Decorate 107(nonBlkArr4) Location 28
               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:      6(int) Constant 4
              18:             TypeArray 6(int) 17
              19:             TypePointer Input 18
20(gl_MeshViewIndicesNV):     19(ptr) Variable Input
21(gl_MeshViewCountNV):     13(ptr) Variable Input
              26:             TypeFloat 32
              27:             TypeVector 26(float) 4
              28:      6(int) Constant 3
              29:             TypeArray 27(fvec4) 28
              30:             TypeArray 29 17
       31(block):             TypeStruct 30 29 30 27(fvec4)
              32:      6(int) Constant 81
              33:             TypeArray 31(block) 32
              34:             TypePointer Output 33
           35(b):     34(ptr) Variable Output
              37:             TypeInt 32 1
              38:     37(int) Constant 0
              40:     37(int) Constant 2
              41:   26(float) Constant 1065353216
              42:   27(fvec4) ConstantComposite 41 41 41 41
              43:             TypePointer Output 27(fvec4)
              46:     37(int) Constant 1
              47:   26(float) Constant 1073741824
              48:   27(fvec4) ConstantComposite 47 47 47 47
              52:   26(float) Constant 1077936128
              53:   27(fvec4) ConstantComposite 52 52 52 52
              56:     37(int) Constant 3
              57:   26(float) Constant 1082130432
              58:   27(fvec4) ConstantComposite 57 57 57 57
              60:      6(int) Constant 1
              61:      6(int) Constant 264
              62:      6(int) Constant 2
              63:             TypeArray 27(fvec4) 17
64(perviewBlock):             TypeStruct 63 30 30 63
              65:             TypeArray 64(perviewBlock) 32
              66:             TypePointer Output 65
          67(b2):     66(ptr) Variable Output
              70:   26(float) Constant 1084227584
              71:   27(fvec4) ConstantComposite 70 70 70 70
              75:   26(float) Constant 1086324736
              76:   27(fvec4) ConstantComposite 75 75 75 75
              80:   26(float) Constant 1088421888
              81:   27(fvec4) ConstantComposite 80 80 80 80
              85:   26(float) Constant 1090519040
              86:   27(fvec4) ConstantComposite 85 85 85 85
              88:      6(int) Constant 32
              89:    9(ivec3) ConstantComposite 88 60 60
              90:             TypeArray 63 32
              91:             TypePointer Output 90
     92(nonBlk1):     91(ptr) Variable Output
              93:             TypeArray 63 88
              94:             TypePointer Output 93
     95(nonBlk2):     94(ptr) Variable Output
     96(nonBlk3):     91(ptr) Variable Output
     97(nonBlk4):     94(ptr) Variable Output
              98:             TypeArray 27(fvec4) 62
              99:             TypeArray 98 17
             100:             TypeArray 99 32
             101:             TypePointer Output 100
 102(nonBlkArr1):    101(ptr) Variable Output
             103:             TypeArray 99 88
             104:             TypePointer Output 103
 105(nonBlkArr2):    104(ptr) Variable Output
 106(nonBlkArr3):    101(ptr) Variable Output
 107(nonBlkArr4):    104(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
          8(iid):      7(ptr) Variable Function
      16(viewID):      7(ptr) Variable Function
              14:     13(ptr) AccessChain 11(gl_LocalInvocationID) 12
              15:      6(int) Load 14
                              Store 8(iid) 15
              22:      6(int) Load 21(gl_MeshViewCountNV)
              23:      6(int) UMod 22 17
              24:     13(ptr) AccessChain 20(gl_MeshViewIndicesNV) 23
              25:      6(int) Load 24
                              Store 16(viewID) 25
              36:      6(int) Load 8(iid)
              39:      6(int) Load 16(viewID)
              44:     43(ptr) AccessChain 35(b) 36 38 39 40
                              Store 44 42
              45:      6(int) Load 8(iid)
              49:     43(ptr) AccessChain 35(b) 45 46 46
                              Store 49 48
              50:      6(int) Load 8(iid)
              51:      6(int) Load 16(viewID)
              54:     43(ptr) AccessChain 35(b) 50 40 51 40
                              Store 54 53
              55:      6(int) Load 8(iid)
              59:     43(ptr) AccessChain 35(b) 55 56
                              Store 59 58
                              MemoryBarrier 60 61
                              ControlBarrier 62 62 61
              68:      6(int) Load 8(iid)
              69:      6(int) Load 16(viewID)
              72:     43(ptr) AccessChain 67(b2) 68 38 69
                              Store 72 71
              73:      6(int) Load 8(iid)
              74:      6(int) Load 16(viewID)
              77:     43(ptr) AccessChain 67(b2) 73 46 74 46
                              Store 77 76
              78:      6(int) Load 8(iid)
              79:      6(int) Load 16(viewID)
              82:     43(ptr) AccessChain 67(b2) 78 40 79 40
                              Store 82 81
              83:      6(int) Load 8(iid)
              84:      6(int) Load 16(viewID)
              87:     43(ptr) AccessChain 67(b2) 83 56 84
                              Store 87 86
                              MemoryBarrier 60 61
                              ControlBarrier 62 62 61
                              Return
                              FunctionEnd
