spv.debuginfo.glsl.geom
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 274

                              Capability Geometry
                              Capability MultiViewport
                              Extension  "SPV_KHR_non_semantic_info"
               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
               3:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 14  "main" 64 98 121 130 134 168 208 217 236 250 256 260
                              ExecutionMode 14 Triangles
                              ExecutionMode 14 Invocations 2
                              ExecutionMode 14 OutputTriangleStrip
                              ExecutionMode 14 OutputVertices 3
               2:             String  "spv.debuginfo.glsl.geom"
               8:             String  "uint"
              16:             String  "main"
              19:             String  "// OpModuleProcessed auto-map-locations
// OpModuleProcessed auto-map-bindings
// OpModuleProcessed client vulkan100
// OpModuleProcessed target-env vulkan1.0
// OpModuleProcessed keep-uncalled
// OpModuleProcessed entry-point main
#line 1
/*
The MIT License (MIT)

Copyright (c) 2022 Sascha Willems

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

#version 450

#extension GL_ARB_viewport_array : enable

layout (triangles, invocations = 2) in;
layout (triangle_strip, max_vertices = 3) out;

layout (binding = 0) uniform UBO 
{
	mat4 projection[2];
	mat4 modelview[2];
	vec4 lightPos;
} ubo;

layout (location = 0) in vec3 inNormal[];
layout (location = 1) in vec3 inColor[];

layout (location = 0) out vec3 outNormal;
layout (location = 1) out vec3 outColor;
layout (location = 2) out vec3 outViewVec;
layout (location = 3) out vec3 outLightVec;

void main(void)
{	
	for(int i = 0; i < gl_in.length(); i++)
	{
		outNormal = mat3(ubo.modelview[gl_InvocationID]) * inNormal[i];
		outColor = inColor[i];

		vec4 pos = gl_in[i].gl_Position;
		vec4 worldPos = (ubo.modelview[gl_InvocationID] * pos);
		
		vec3 lPos = vec3(ubo.modelview[gl_InvocationID]  * ubo.lightPos);
		outLightVec = lPos - worldPos.xyz;
		outViewVec = -worldPos.xyz;	
	
		gl_Position = ubo.projection[gl_InvocationID] * worldPos;

		// Set the viewport index that the vertex will be emitted to
		gl_ViewportIndex = gl_InvocationID;
      gl_PrimitiveID = gl_PrimitiveIDIn;
		EmitVertex();
	}
	EndPrimitive();
}
"
              29:             String  "int"
              36:             String  "i"
              54:             String  "bool"
              58:             String  "float"
              66:             String  "outNormal"
              80:             String  "projection"
              83:             String  "modelview"
              86:             String  "lightPos"
              89:             String  "UBO"
              94:             String  "ubo"
             100:             String  "gl_InvocationID"
             123:             String  "inNormal"
             132:             String  "outColor"
             136:             String  "inColor"
             145:             String  "pos"
             153:             String  "gl_Position"
             156:             String  "gl_PointSize"
             159:             String  "gl_CullDistance"
             163:             String  "gl_PerVertex"
             170:             String  "gl_in"
             178:             String  "worldPos"
             191:             String  "lPos"
             210:             String  "outLightVec"
             219:             String  "outViewVec"
             238:             String  ""
             252:             String  "gl_ViewportIndex"
             258:             String  "gl_PrimitiveID"
             262:             String  "gl_PrimitiveIDIn"
                              SourceExtension  "GL_ARB_viewport_array"
                              Name 14  "main"
                              Name 34  "i"
                              Name 64  "outNormal"
                              Name 78  "UBO"
                              MemberName 78(UBO) 0  "projection"
                              MemberName 78(UBO) 1  "modelview"
                              MemberName 78(UBO) 2  "lightPos"
                              Name 92  "ubo"
                              Name 98  "gl_InvocationID"
                              Name 121  "inNormal"
                              Name 130  "outColor"
                              Name 134  "inColor"
                              Name 143  "pos"
                              Name 151  "gl_PerVertex"
                              MemberName 151(gl_PerVertex) 0  "gl_Position"
                              MemberName 151(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 151(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 151(gl_PerVertex) 3  "gl_CullDistance"
                              Name 168  "gl_in"
                              Name 176  "worldPos"
                              Name 189  "lPos"
                              Name 208  "outLightVec"
                              Name 217  "outViewVec"
                              Name 225  "gl_PerVertex"
                              MemberName 225(gl_PerVertex) 0  "gl_Position"
                              MemberName 225(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 225(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 225(gl_PerVertex) 3  "gl_CullDistance"
                              Name 236  ""
                              Name 250  "gl_ViewportIndex"
                              Name 256  "gl_PrimitiveID"
                              Name 260  "gl_PrimitiveIDIn"
                              Decorate 64(outNormal) Location 0
                              Decorate 74 ArrayStride 64
                              Decorate 76 ArrayStride 64
                              MemberDecorate 78(UBO) 0 ColMajor
                              MemberDecorate 78(UBO) 0 Offset 0
                              MemberDecorate 78(UBO) 0 MatrixStride 16
                              MemberDecorate 78(UBO) 1 ColMajor
                              MemberDecorate 78(UBO) 1 Offset 128
                              MemberDecorate 78(UBO) 1 MatrixStride 16
                              MemberDecorate 78(UBO) 2 Offset 256
                              Decorate 78(UBO) Block
                              Decorate 92(ubo) DescriptorSet 0
                              Decorate 92(ubo) Binding 0
                              Decorate 98(gl_InvocationID) BuiltIn InvocationId
                              Decorate 121(inNormal) Location 0
                              Decorate 130(outColor) Location 1
                              Decorate 134(inColor) Location 1
                              MemberDecorate 151(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 151(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 151(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 151(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 151(gl_PerVertex) Block
                              Decorate 208(outLightVec) Location 3
                              Decorate 217(outViewVec) Location 2
                              MemberDecorate 225(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 225(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 225(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 225(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 225(gl_PerVertex) Block
                              Decorate 250(gl_ViewportIndex) BuiltIn ViewportIndex
                              Decorate 256(gl_PrimitiveID) BuiltIn PrimitiveId
                              Decorate 260(gl_PrimitiveIDIn) BuiltIn PrimitiveId
               4:             TypeVoid
               5:             TypeFunction 4
               7:             TypeInt 32 0
              10:      7(int) Constant 32
              11:      7(int) Constant 6
              12:      7(int) Constant 0
               9:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
              13:      7(int) Constant 3
               6:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
              18:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 19
              20:      7(int) Constant 47
              22:      7(int) Constant 1
              23:      7(int) Constant 4
              24:      7(int) Constant 2
              21:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
              17:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
              28:             TypeInt 32 1
              30:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 23 12
              31:             TypePointer Function 28(int)
              32:      7(int) Constant 7
              33:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 32 12
              37:      7(int) Constant 49
              35:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 36 30 18 37 12 17 23
              39:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
              41:     28(int) Constant 0
              52:     28(int) Constant 3
              53:             TypeBool
              55:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 54 10 24 12
              57:             TypeFloat 32
              59:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 58 10 13 12
              60:             TypeVector 57(float) 3
              61:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 59 13
              62:             TypePointer Output 60(fvec3)
              63:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 13 12
   64(outNormal):     62(ptr) Variable Output
              67:      7(int) Constant 51
              68:      7(int) Constant 8
              65:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 66 61 18 67 12 21 66 64(outNormal) 68
              69:             TypeVector 57(float) 4
              70:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 59 23
              71:             TypeMatrix 69(fvec4) 4
              73:    53(bool) ConstantTrue
              72:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 70 23 73
              74:             TypeArray 71 24
              75:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 72 24
              76:             TypeArray 71 24
              77:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 72 24
         78(UBO):             TypeStruct 74 76 69(fvec4)
              81:      7(int) Constant 34
              79:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 80 75 18 81 32 12 12 13
              84:      7(int) Constant 35
              82:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 83 77 18 84 32 12 12 13
              87:      7(int) Constant 36
              85:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 86 70 18 87 32 12 12 13
              88:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 89 22 18 67 12 21 89 12 13 79 82 85
              90:             TypePointer Uniform 78(UBO)
              91:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 88 24 12
         92(ubo):     90(ptr) Variable Uniform
              93:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 94 88 18 67 12 21 94 92(ubo) 68
              95:     28(int) Constant 1
              96:             TypePointer Input 28(int)
              97:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 22 12
98(gl_InvocationID):     96(ptr) Variable Input
              99:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 100 30 18 67 12 21 100 98(gl_InvocationID) 68
             104:             TypePointer Uniform 71
             105:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 72 24 12
             108:             TypeMatrix 60(fvec3) 3
             109:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 61 13 73
             117:             TypeArray 60(fvec3) 13
             118:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 61 13
             119:             TypePointer Input 117
             120:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 118 22 12
   121(inNormal):    119(ptr) Variable Input
             122:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 123 118 18 67 12 21 123 121(inNormal) 68
             125:             TypePointer Input 60(fvec3)
             126:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 22 12
   130(outColor):     62(ptr) Variable Output
             133:      7(int) Constant 52
             131:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 132 61 18 133 12 21 132 130(outColor) 68
    134(inColor):    119(ptr) Variable Input
             135:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 136 118 18 133 12 21 136 134(inColor) 68
             141:             TypePointer Function 69(fvec4)
             142:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 32 12
             146:      7(int) Constant 54
             144:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 145 70 18 146 12 17 23
             149:             TypeArray 57(float) 22
             150:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 59 22
151(gl_PerVertex):             TypeStruct 69(fvec4) 57(float) 149 149
             154:      7(int) Constant 23
             152:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 153 70 18 24 154 12 12 13
             157:      7(int) Constant 41
             155:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 59 18 24 157 12 12 13
             160:      7(int) Constant 84
             158:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 24 160 12 12 13
             161:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 24 160 12 12 13
             162:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 22 18 146 12 21 163 12 13 152 155 158 161
             164:             TypeArray 151(gl_PerVertex) 13
             165:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 162 13
             166:             TypePointer Input 164
             167:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 165 22 12
      168(gl_in):    166(ptr) Variable Input
             169:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 170 165 18 146 12 21 170 168(gl_in) 68
             172:             TypePointer Input 69(fvec4)
             173:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 22 12
             179:      7(int) Constant 55
             177:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 178 70 18 179 12 17 23
             187:             TypePointer Function 60(fvec3)
             188:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 32 12
             192:      7(int) Constant 57
             190:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 191 61 18 192 12 17 23
             198:     28(int) Constant 2
             199:             TypePointer Uniform 69(fvec4)
             200:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 24 12
208(outLightVec):     62(ptr) Variable Output
             211:      7(int) Constant 58
             209:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 210 61 18 211 12 21 210 208(outLightVec) 68
 217(outViewVec):     62(ptr) Variable Output
             220:      7(int) Constant 59
             218:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 219 61 18 220 12 21 219 217(outViewVec) 68
225(gl_PerVertex):             TypeStruct 69(fvec4) 57(float) 149 149
             227:      7(int) Constant 215
             226:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 153 70 18 24 227 12 12 13
             229:      7(int) Constant 233
             228:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 59 18 24 229 12 12 13
             230:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 13 32 12 12 13
             231:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 159 150 18 13 32 12 12 13
             233:      7(int) Constant 61
             232:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 22 18 233 12 21 163 12 13 226 228 230 231
             234:             TypePointer Output 225(gl_PerVertex)
             235:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 232 13 12
             236:    234(ptr) Variable Output
             237:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 238 232 18 233 12 21 238 236 68
             245:             TypePointer Output 69(fvec4)
             246:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 70 13 12
             248:             TypePointer Output 28(int)
             249:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 13 12
250(gl_ViewportIndex):    248(ptr) Variable Output
             253:      7(int) Constant 64
             251:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 252 30 18 253 12 21 252 250(gl_ViewportIndex) 68
256(gl_PrimitiveID):    248(ptr) Variable Output
             259:      7(int) Constant 65
             257:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 258 30 18 259 12 21 258 256(gl_PrimitiveID) 68
260(gl_PrimitiveIDIn):     96(ptr) Variable Input
             261:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 262 30 18 259 12 21 262 260(gl_PrimitiveIDIn) 68
             266:      7(int) Constant 66
             273:      7(int) Constant 68
        14(main):           4 Function None 5
              15:             Label
           34(i):     31(ptr) Variable Function
        143(pos):    141(ptr) Variable Function
   176(worldPos):    141(ptr) Variable Function
       189(lPos):    187(ptr) Variable Function
              26:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
              27:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 20 20 12 12
              25:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
              40:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
              38:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 35 34(i) 39
                              Store 34(i) 41
                              Branch 42
              42:             Label
              46:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
              47:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
                              LoopMerge 44 45 None
                              Branch 48
              48:             Label
              50:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
              51:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
              49:     28(int) Load 34(i)
              56:    53(bool) SLessThan 49 52
                              BranchConditional 56 43 44
              43:               Label
             102:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
             103:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 67 67 12 12
             101:     28(int)   Load 98(gl_InvocationID)
             106:    104(ptr)   AccessChain 92(ubo) 95 101
             107:          71   Load 106
             110:   69(fvec4)   CompositeExtract 107 0
             111:   60(fvec3)   VectorShuffle 110 110 0 1 2
             112:   69(fvec4)   CompositeExtract 107 1
             113:   60(fvec3)   VectorShuffle 112 112 0 1 2
             114:   69(fvec4)   CompositeExtract 107 2
             115:   60(fvec3)   VectorShuffle 114 114 0 1 2
             116:         108   CompositeConstruct 111 113 115
             124:     28(int)   Load 34(i)
             127:    125(ptr)   AccessChain 121(inNormal) 124
             128:   60(fvec3)   Load 127
             129:   60(fvec3)   MatrixTimesVector 116 128
                                Store 64(outNormal) 129
             138:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 133 133 12 12
             137:     28(int)   Load 34(i)
             139:    125(ptr)   AccessChain 134(inColor) 137
             140:   60(fvec3)   Load 139
                                Store 130(outColor) 140
             148:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 146 146 12 12
             147:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 144 143(pos) 39
             171:     28(int)   Load 34(i)
             174:    172(ptr)   AccessChain 168(gl_in) 171 41
             175:   69(fvec4)   Load 174
                                Store 143(pos) 175
             181:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 179 179 12 12
             180:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 177 176(worldPos) 39
             182:     28(int)   Load 98(gl_InvocationID)
             183:    104(ptr)   AccessChain 92(ubo) 95 182
             184:          71   Load 183
             185:   69(fvec4)   Load 143(pos)
             186:   69(fvec4)   MatrixTimesVector 184 185
                                Store 176(worldPos) 186
             194:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 192 192 12 12
             193:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 190 189(lPos) 39
             195:     28(int)   Load 98(gl_InvocationID)
             196:    104(ptr)   AccessChain 92(ubo) 95 195
             197:          71   Load 196
             201:    199(ptr)   AccessChain 92(ubo) 198
             202:   69(fvec4)   Load 201
             203:   69(fvec4)   MatrixTimesVector 197 202
             204:   57(float)   CompositeExtract 203 0
             205:   57(float)   CompositeExtract 203 1
             206:   57(float)   CompositeExtract 203 2
             207:   60(fvec3)   CompositeConstruct 204 205 206
                                Store 189(lPos) 207
             213:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 211 211 12 12
             212:   60(fvec3)   Load 189(lPos)
             214:   69(fvec4)   Load 176(worldPos)
             215:   60(fvec3)   VectorShuffle 214 214 0 1 2
             216:   60(fvec3)   FSub 212 215
                                Store 208(outLightVec) 216
             222:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 220 220 12 12
             221:   69(fvec4)   Load 176(worldPos)
             223:   60(fvec3)   VectorShuffle 221 221 0 1 2
             224:   60(fvec3)   FNegate 223
                                Store 217(outViewVec) 224
             240:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 233 233 12 12
             239:     28(int)   Load 98(gl_InvocationID)
             241:    104(ptr)   AccessChain 92(ubo) 41 239
             242:          71   Load 241
             243:   69(fvec4)   Load 176(worldPos)
             244:   69(fvec4)   MatrixTimesVector 242 243
             247:    245(ptr)   AccessChain 236 41
                                Store 247 244
             255:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 253 253 12 12
             254:     28(int)   Load 98(gl_InvocationID)
                                Store 250(gl_ViewportIndex) 254
             264:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 259 259 12 12
             263:     28(int)   Load 260(gl_PrimitiveIDIn)
                                Store 256(gl_PrimitiveID) 263
             265:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 266 266 12 12
                                EmitVertex
                                Branch 45
              45:               Label
             268:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
             269:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 37 37 12 12
             267:     28(int)   Load 34(i)
             270:     28(int)   IAdd 267 95
                                Store 34(i) 270
                                Branch 42
              44:             Label
             271:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
             272:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 273 273 12 12
                              EndPrimitive
                              Return
                              FunctionEnd
