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

                              Capability Tessellation
                              Extension  "SPV_KHR_non_semantic_info"
               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
               3:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationEvaluation 14  "main" 47 66 93 116 143 183 300 316 324 337 344
                              ExecutionMode 14 Quads
                              ExecutionMode 14 SpacingEqual
                              ExecutionMode 14 VertexOrderCw
               2:             String  "spv.debuginfo.glsl.tese"
               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

layout (set = 0, binding = 0) uniform UBO
{
	mat4 projection;
	mat4 modelview;
	vec4 lightPos;
	vec4 frustumPlanes[6];
	float displacementFactor;
	float tessellationFactor;
	vec2 viewportDim;
	float tessellatedEdgeSize;
} ubo;

layout (set = 0, binding = 1) uniform sampler2D displacementMap;

layout(quads, equal_spacing, cw) in;

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

layout (location = 0) out vec3 outNormal;
layout (location = 1) out vec2 outUV;
layout (location = 2) out vec3 outViewVec;
layout (location = 3) out vec3 outLightVec;
layout (location = 4) out vec3 outEyePos;
layout (location = 5) out vec3 outWorldPos;

void main()
{
	// Interpolate UV coordinates
	vec2 uv1 = mix(inUV[0], inUV[1], gl_TessCoord.x);
	vec2 uv2 = mix(inUV[3], inUV[2], gl_TessCoord.x);
	outUV = mix(uv1, uv2, gl_TessCoord.y);

	vec3 n1 = mix(inNormal[0], inNormal[1], gl_TessCoord.x);
	vec3 n2 = mix(inNormal[3], inNormal[2], gl_TessCoord.x);
	outNormal = mix(n1, n2, gl_TessCoord.y);

	// Interpolate positions
	vec4 pos1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);
	vec4 pos2 = mix(gl_in[3].gl_Position, gl_in[2].gl_Position, gl_TessCoord.x);
	vec4 pos = mix(pos1, pos2, gl_TessCoord.y);
	// Displace
	pos.y -= textureLod(displacementMap, outUV, 0.0).r * ubo.displacementFactor;
	// Perspective projection
	gl_Position = ubo.projection * ubo.modelview * pos;

	// Calculate vectors for lighting based on tessellated position
	outViewVec = -pos.xyz;
	outLightVec = normalize(ubo.lightPos.xyz + outViewVec);
	outWorldPos = pos.xyz;
	outEyePos = vec3(ubo.modelview * pos);
}
"
              29:             String  "float"
              38:             String  "uv1"
              49:             String  "inUV"
              52:             String  "int"
              68:             String  "gl_TessCoord"
              77:             String  "uv2"
              95:             String  "outUV"
             108:             String  "n1"
             118:             String  "inNormal"
             129:             String  "n2"
             145:             String  "outNormal"
             160:             String  "pos1"
             168:             String  "gl_Position"
             171:             String  "gl_PointSize"
             174:             String  "gl_CullDistance"
             178:             String  "gl_PerVertex"
             185:             String  "gl_in"
             198:             String  "pos2"
             212:             String  "pos"
             224:             String  "type.2d.image"
             226:             String  "@type.2d.image"
             230:             String  "type.sampled.image"
             231:             String  "@type.sampled.image"
             236:             String  "displacementMap"
             246:             String  "bool"
             253:             String  "modelview"
             257:             String  "lightPos"
             260:             String  "frustumPlanes"
             262:             String  "tessellatedEdgeSize"
             266:             String  "viewportDim"
             270:             String  "UBO"
             275:             String  "ubo"
             302:             String  ""
             318:             String  "outViewVec"
             326:             String  "outLightVec"
             339:             String  "outWorldPos"
             346:             String  "outEyePos"
                              Name 14  "main"
                              Name 36  "uv1"
                              Name 47  "inUV"
                              Name 66  "gl_TessCoord"
                              Name 75  "uv2"
                              Name 93  "outUV"
                              Name 106  "n1"
                              Name 116  "inNormal"
                              Name 127  "n2"
                              Name 143  "outNormal"
                              Name 158  "pos1"
                              Name 166  "gl_PerVertex"
                              MemberName 166(gl_PerVertex) 0  "gl_Position"
                              MemberName 166(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 166(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 166(gl_PerVertex) 3  "gl_CullDistance"
                              Name 183  "gl_in"
                              Name 196  "pos2"
                              Name 210  "pos"
                              Name 234  "displacementMap"
                              Name 251  "UBO"
                              MemberName 251(UBO) 0  "projection"
                              MemberName 251(UBO) 1  "modelview"
                              MemberName 251(UBO) 2  "lightPos"
                              MemberName 251(UBO) 3  "frustumPlanes"
                              MemberName 251(UBO) 4  "displacementFactor"
                              MemberName 251(UBO) 5  "tessellationFactor"
                              MemberName 251(UBO) 6  "viewportDim"
                              MemberName 251(UBO) 7  "tessellatedEdgeSize"
                              Name 273  "ubo"
                              Name 288  "gl_PerVertex"
                              MemberName 288(gl_PerVertex) 0  "gl_Position"
                              MemberName 288(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 288(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 288(gl_PerVertex) 3  "gl_CullDistance"
                              Name 300  ""
                              Name 316  "outViewVec"
                              Name 324  "outLightVec"
                              Name 337  "outWorldPos"
                              Name 344  "outEyePos"
                              Decorate 47(inUV) Location 1
                              Decorate 66(gl_TessCoord) BuiltIn TessCoord
                              Decorate 93(outUV) Location 1
                              Decorate 116(inNormal) Location 0
                              Decorate 143(outNormal) Location 0
                              MemberDecorate 166(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 166(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 166(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 166(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 166(gl_PerVertex) Block
                              Decorate 234(displacementMap) DescriptorSet 0
                              Decorate 234(displacementMap) Binding 1
                              Decorate 249 ArrayStride 16
                              MemberDecorate 251(UBO) 0 ColMajor
                              MemberDecorate 251(UBO) 0 Offset 0
                              MemberDecorate 251(UBO) 0 MatrixStride 16
                              MemberDecorate 251(UBO) 1 ColMajor
                              MemberDecorate 251(UBO) 1 Offset 64
                              MemberDecorate 251(UBO) 1 MatrixStride 16
                              MemberDecorate 251(UBO) 2 Offset 128
                              MemberDecorate 251(UBO) 3 Offset 144
                              MemberDecorate 251(UBO) 4 Offset 240
                              MemberDecorate 251(UBO) 5 Offset 244
                              MemberDecorate 251(UBO) 6 Offset 248
                              MemberDecorate 251(UBO) 7 Offset 256
                              Decorate 251(UBO) Block
                              Decorate 273(ubo) DescriptorSet 0
                              Decorate 273(ubo) Binding 0
                              MemberDecorate 288(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 288(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 288(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 288(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 288(gl_PerVertex) Block
                              Decorate 316(outViewVec) Location 2
                              Decorate 324(outLightVec) Location 3
                              Decorate 337(outWorldPos) Location 5
                              Decorate 344(outEyePos) Location 4
               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 53
              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) 2
              32:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 24
              33:             TypePointer Function 31(fvec2)
              34:      7(int) Constant 7
              35:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 34 12
              39:      7(int) Constant 56
              37:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 38 32 18 39 12 17 23
              41:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
              43:             TypeArray 31(fvec2) 10
              44:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 32 10
              45:             TypePointer Input 43
              46:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 44 22 12
        47(inUV):     45(ptr) Variable Input
              50:      7(int) Constant 8
              48:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 49 44 18 39 12 21 49 47(inUV) 50
              51:             TypeInt 32 1
              53:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 52 10 23 12
              54:     51(int) Constant 0
              55:             TypePointer Input 31(fvec2)
              56:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 22 12
              59:     51(int) Constant 1
              62:             TypeVector 28(float) 3
              63:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 13
              64:             TypePointer Input 62(fvec3)
              65:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 22 12
66(gl_TessCoord):     64(ptr) Variable Input
              67:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 68 63 18 39 12 21 68 66(gl_TessCoord) 50
              69:             TypePointer Input 28(float)
              70:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 22 12
              78:      7(int) Constant 57
              76:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 32 18 78 12 17 23
              81:     51(int) Constant 3
              84:     51(int) Constant 2
              91:             TypePointer Output 31(fvec2)
              92:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 32 13 12
       93(outUV):     91(ptr) Variable Output
              96:      7(int) Constant 58
              94:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 95 32 18 96 12 21 95 93(outUV) 50
             104:             TypePointer Function 62(fvec3)
             105:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 34 12
             109:      7(int) Constant 60
             107:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 108 63 18 109 12 17 23
             112:             TypeArray 62(fvec3) 10
             113:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 63 10
             114:             TypePointer Input 112
             115:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 113 22 12
   116(inNormal):    114(ptr) Variable Input
             117:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 118 113 18 109 12 21 118 116(inNormal) 50
             130:      7(int) Constant 61
             128:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 129 63 18 130 12 17 23
             141:             TypePointer Output 62(fvec3)
             142:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 13 12
  143(outNormal):    141(ptr) Variable Output
             146:      7(int) Constant 62
             144:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 145 63 18 146 12 21 145 143(outNormal) 50
             154:             TypeVector 28(float) 4
             155:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 23
             156:             TypePointer Function 154(fvec4)
             157:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 34 12
             161:      7(int) Constant 65
             159:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 160 155 18 161 12 17 23
             164:             TypeArray 28(float) 22
             165:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 30 22
166(gl_PerVertex):             TypeStruct 154(fvec4) 28(float) 164 164
             169:      7(int) Constant 1756
             167:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 168 155 18 22 169 12 12 13
             172:      7(int) Constant 1774
             170:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 171 30 18 22 172 12 12 13
             175:      7(int) Constant 1817
             173:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 175 12 12 13
             176:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 175 12 12 13
             177:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 178 22 18 161 12 21 178 12 13 167 170 173 176
             179:             TypeArray 166(gl_PerVertex) 10
             180:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 177 10
             181:             TypePointer Input 179
             182:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 180 22 12
      183(gl_in):    181(ptr) Variable Input
             184:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 185 180 18 161 12 21 185 183(gl_in) 50
             186:             TypePointer Input 154(fvec4)
             187:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 22 12
             199:      7(int) Constant 66
             197:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 198 155 18 199 12 17 23
             213:      7(int) Constant 67
             211:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 212 155 18 213 12 17 23
             222:             TypeImage 28(float) 2D sampled format:Unknown
             225:      7(int) Constant 69
             227:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
             223:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 224 12 18 225 12 21 226 227 13
             228:             TypeSampledImage 222
             229:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 230 12 18 225 12 21 231 227 13
             232:             TypePointer UniformConstant 228
             233:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 229 12 12
234(displacementMap):    232(ptr) Variable UniformConstant
             235:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 229 18 225 12 21 236 234(displacementMap) 50
             240:   28(float) Constant 0
             243:             TypeMatrix 154(fvec4) 4
             245:             TypeBool
             247:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 246 10 24 12
             248:   245(bool) ConstantTrue
             244:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 155 23 248
             249:             TypeArray 154(fvec4) 11
             250:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 155 11
        251(UBO):             TypeStruct 243 243 154(fvec4) 249 28(float) 28(float) 31(fvec2) 28(float)
             254:      7(int) Constant 30
             252:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 18 254 34 12 12 13
             255:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 253 244 18 254 34 12 12 13
             258:      7(int) Constant 31
             256:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 257 155 18 258 34 12 12 13
             259:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 260 250 18 10 34 12 12 13
             263:      7(int) Constant 36
             261:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 30 18 263 50 12 12 13
             264:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 30 18 263 50 12 12 13
             267:      7(int) Constant 35
             265:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 266 32 18 267 34 12 12 13
             268:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 30 18 263 50 12 12 13
             269:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 270 22 18 225 12 21 270 12 13 252 255 256 259 261 264 265 268
             271:             TypePointer Uniform 251(UBO)
             272:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 269 24 12
        273(ubo):    271(ptr) Variable Uniform
             274:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 275 269 18 225 12 21 275 273(ubo) 50
             276:     51(int) Constant 4
             277:             TypePointer Uniform 28(float)
             278:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 24 12
             282:             TypePointer Function 28(float)
             283:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 34 12
288(gl_PerVertex):             TypeStruct 154(fvec4) 28(float) 164 164
             290:      7(int) Constant 165
             289:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 168 155 18 22 290 12 12 13
             292:      7(int) Constant 183
             291:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 171 30 18 22 292 12 12 13
             294:      7(int) Constant 226
             293:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 294 12 12 13
             295:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 174 165 18 22 294 12 12 13
             297:      7(int) Constant 71
             296:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 178 22 18 297 12 21 178 12 13 289 291 293 295
             298:             TypePointer Output 288(gl_PerVertex)
             299:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 296 13 12
             300:    298(ptr) Variable Output
             301:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 302 296 18 297 12 21 302 300 50
             303:             TypePointer Uniform 243
             304:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 244 24 12
             313:             TypePointer Output 154(fvec4)
             314:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 13 12
 316(outViewVec):    141(ptr) Variable Output
             319:      7(int) Constant 74
             317:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 318 63 18 319 12 21 318 316(outViewVec) 50
324(outLightVec):    141(ptr) Variable Output
             327:      7(int) Constant 75
             325:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 326 63 18 327 12 21 326 324(outLightVec) 50
             328:             TypePointer Uniform 154(fvec4)
             329:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 155 24 12
337(outWorldPos):    141(ptr) Variable Output
             340:      7(int) Constant 76
             338:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 339 63 18 340 12 21 339 337(outWorldPos) 50
  344(outEyePos):    141(ptr) Variable Output
             347:      7(int) Constant 77
             345:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 346 63 18 347 12 21 346 344(outEyePos) 50
        14(main):           4 Function None 5
              15:             Label
         36(uv1):     33(ptr) Variable Function
         75(uv2):     33(ptr) Variable Function
         106(n1):    104(ptr) Variable Function
         127(n2):    104(ptr) Variable Function
       158(pos1):    156(ptr) Variable Function
       196(pos2):    156(ptr) Variable Function
        210(pos):    156(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)
              42:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 39 39 12 12
              40:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 37 36(uv1) 41
              57:     55(ptr) AccessChain 47(inUV) 54
              58:   31(fvec2) Load 57
              60:     55(ptr) AccessChain 47(inUV) 59
              61:   31(fvec2) Load 60
              71:     69(ptr) AccessChain 66(gl_TessCoord) 12
              72:   28(float) Load 71
              73:   31(fvec2) CompositeConstruct 72 72
              74:   31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 58 61 73
                              Store 36(uv1) 74
              80:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 78 78 12 12
              79:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 76 75(uv2) 41
              82:     55(ptr) AccessChain 47(inUV) 81
              83:   31(fvec2) Load 82
              85:     55(ptr) AccessChain 47(inUV) 84
              86:   31(fvec2) Load 85
              87:     69(ptr) AccessChain 66(gl_TessCoord) 12
              88:   28(float) Load 87
              89:   31(fvec2) CompositeConstruct 88 88
              90:   31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 83 86 89
                              Store 75(uv2) 90
              98:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 96 96 12 12
              97:   31(fvec2) Load 36(uv1)
              99:   31(fvec2) Load 75(uv2)
             100:     69(ptr) AccessChain 66(gl_TessCoord) 22
             101:   28(float) Load 100
             102:   31(fvec2) CompositeConstruct 101 101
             103:   31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 97 99 102
                              Store 93(outUV) 103
             111:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 109 109 12 12
             110:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 107 106(n1) 41
             119:     64(ptr) AccessChain 116(inNormal) 54
             120:   62(fvec3) Load 119
             121:     64(ptr) AccessChain 116(inNormal) 59
             122:   62(fvec3) Load 121
             123:     69(ptr) AccessChain 66(gl_TessCoord) 12
             124:   28(float) Load 123
             125:   62(fvec3) CompositeConstruct 124 124 124
             126:   62(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 120 122 125
                              Store 106(n1) 126
             132:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 130 130 12 12
             131:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 128 127(n2) 41
             133:     64(ptr) AccessChain 116(inNormal) 81
             134:   62(fvec3) Load 133
             135:     64(ptr) AccessChain 116(inNormal) 84
             136:   62(fvec3) Load 135
             137:     69(ptr) AccessChain 66(gl_TessCoord) 12
             138:   28(float) Load 137
             139:   62(fvec3) CompositeConstruct 138 138 138
             140:   62(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 134 136 139
                              Store 127(n2) 140
             148:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 146 146 12 12
             147:   62(fvec3) Load 106(n1)
             149:   62(fvec3) Load 127(n2)
             150:     69(ptr) AccessChain 66(gl_TessCoord) 22
             151:   28(float) Load 150
             152:   62(fvec3) CompositeConstruct 151 151 151
             153:   62(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 147 149 152
                              Store 143(outNormal) 153
             163:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 161 161 12 12
             162:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 159 158(pos1) 41
             188:    186(ptr) AccessChain 183(gl_in) 54 54
             189:  154(fvec4) Load 188
             190:    186(ptr) AccessChain 183(gl_in) 59 54
             191:  154(fvec4) Load 190
             192:     69(ptr) AccessChain 66(gl_TessCoord) 12
             193:   28(float) Load 192
             194:  154(fvec4) CompositeConstruct 193 193 193 193
             195:  154(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 189 191 194
                              Store 158(pos1) 195
             201:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 199 199 12 12
             200:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 197 196(pos2) 41
             202:    186(ptr) AccessChain 183(gl_in) 81 54
             203:  154(fvec4) Load 202
             204:    186(ptr) AccessChain 183(gl_in) 84 54
             205:  154(fvec4) Load 204
             206:     69(ptr) AccessChain 66(gl_TessCoord) 12
             207:   28(float) Load 206
             208:  154(fvec4) CompositeConstruct 207 207 207 207
             209:  154(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 203 205 208
                              Store 196(pos2) 209
             215:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 213 213 12 12
             214:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 211 210(pos) 41
             216:  154(fvec4) Load 158(pos1)
             217:  154(fvec4) Load 196(pos2)
             218:     69(ptr) AccessChain 66(gl_TessCoord) 22
             219:   28(float) Load 218
             220:  154(fvec4) CompositeConstruct 219 219 219 219
             221:  154(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 216 217 220
                              Store 210(pos) 221
             238:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 225 225 12 12
             237:         228 Load 234(displacementMap)
             239:   31(fvec2) Load 93(outUV)
             241:  154(fvec4) ImageSampleExplicitLod 237 239 Lod 240
             242:   28(float) CompositeExtract 241 0
             279:    277(ptr) AccessChain 273(ubo) 276
             280:   28(float) Load 279
             281:   28(float) FMul 242 280
             284:    282(ptr) AccessChain 210(pos) 22
             285:   28(float) Load 284
             286:   28(float) FSub 285 281
             287:    282(ptr) AccessChain 210(pos) 22
                              Store 287 286
             306:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 297 297 12 12
             305:    303(ptr) AccessChain 273(ubo) 54
             307:         243 Load 305
             308:    303(ptr) AccessChain 273(ubo) 59
             309:         243 Load 308
             310:         243 MatrixTimesMatrix 307 309
             311:  154(fvec4) Load 210(pos)
             312:  154(fvec4) MatrixTimesVector 310 311
             315:    313(ptr) AccessChain 300 54
                              Store 315 312
             321:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 319 319 12 12
             320:  154(fvec4) Load 210(pos)
             322:   62(fvec3) VectorShuffle 320 320 0 1 2
             323:   62(fvec3) FNegate 322
                              Store 316(outViewVec) 323
             331:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 327 327 12 12
             330:    328(ptr) AccessChain 273(ubo) 84
             332:  154(fvec4) Load 330
             333:   62(fvec3) VectorShuffle 332 332 0 1 2
             334:   62(fvec3) Load 316(outViewVec)
             335:   62(fvec3) FAdd 333 334
             336:   62(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 335
                              Store 324(outLightVec) 336
             342:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 340 340 12 12
             341:  154(fvec4) Load 210(pos)
             343:   62(fvec3) VectorShuffle 341 341 0 1 2
                              Store 337(outWorldPos) 343
             349:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 347 347 12 12
             348:    303(ptr) AccessChain 273(ubo) 59
             350:         243 Load 348
             351:  154(fvec4) Load 210(pos)
             352:  154(fvec4) MatrixTimesVector 350 351
             353:   28(float) CompositeExtract 352 0
             354:   28(float) CompositeExtract 352 1
             355:   28(float) CompositeExtract 352 2
             356:   62(fvec3) CompositeConstruct 353 354 355
                              Store 344(outEyePos) 356
                              Return
                              FunctionEnd
