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

                              Capability Shader
                              Extension  "SPV_KHR_non_semantic_info"
               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
               3:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 14  "main" 35 42 47 55 65 83 305 323 328 353 371 390 428 437
               2:             String  "spv.debuginfo.glsl.vert"
               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

// Vertex attributes
layout (location = 0) in vec3 inPos;
layout (location = 1) in vec3 inNormal;
layout (location = 2) in vec2 inUV;
layout (location = 3) in vec3 inColor;

// Instanced attributes
layout (location = 4) in vec3 instancePos;
layout (location = 5) in vec3 instanceRot;
layout (location = 6) in float instanceScale;
layout (location = 7) in int instanceTexIndex;

layout (binding = 0) uniform UBO
{
	mat4 projection;
	mat4 modelview;
	vec4 lightPos;
	float locSpeed;
	float globSpeed;
} ubo;

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

void main()
{
	outColor = inColor;
	outUV = vec3(inUV, instanceTexIndex);

	mat3 mx, my, mz;

	// rotate around x
	float s = sin(instanceRot.x + ubo.locSpeed);
	float c = cos(instanceRot.x + ubo.locSpeed);

	mx[0] = vec3(c, s, 0.0);
	mx[1] = vec3(-s, c, 0.0);
	mx[2] = vec3(0.0, 0.0, 1.0);

	// rotate around y
	s = sin(instanceRot.y + ubo.locSpeed);
	c = cos(instanceRot.y + ubo.locSpeed);

	my[0] = vec3(c, 0.0, s);
	my[1] = vec3(0.0, 1.0, 0.0);
	my[2] = vec3(-s, 0.0, c);

	// rot around z
	s = sin(instanceRot.z + ubo.locSpeed);
	c = cos(instanceRot.z + ubo.locSpeed);

	mz[0] = vec3(1.0, 0.0, 0.0);
	mz[1] = vec3(0.0, c, s);
	mz[2] = vec3(0.0, -s, c);

	mat3 rotMat = mz * my * mx;

	mat4 gRotMat;
	s = sin(instanceRot.y + ubo.globSpeed);
	c = cos(instanceRot.y + ubo.globSpeed);
	gRotMat[0] = vec4(c, 0.0, s, 0.0);
	gRotMat[1] = vec4(0.0, 1.0, 0.0, 0.0);
	gRotMat[2] = vec4(-s, 0.0, c, 0.0);
	gRotMat[3] = vec4(0.0, 0.0, 0.0, 1.0);

	vec4 locPos = vec4(inPos.xyz * rotMat, 1.0);
	vec4 pos = vec4((locPos.xyz * instanceScale) + instancePos, 1.0);

	gl_Position = ubo.projection * ubo.modelview * gRotMat * pos;
	outNormal = mat3(ubo.modelview * gRotMat) * inverse(rotMat) * inNormal;

	pos = ubo.modelview * vec4(inPos.xyz + instancePos, 1.0);
	vec3 lPos = mat3(ubo.modelview) * ubo.lightPos.xyz;
	outLightVec = lPos - pos.xyz;
	outViewVec = -pos.xyz;
}
"
              29:             String  "float"
              37:             String  "outColor"
              44:             String  "inColor"
              49:             String  "outUV"
              57:             String  "inUV"
              61:             String  "int"
              67:             String  "instanceTexIndex"
              78:             String  "s"
              85:             String  "instanceRot"
              95:             String  "bool"
             100:             String  "modelview"
             104:             String  "lightPos"
             107:             String  "globSpeed"
             111:             String  "UBO"
             116:             String  "ubo"
             126:             String  "c"
             142:             String  "mx"
             186:             String  "my"
             223:             String  "mz"
             244:             String  "rotMat"
             274:             String  "gRotMat"
             301:             String  "locPos"
             307:             String  "inPos"
             317:             String  "pos"
             325:             String  "instanceScale"
             330:             String  "instancePos"
             341:             String  "gl_Position"
             344:             String  "gl_PointSize"
             346:             String  "gl_CullDistance"
             349:             String  "gl_PerVertex"
             355:             String  ""
             373:             String  "outNormal"
             392:             String  "inNormal"
             409:             String  "lPos"
             430:             String  "outLightVec"
             439:             String  "outViewVec"
                              Name 14  "main"
                              Name 35  "outColor"
                              Name 42  "inColor"
                              Name 47  "outUV"
                              Name 55  "inUV"
                              Name 65  "instanceTexIndex"
                              Name 76  "s"
                              Name 83  "instanceRot"
                              Name 98  "UBO"
                              MemberName 98(UBO) 0  "projection"
                              MemberName 98(UBO) 1  "modelview"
                              MemberName 98(UBO) 2  "lightPos"
                              MemberName 98(UBO) 3  "locSpeed"
                              MemberName 98(UBO) 4  "globSpeed"
                              Name 114  "ubo"
                              Name 124  "c"
                              Name 140  "mx"
                              Name 184  "my"
                              Name 221  "mz"
                              Name 242  "rotMat"
                              Name 272  "gRotMat"
                              Name 299  "locPos"
                              Name 305  "inPos"
                              Name 315  "pos"
                              Name 323  "instanceScale"
                              Name 328  "instancePos"
                              Name 339  "gl_PerVertex"
                              MemberName 339(gl_PerVertex) 0  "gl_Position"
                              MemberName 339(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 339(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 339(gl_PerVertex) 3  "gl_CullDistance"
                              Name 353  ""
                              Name 371  "outNormal"
                              Name 390  "inNormal"
                              Name 407  "lPos"
                              Name 428  "outLightVec"
                              Name 437  "outViewVec"
                              Decorate 35(outColor) Location 1
                              Decorate 42(inColor) Location 3
                              Decorate 47(outUV) Location 2
                              Decorate 55(inUV) Location 2
                              Decorate 65(instanceTexIndex) Location 7
                              Decorate 83(instanceRot) Location 5
                              MemberDecorate 98(UBO) 0 ColMajor
                              MemberDecorate 98(UBO) 0 Offset 0
                              MemberDecorate 98(UBO) 0 MatrixStride 16
                              MemberDecorate 98(UBO) 1 ColMajor
                              MemberDecorate 98(UBO) 1 Offset 64
                              MemberDecorate 98(UBO) 1 MatrixStride 16
                              MemberDecorate 98(UBO) 2 Offset 128
                              MemberDecorate 98(UBO) 3 Offset 144
                              MemberDecorate 98(UBO) 4 Offset 148
                              Decorate 98(UBO) Block
                              Decorate 114(ubo) DescriptorSet 0
                              Decorate 114(ubo) Binding 0
                              Decorate 305(inPos) Location 0
                              Decorate 323(instanceScale) Location 6
                              Decorate 328(instancePos) Location 4
                              MemberDecorate 339(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 339(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 339(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 339(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 339(gl_PerVertex) Block
                              Decorate 371(outNormal) Location 0
                              Decorate 390(inNormal) Location 1
                              Decorate 428(outLightVec) Location 4
                              Decorate 437(outViewVec) Location 3
               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 54
              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:             TypeFloat 32
              30:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 13 12
              31:             TypeVector 28(float) 3
              32:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 13
              33:             TypePointer Output 31(fvec3)
              34:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 13 12
    35(outColor):     33(ptr) Variable Output
              38:      7(int) Constant 56
              39:      7(int) Constant 8
              36:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 37 32 18 38 12 21 37 35(outColor) 39
              40:             TypePointer Input 31(fvec3)
              41:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 22 12
     42(inColor):     40(ptr) Variable Input
              43:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 44 32 18 38 12 21 44 42(inColor) 39
       47(outUV):     33(ptr) Variable Output
              50:      7(int) Constant 57
              48:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 49 32 18 50 12 21 49 47(outUV) 39
              51:             TypeVector 28(float) 2
              52:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 24
              53:             TypePointer Input 51(fvec2)
              54:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 52 22 12
        55(inUV):     53(ptr) Variable Input
              56:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 57 52 18 50 12 21 57 55(inUV) 39
              60:             TypeInt 32 1
              62:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 61 10 23 12
              63:             TypePointer Input 60(int)
              64:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 22 12
65(instanceTexIndex):     63(ptr) Variable Input
              66:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 67 62 18 50 12 21 67 65(instanceTexIndex) 39
              73:             TypePointer Function 28(float)
              74:      7(int) Constant 7
              75:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 74 12
              79:      7(int) Constant 62
              77:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 78 30 18 79 12 17 23
              81:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
 83(instanceRot):     40(ptr) Variable Input
              84:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 85 32 18 79 12 21 85 83(instanceRot) 39
              86:             TypePointer Input 28(float)
              87:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 22 12
              90:             TypeVector 28(float) 4
              91:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 23
              92:             TypeMatrix 90(fvec4) 4
              94:             TypeBool
              96:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 95 10 24 12
              97:    94(bool) ConstantTrue
              93:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 91 23 97
         98(UBO):             TypeStruct 92 92 90(fvec4) 28(float) 28(float)
             101:      7(int) Constant 42
              99:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 100 93 18 101 74 12 12 13
             102:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 100 93 18 101 74 12 12 13
             105:      7(int) Constant 43
             103:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 104 91 18 105 74 12 12 13
             108:      7(int) Constant 45
             106:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 107 30 18 108 39 12 12 13
             109:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 107 30 18 108 39 12 12 13
             110:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 111 22 18 79 12 21 111 12 13 99 102 103 106 109
             112:             TypePointer Uniform 98(UBO)
             113:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 110 24 12
        114(ubo):    112(ptr) Variable Uniform
             115:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 116 110 18 79 12 21 116 114(ubo) 39
             117:     60(int) Constant 3
             118:             TypePointer Uniform 28(float)
             119:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 24 12
             127:      7(int) Constant 63
             125:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 126 30 18 127 12 17 23
             136:             TypeMatrix 31(fvec3) 3
             137:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 32 13 97
             138:             TypePointer Function 136
             139:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 137 74 12
             143:      7(int) Constant 65
             141:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 142 137 18 143 12 17 23
             146:     60(int) Constant 0
             149:   28(float) Constant 0
             151:             TypePointer Function 31(fvec3)
             152:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 74 12
             154:     60(int) Constant 1
             157:      7(int) Constant 66
             162:     60(int) Constant 2
             163:   28(float) Constant 1065353216
             164:   31(fvec3) ConstantComposite 149 149 163
             167:      7(int) Constant 67
             170:      7(int) Constant 70
             178:      7(int) Constant 71
             187:      7(int) Constant 73
             185:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 186 137 18 187 12 17 23
             194:   31(fvec3) ConstantComposite 149 163 149
             197:      7(int) Constant 74
             200:      7(int) Constant 75
             207:      7(int) Constant 78
             215:      7(int) Constant 79
             224:      7(int) Constant 81
             222:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 223 137 18 224 12 17 23
             227:   31(fvec3) ConstantComposite 163 149 149
             231:      7(int) Constant 82
             237:      7(int) Constant 83
             245:      7(int) Constant 85
             243:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 244 137 18 245 12 17 23
             255:      7(int) Constant 88
             257:     60(int) Constant 4
             264:      7(int) Constant 89
             270:             TypePointer Function 92
             271:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 93 74 12
             275:      7(int) Constant 90
             273:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 274 93 18 275 12 17 23
             281:             TypePointer Function 90(fvec4)
             282:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 91 74 12
             284:   90(fvec4) ConstantComposite 149 163 149 149
             287:      7(int) Constant 91
             290:      7(int) Constant 92
             295:   90(fvec4) ConstantComposite 149 149 149 163
             298:      7(int) Constant 93
             302:      7(int) Constant 95
             300:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 301 91 18 302 12 17 23
      305(inPos):     40(ptr) Variable Input
             306:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 307 32 18 302 12 21 307 305(inPos) 39
             318:      7(int) Constant 96
             316:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 317 91 18 318 12 17 23
323(instanceScale):     86(ptr) Variable Input
             324:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 325 30 18 318 12 21 325 323(instanceScale) 39
328(instancePos):     40(ptr) Variable Input
             329:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 330 32 18 318 12 21 330 328(instancePos) 39
             337:             TypeArray 28(float) 22
             338:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 30 22
339(gl_PerVertex):             TypeStruct 90(fvec4) 28(float) 337 337
             342:      7(int) Constant 24
             340:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 341 91 18 22 342 12 12 13
             343:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 344 30 18 22 101 12 12 13
             345:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 346 338 18 22 245 12 12 13
             347:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 346 338 18 22 245 12 12 13
             350:      7(int) Constant 98
             348:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 349 22 18 350 12 21 349 12 13 340 343 345 347
             351:             TypePointer Output 339(gl_PerVertex)
             352:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 348 13 12
             353:    351(ptr) Variable Output
             354:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 355 348 18 350 12 21 355 353 39
             356:             TypePointer Uniform 92
             357:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 93 24 12
             368:             TypePointer Output 90(fvec4)
             369:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 91 13 12
  371(outNormal):     33(ptr) Variable Output
             374:      7(int) Constant 99
             372:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 373 32 18 374 12 21 373 371(outNormal) 39
   390(inNormal):     40(ptr) Variable Input
             391:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 392 32 18 374 12 21 392 390(inNormal) 39
             397:      7(int) Constant 101
             410:      7(int) Constant 102
             408:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 409 32 18 410 12 17 23
             422:             TypePointer Uniform 90(fvec4)
             423:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 91 24 12
428(outLightVec):     33(ptr) Variable Output
             431:      7(int) Constant 103
             429:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 430 32 18 431 12 21 430 428(outLightVec) 39
 437(outViewVec):     33(ptr) Variable Output
             440:      7(int) Constant 104
             438:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 439 32 18 440 12 21 439 437(outViewVec) 39
        14(main):           4 Function None 5
              15:             Label
           76(s):     73(ptr) Variable Function
          124(c):     73(ptr) Variable Function
         140(mx):    138(ptr) Variable Function
         184(my):    138(ptr) Variable Function
         221(mz):    138(ptr) Variable Function
     242(rotMat):    138(ptr) Variable Function
    272(gRotMat):    270(ptr) Variable Function
     299(locPos):    281(ptr) Variable Function
        315(pos):    281(ptr) Variable Function
       407(lPos):    151(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)
              46:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 38 38 12 12
              45:   31(fvec3) Load 42(inColor)
                              Store 35(outColor) 45
              59:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 50 50 12 12
              58:   51(fvec2) Load 55(inUV)
              68:     60(int) Load 65(instanceTexIndex)
              69:   28(float) ConvertSToF 68
              70:   28(float) CompositeExtract 58 0
              71:   28(float) CompositeExtract 58 1
              72:   31(fvec3) CompositeConstruct 70 71 69
                              Store 47(outUV) 72
              82:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 79 79 12 12
              80:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 77 76(s) 81
              88:     86(ptr) AccessChain 83(instanceRot) 12
              89:   28(float) Load 88
             120:    118(ptr) AccessChain 114(ubo) 117
             121:   28(float) Load 120
             122:   28(float) FAdd 89 121
             123:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 122
                              Store 76(s) 123
             129:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 127 127 12 12
             128:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 125 124(c) 81
             130:     86(ptr) AccessChain 83(instanceRot) 12
             131:   28(float) Load 130
             132:    118(ptr) AccessChain 114(ubo) 117
             133:   28(float) Load 132
             134:   28(float) FAdd 131 133
             135:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 134
                              Store 124(c) 135
             145:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 143 143 12 12
             144:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 141 140(mx) 81
             147:   28(float) Load 124(c)
             148:   28(float) Load 76(s)
             150:   31(fvec3) CompositeConstruct 147 148 149
             153:    151(ptr) AccessChain 140(mx) 146
                              Store 153 150
             156:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 157 157 12 12
             155:   28(float) Load 76(s)
             158:   28(float) FNegate 155
             159:   28(float) Load 124(c)
             160:   31(fvec3) CompositeConstruct 158 159 149
             161:    151(ptr) AccessChain 140(mx) 154
                              Store 161 160
             166:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 167 167 12 12
             165:    151(ptr) AccessChain 140(mx) 162
                              Store 165 164
             169:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 170 170 12 12
             168:     86(ptr) AccessChain 83(instanceRot) 22
             171:   28(float) Load 168
             172:    118(ptr) AccessChain 114(ubo) 117
             173:   28(float) Load 172
             174:   28(float) FAdd 171 173
             175:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 174
                              Store 76(s) 175
             177:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 178 178 12 12
             176:     86(ptr) AccessChain 83(instanceRot) 22
             179:   28(float) Load 176
             180:    118(ptr) AccessChain 114(ubo) 117
             181:   28(float) Load 180
             182:   28(float) FAdd 179 181
             183:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 182
                              Store 124(c) 183
             189:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 187 187 12 12
             188:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 185 184(my) 81
             190:   28(float) Load 124(c)
             191:   28(float) Load 76(s)
             192:   31(fvec3) CompositeConstruct 190 149 191
             193:    151(ptr) AccessChain 184(my) 146
                              Store 193 192
             196:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 197 197 12 12
             195:    151(ptr) AccessChain 184(my) 154
                              Store 195 194
             199:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 200 200 12 12
             198:   28(float) Load 76(s)
             201:   28(float) FNegate 198
             202:   28(float) Load 124(c)
             203:   31(fvec3) CompositeConstruct 201 149 202
             204:    151(ptr) AccessChain 184(my) 162
                              Store 204 203
             206:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 207 207 12 12
             205:     86(ptr) AccessChain 83(instanceRot) 24
             208:   28(float) Load 205
             209:    118(ptr) AccessChain 114(ubo) 117
             210:   28(float) Load 209
             211:   28(float) FAdd 208 210
             212:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 211
                              Store 76(s) 212
             214:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 215 215 12 12
             213:     86(ptr) AccessChain 83(instanceRot) 24
             216:   28(float) Load 213
             217:    118(ptr) AccessChain 114(ubo) 117
             218:   28(float) Load 217
             219:   28(float) FAdd 216 218
             220:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 219
                              Store 124(c) 220
             226:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 224 224 12 12
             225:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 222 221(mz) 81
             228:    151(ptr) AccessChain 221(mz) 146
                              Store 228 227
             230:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 231 231 12 12
             229:   28(float) Load 124(c)
             232:   28(float) Load 76(s)
             233:   31(fvec3) CompositeConstruct 149 229 232
             234:    151(ptr) AccessChain 221(mz) 154
                              Store 234 233
             236:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 237 237 12 12
             235:   28(float) Load 76(s)
             238:   28(float) FNegate 235
             239:   28(float) Load 124(c)
             240:   31(fvec3) CompositeConstruct 149 238 239
             241:    151(ptr) AccessChain 221(mz) 162
                              Store 241 240
             247:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 245 245 12 12
             246:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 243 242(rotMat) 81
             248:         136 Load 221(mz)
             249:         136 Load 184(my)
             250:         136 MatrixTimesMatrix 248 249
             251:         136 Load 140(mx)
             252:         136 MatrixTimesMatrix 250 251
                              Store 242(rotMat) 252
             254:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 255 255 12 12
             253:     86(ptr) AccessChain 83(instanceRot) 22
             256:   28(float) Load 253
             258:    118(ptr) AccessChain 114(ubo) 257
             259:   28(float) Load 258
             260:   28(float) FAdd 256 259
             261:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 260
                              Store 76(s) 261
             263:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 264 264 12 12
             262:     86(ptr) AccessChain 83(instanceRot) 22
             265:   28(float) Load 262
             266:    118(ptr) AccessChain 114(ubo) 257
             267:   28(float) Load 266
             268:   28(float) FAdd 265 267
             269:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 268
                              Store 124(c) 269
             277:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 275 275 12 12
             276:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 273 272(gRotMat) 81
             278:   28(float) Load 124(c)
             279:   28(float) Load 76(s)
             280:   90(fvec4) CompositeConstruct 278 149 279 149
             283:    281(ptr) AccessChain 272(gRotMat) 146
                              Store 283 280
             286:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 287 287 12 12
             285:    281(ptr) AccessChain 272(gRotMat) 154
                              Store 285 284
             289:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 290 290 12 12
             288:   28(float) Load 76(s)
             291:   28(float) FNegate 288
             292:   28(float) Load 124(c)
             293:   90(fvec4) CompositeConstruct 291 149 292 149
             294:    281(ptr) AccessChain 272(gRotMat) 162
                              Store 294 293
             297:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 298 298 12 12
             296:    281(ptr) AccessChain 272(gRotMat) 117
                              Store 296 295
             304:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 302 302 12 12
             303:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 300 299(locPos) 81
             308:   31(fvec3) Load 305(inPos)
             309:         136 Load 242(rotMat)
             310:   31(fvec3) VectorTimesMatrix 308 309
             311:   28(float) CompositeExtract 310 0
             312:   28(float) CompositeExtract 310 1
             313:   28(float) CompositeExtract 310 2
             314:   90(fvec4) CompositeConstruct 311 312 313 163
                              Store 299(locPos) 314
             320:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 318 318 12 12
             319:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 316 315(pos) 81
             321:   90(fvec4) Load 299(locPos)
             322:   31(fvec3) VectorShuffle 321 321 0 1 2
             326:   28(float) Load 323(instanceScale)
             327:   31(fvec3) VectorTimesScalar 322 326
             331:   31(fvec3) Load 328(instancePos)
             332:   31(fvec3) FAdd 327 331
             333:   28(float) CompositeExtract 332 0
             334:   28(float) CompositeExtract 332 1
             335:   28(float) CompositeExtract 332 2
             336:   90(fvec4) CompositeConstruct 333 334 335 163
                              Store 315(pos) 336
             359:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 350 350 12 12
             358:    356(ptr) AccessChain 114(ubo) 146
             360:          92 Load 358
             361:    356(ptr) AccessChain 114(ubo) 154
             362:          92 Load 361
             363:          92 MatrixTimesMatrix 360 362
             364:          92 Load 272(gRotMat)
             365:          92 MatrixTimesMatrix 363 364
             366:   90(fvec4) Load 315(pos)
             367:   90(fvec4) MatrixTimesVector 365 366
             370:    368(ptr) AccessChain 353 146
                              Store 370 367
             376:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 374 374 12 12
             375:    356(ptr) AccessChain 114(ubo) 154
             377:          92 Load 375
             378:          92 Load 272(gRotMat)
             379:          92 MatrixTimesMatrix 377 378
             380:   90(fvec4) CompositeExtract 379 0
             381:   31(fvec3) VectorShuffle 380 380 0 1 2
             382:   90(fvec4) CompositeExtract 379 1
             383:   31(fvec3) VectorShuffle 382 382 0 1 2
             384:   90(fvec4) CompositeExtract 379 2
             385:   31(fvec3) VectorShuffle 384 384 0 1 2
             386:         136 CompositeConstruct 381 383 385
             387:         136 Load 242(rotMat)
             388:         136 ExtInst 3(GLSL.std.450) 34(MatrixInverse) 387
             389:         136 MatrixTimesMatrix 386 388
             393:   31(fvec3) Load 390(inNormal)
             394:   31(fvec3) MatrixTimesVector 389 393
                              Store 371(outNormal) 394
             396:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 397 397 12 12
             395:    356(ptr) AccessChain 114(ubo) 154
             398:          92 Load 395
             399:   31(fvec3) Load 305(inPos)
             400:   31(fvec3) Load 328(instancePos)
             401:   31(fvec3) FAdd 399 400
             402:   28(float) CompositeExtract 401 0
             403:   28(float) CompositeExtract 401 1
             404:   28(float) CompositeExtract 401 2
             405:   90(fvec4) CompositeConstruct 402 403 404 163
             406:   90(fvec4) MatrixTimesVector 398 405
                              Store 315(pos) 406
             412:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 410 410 12 12
             411:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 408 407(lPos) 81
             413:    356(ptr) AccessChain 114(ubo) 154
             414:          92 Load 413
             415:   90(fvec4) CompositeExtract 414 0
             416:   31(fvec3) VectorShuffle 415 415 0 1 2
             417:   90(fvec4) CompositeExtract 414 1
             418:   31(fvec3) VectorShuffle 417 417 0 1 2
             419:   90(fvec4) CompositeExtract 414 2
             420:   31(fvec3) VectorShuffle 419 419 0 1 2
             421:         136 CompositeConstruct 416 418 420
             424:    422(ptr) AccessChain 114(ubo) 162
             425:   90(fvec4) Load 424
             426:   31(fvec3) VectorShuffle 425 425 0 1 2
             427:   31(fvec3) MatrixTimesVector 421 426
                              Store 407(lPos) 427
             433:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 431 431 12 12
             432:   31(fvec3) Load 407(lPos)
             434:   90(fvec4) Load 315(pos)
             435:   31(fvec3) VectorShuffle 434 434 0 1 2
             436:   31(fvec3) FSub 432 435
                              Store 428(outLightVec) 436
             442:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 440 440 12 12
             441:   90(fvec4) Load 315(pos)
             443:   31(fvec3) VectorShuffle 441 441 0 1 2
             444:   31(fvec3) FNegate 443
                              Store 437(outViewVec) 444
                              Return
                              FunctionEnd
