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

                              Capability Tessellation
                              Extension  "SPV_KHR_non_semantic_info"
               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
               3:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 14  "main" 260 265 294 383 399 516 532 542 557
                              ExecutionMode 14 OutputVertices 4
               2:             String  "spv.debuginfo.glsl.tesc"
               8:             String  "uint"
              17:             String  "float"
              31:             String  "screenSpaceTessFactor"
              34:             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 samplerHeight;

layout (vertices = 4) out;

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

layout (location = 0) out vec3 outNormal[4];
layout (location = 1) out vec2 outUV[4];

// Calculate the tessellation factor based on screen space
// dimensions of the edge
float screenSpaceTessFactor(vec4 p0, vec4 p1)
{
	// Calculate edge mid point
	vec4 midPoint = 0.5 * (p0 + p1);
	// Sphere radius as distance between the control points
	float radius = distance(p0, p1) / 2.0;

	// View space
	vec4 v0 = ubo.modelview  * midPoint;

	// Project into clip space
	vec4 clip0 = (ubo.projection * (v0 - vec4(radius, vec3(0.0))));
	vec4 clip1 = (ubo.projection * (v0 + vec4(radius, vec3(0.0))));

	// Get normalized device coordinates
	clip0 /= clip0.w;
	clip1 /= clip1.w;

	// Convert to viewport coordinates
	clip0.xy *= ubo.viewportDim;
	clip1.xy *= ubo.viewportDim;

	// Return the tessellation factor based on the screen size
	// given by the distance of the two edge control points in screen space
	// and a reference (min.) tessellation size for the edge set by the application
	return clamp(distance(clip0, clip1) / ubo.tessellatedEdgeSize * ubo.tessellationFactor, 1.0, 64.0);
}

// Checks the current's patch visibility against the frustum using a sphere check
// Sphere radius is given by the patch size
bool frustumCheck()
{
	// Fixed radius (increase if patch size is increased in example)
	const float radius = 8.0f;
	vec4 pos = gl_in[gl_InvocationID].gl_Position;
	pos.y -= textureLod(samplerHeight, inUV[0], 0.0).r * ubo.displacementFactor;

	// Check sphere against frustum planes
	for (int i = 0; i < 6; i++) {
		if (dot(pos, ubo.frustumPlanes[i]) + radius < 0.0)
		{
			return false;
		}
	}
	return true;
}

void main()
{
	if (gl_InvocationID == 0)
	{
		if (!frustumCheck())
		{
			gl_TessLevelInner[0] = 0.0;
			gl_TessLevelInner[1] = 0.0;
			gl_TessLevelOuter[0] = 0.0;
			gl_TessLevelOuter[1] = 0.0;
			gl_TessLevelOuter[2] = 0.0;
			gl_TessLevelOuter[3] = 0.0;
		}
		else
		{
			if (ubo.tessellationFactor > 0.0)
			{
				gl_TessLevelOuter[0] = screenSpaceTessFactor(gl_in[3].gl_Position, gl_in[0].gl_Position);
				gl_TessLevelOuter[1] = screenSpaceTessFactor(gl_in[0].gl_Position, gl_in[1].gl_Position);
				gl_TessLevelOuter[2] = screenSpaceTessFactor(gl_in[1].gl_Position, gl_in[2].gl_Position);
				gl_TessLevelOuter[3] = screenSpaceTessFactor(gl_in[2].gl_Position, gl_in[3].gl_Position);
				gl_TessLevelInner[0] = mix(gl_TessLevelOuter[0], gl_TessLevelOuter[3], 0.5);
				gl_TessLevelInner[1] = mix(gl_TessLevelOuter[2], gl_TessLevelOuter[1], 0.5);
			}
			else
			{
				// Tessellation factor can be set to zero by example
				// to demonstrate a simple passthrough
				gl_TessLevelInner[0] = 1.0;
				gl_TessLevelInner[1] = 1.0;
				gl_TessLevelOuter[0] = 1.0;
				gl_TessLevelOuter[1] = 1.0;
				gl_TessLevelOuter[2] = 1.0;
				gl_TessLevelOuter[3] = 1.0;
			}
		}

	}

	gl_out[gl_InvocationID].gl_Position =  gl_in[gl_InvocationID].gl_Position;
	outNormal[gl_InvocationID] = inNormal[gl_InvocationID];
	outUV[gl_InvocationID] = inUV[gl_InvocationID];
}
"
              40:             String  "p0"
              46:             String  "p1"
              49:             String  "bool"
              55:             String  "frustumCheck"
              58:             String  "main"
              64:             String  "midPoint"
              77:             String  "radius"
              88:             String  "v0"
             101:             String  "modelview"
             105:             String  "lightPos"
             108:             String  "frustumPlanes"
             110:             String  "tessellatedEdgeSize"
             115:             String  "viewportDim"
             119:             String  "UBO"
             124:             String  "ubo"
             126:             String  "int"
             137:             String  "clip0"
             158:             String  "clip1"
             237:             String  "pos"
             245:             String  "gl_Position"
             248:             String  "gl_PointSize"
             251:             String  "gl_CullDistance"
             255:             String  "gl_PerVertex"
             262:             String  "gl_in"
             267:             String  "gl_InvocationID"
             275:             String  "type.2d.image"
             277:             String  "@type.2d.image"
             281:             String  "type.sampled.image"
             282:             String  "@type.sampled.image"
             287:             String  "samplerHeight"
             296:             String  "inUV"
             315:             String  "i"
             385:             String  "gl_TessLevelInner"
             401:             String  "gl_TessLevelOuter"
             518:             String  "gl_out"
             534:             String  "outNormal"
             544:             String  "inNormal"
             559:             String  "outUV"
                              Name 14  "main"
                              Name 29  "screenSpaceTessFactor(vf4;vf4;"
                              Name 27  "p0"
                              Name 28  "p1"
                              Name 53  "frustumCheck("
                              Name 62  "midPoint"
                              Name 75  "radius"
                              Name 86  "v0"
                              Name 99  "UBO"
                              MemberName 99(UBO) 0  "projection"
                              MemberName 99(UBO) 1  "modelview"
                              MemberName 99(UBO) 2  "lightPos"
                              MemberName 99(UBO) 3  "frustumPlanes"
                              MemberName 99(UBO) 4  "displacementFactor"
                              MemberName 99(UBO) 5  "tessellationFactor"
                              MemberName 99(UBO) 6  "viewportDim"
                              MemberName 99(UBO) 7  "tessellatedEdgeSize"
                              Name 122  "ubo"
                              Name 135  "clip0"
                              Name 156  "clip1"
                              Name 235  "pos"
                              Name 243  "gl_PerVertex"
                              MemberName 243(gl_PerVertex) 0  "gl_Position"
                              MemberName 243(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 243(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 243(gl_PerVertex) 3  "gl_CullDistance"
                              Name 260  "gl_in"
                              Name 265  "gl_InvocationID"
                              Name 285  "samplerHeight"
                              Name 294  "inUV"
                              Name 313  "i"
                              Name 383  "gl_TessLevelInner"
                              Name 399  "gl_TessLevelOuter"
                              Name 424  "param"
                              Name 430  "param"
                              Name 435  "param"
                              Name 440  "param"
                              Name 445  "param"
                              Name 450  "param"
                              Name 455  "param"
                              Name 460  "param"
                              Name 503  "gl_PerVertex"
                              MemberName 503(gl_PerVertex) 0  "gl_Position"
                              MemberName 503(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 503(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 503(gl_PerVertex) 3  "gl_CullDistance"
                              Name 516  "gl_out"
                              Name 532  "outNormal"
                              Name 542  "inNormal"
                              Name 557  "outUV"
                              Decorate 95 ArrayStride 16
                              MemberDecorate 99(UBO) 0 ColMajor
                              MemberDecorate 99(UBO) 0 Offset 0
                              MemberDecorate 99(UBO) 0 MatrixStride 16
                              MemberDecorate 99(UBO) 1 ColMajor
                              MemberDecorate 99(UBO) 1 Offset 64
                              MemberDecorate 99(UBO) 1 MatrixStride 16
                              MemberDecorate 99(UBO) 2 Offset 128
                              MemberDecorate 99(UBO) 3 Offset 144
                              MemberDecorate 99(UBO) 4 Offset 240
                              MemberDecorate 99(UBO) 5 Offset 244
                              MemberDecorate 99(UBO) 6 Offset 248
                              MemberDecorate 99(UBO) 7 Offset 256
                              Decorate 99(UBO) Block
                              Decorate 122(ubo) DescriptorSet 0
                              Decorate 122(ubo) Binding 0
                              MemberDecorate 243(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 243(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 243(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 243(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 243(gl_PerVertex) Block
                              Decorate 265(gl_InvocationID) BuiltIn InvocationId
                              Decorate 285(samplerHeight) DescriptorSet 0
                              Decorate 285(samplerHeight) Binding 1
                              Decorate 294(inUV) Location 1
                              Decorate 383(gl_TessLevelInner) Patch
                              Decorate 383(gl_TessLevelInner) BuiltIn TessLevelInner
                              Decorate 399(gl_TessLevelOuter) Patch
                              Decorate 399(gl_TessLevelOuter) BuiltIn TessLevelOuter
                              MemberDecorate 503(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 503(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 503(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 503(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 503(gl_PerVertex) Block
                              Decorate 532(outNormal) Location 0
                              Decorate 542(inNormal) Location 0
                              Decorate 557(outUV) Location 1
               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
              16:             TypeFloat 32
              18:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12
              19:             TypeVector 16(float) 4
              20:      7(int) Constant 4
              21:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 20
              22:             TypePointer Function 19(fvec4)
              23:      7(int) Constant 7
              24:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 23 12
              25:             TypeFunction 16(float) 22(ptr) 22(ptr)
              26:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 18 21 21
              33:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 34
              35:      7(int) Constant 51
              37:      7(int) Constant 1
              38:      7(int) Constant 2
              36:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 37 20 33 38
              32:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 31 26 33 35 12 36 31 13 35
              39:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 40 21 33 35 12 32 20 37
              42:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
              45:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 46 21 33 35 12 32 20 38
              48:             TypeBool
              50:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 10 38 12
              51:             TypeFunction 48(bool)
              52:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 50
              57:      7(int) Constant 81
              56:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 55 52 33 57 12 36 55 13 57
              60:      7(int) Constant 98
              59:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 58 6 33 60 12 36 58 13 60
              65:      7(int) Constant 54
              63:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 64 21 33 65 12 32 20
              68:   16(float) Constant 1056964608
              73:             TypePointer Function 16(float)
              74:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 23 12
              78:      7(int) Constant 56
              76:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 18 33 78 12 32 20
              84:   16(float) Constant 1073741824
              89:      7(int) Constant 59
              87:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 88 21 33 89 12 32 20
              92:             TypeMatrix 19(fvec4) 4
              94:    48(bool) ConstantTrue
              93:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 21 20 94
              95:             TypeArray 19(fvec4) 11
              96:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 21 11
              97:             TypeVector 16(float) 2
              98:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 38
         99(UBO):             TypeStruct 92 92 19(fvec4) 95 16(float) 16(float) 97(fvec2) 16(float)
             102:      7(int) Constant 30
             100:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 101 93 33 102 23 12 12 13
             103:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 101 93 33 102 23 12 12 13
             106:      7(int) Constant 31
             104:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 105 21 33 106 23 12 12 13
             107:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 108 96 33 10 23 12 12 13
             111:      7(int) Constant 36
             112:      7(int) Constant 8
             109:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 110 18 33 111 112 12 12 13
             113:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 110 18 33 111 112 12 12 13
             116:      7(int) Constant 35
             114:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 115 98 33 116 23 12 12 13
             117:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 110 18 33 111 112 12 12 13
             118:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 119 37 33 89 12 36 119 12 13 100 103 104 107 109 113 114 117
             120:             TypePointer Uniform 99(UBO)
             121:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 118 38 12
        122(ubo):    120(ptr) Variable Uniform
             123:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 124 118 33 89 12 36 124 122(ubo) 112
             125:             TypeInt 32 1
             127:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 126 10 20 12
             128:    125(int) Constant 1
             129:             TypePointer Uniform 92
             130:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 93 38 12
             138:      7(int) Constant 62
             136:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 137 21 33 138 12 32 20
             141:    125(int) Constant 0
             146:             TypeVector 16(float) 3
             147:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13
             148:   16(float) Constant 0
             149:  146(fvec3) ConstantComposite 148 148 148
             159:      7(int) Constant 63
             157:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 158 21 33 159 12 32 20
             174:      7(int) Constant 66
             181:      7(int) Constant 67
             186:    125(int) Constant 6
             187:             TypePointer Uniform 97(fvec2)
             188:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 38 12
             191:      7(int) Constant 70
             202:      7(int) Constant 71
             213:      7(int) Constant 76
             216:    125(int) Constant 7
             217:             TypePointer Uniform 16(float)
             218:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 38 12
             222:    125(int) Constant 5
             226:   16(float) Constant 1065353216
             227:   16(float) Constant 1115684864
             238:      7(int) Constant 85
             236:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 237 21 33 238 12 56 20
             241:             TypeArray 16(float) 37
             242:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 37
243(gl_PerVertex):             TypeStruct 19(fvec4) 16(float) 241 241
             246:      7(int) Constant 1756
             244:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 21 33 37 246 12 12 13
             249:      7(int) Constant 1774
             247:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 248 18 33 37 249 12 12 13
             252:      7(int) Constant 1817
             250:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 252 12 12 13
             253:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 252 12 12 13
             254:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 255 37 33 238 12 36 255 12 13 244 247 250 253
             256:             TypeArray 243(gl_PerVertex) 10
             257:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 254 10
             258:             TypePointer Input 256
             259:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 257 37 12
      260(gl_in):    258(ptr) Variable Input
             261:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 262 257 33 238 12 36 262 260(gl_in) 112
             263:             TypePointer Input 125(int)
             264:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 127 37 12
265(gl_InvocationID):    263(ptr) Variable Input
             266:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 267 127 33 238 12 36 267 265(gl_InvocationID) 112
             269:             TypePointer Input 19(fvec4)
             270:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 37 12
             273:             TypeImage 16(float) 2D sampled format:Unknown
             276:      7(int) Constant 86
             278:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
             274:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 275 12 33 276 12 36 277 278 13
             279:             TypeSampledImage 273
             280:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 281 12 33 276 12 36 282 278 13
             283:             TypePointer UniformConstant 279
             284:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 280 12 12
285(samplerHeight):    283(ptr) Variable UniformConstant
             286:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 287 280 33 276 12 36 287 285(samplerHeight) 112
             290:             TypeArray 97(fvec2) 10
             291:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 98 10
             292:             TypePointer Input 290
             293:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 291 37 12
       294(inUV):    292(ptr) Variable Input
             295:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 296 291 33 276 12 36 296 294(inUV) 112
             297:             TypePointer Input 97(fvec2)
             298:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 37 12
             303:    125(int) Constant 4
             311:             TypePointer Function 125(int)
             312:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 127 23 12
             316:      7(int) Constant 89
             314:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 315 127 33 316 12 56 20
             333:      7(int) Constant 90
             334:    125(int) Constant 3
             336:             TypePointer Uniform 19(fvec4)
             337:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 38 12
             341:   16(float) Constant 1090519040
             346:    48(bool) ConstantFalse
             349:      7(int) Constant 92
             359:      7(int) Constant 95
             368:      7(int) Constant 100
             375:      7(int) Constant 102
             379:             TypeArray 16(float) 38
             380:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 38
             381:             TypePointer Output 379
             382:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 380 13 12
383(gl_TessLevelInner):    381(ptr) Variable Output
             386:      7(int) Constant 104
             384:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 385 380 33 386 12 36 385 383(gl_TessLevelInner) 112
             387:             TypePointer Output 16(float)
             388:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12
             394:      7(int) Constant 105
             395:             TypeArray 16(float) 20
             396:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 20
             397:             TypePointer Output 395
             398:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 396 13 12
399(gl_TessLevelOuter):    397(ptr) Variable Output
             402:      7(int) Constant 106
             400:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 401 396 33 402 12 36 401 399(gl_TessLevelOuter) 112
             407:      7(int) Constant 107
             408:    125(int) Constant 2
             411:      7(int) Constant 108
             414:      7(int) Constant 109
             419:      7(int) Constant 113
             428:      7(int) Constant 115
             438:      7(int) Constant 116
             448:      7(int) Constant 117
             458:      7(int) Constant 118
             467:      7(int) Constant 119
             475:      7(int) Constant 120
             485:      7(int) Constant 126
             488:      7(int) Constant 127
             491:      7(int) Constant 128
             494:      7(int) Constant 129
             497:      7(int) Constant 130
             500:      7(int) Constant 131
503(gl_PerVertex):             TypeStruct 19(fvec4) 16(float) 241 241
             505:      7(int) Constant 110
             504:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 21 33 37 505 12 12 13
             506:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 248 18 33 37 491 12 12 13
             508:      7(int) Constant 171
             507:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 508 12 12 13
             509:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 251 242 33 37 508 12 12 13
             511:      7(int) Constant 137
             510:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 255 37 33 511 12 36 255 12 13 504 506 507 509
             512:             TypeArray 503(gl_PerVertex) 20
             513:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 510 20
             514:             TypePointer Output 512
             515:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 513 13 12
     516(gl_out):    514(ptr) Variable Output
             517:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 518 513 33 511 12 36 518 516(gl_out) 112
             525:             TypePointer Output 19(fvec4)
             526:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 13 12
             528:             TypeArray 146(fvec3) 20
             529:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 147 20
             530:             TypePointer Output 528
             531:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 529 13 12
  532(outNormal):    530(ptr) Variable Output
             535:      7(int) Constant 138
             533:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 534 529 33 535 12 36 534 532(outNormal) 112
             538:             TypeArray 146(fvec3) 10
             539:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 147 10
             540:             TypePointer Input 538
             541:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 539 37 12
   542(inNormal):    540(ptr) Variable Input
             543:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 544 539 33 535 12 36 544 542(inNormal) 112
             546:             TypePointer Input 146(fvec3)
             547:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 147 37 12
             550:             TypePointer Output 146(fvec3)
             551:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 147 13 12
             553:             TypeArray 97(fvec2) 20
             554:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 98 20
             555:             TypePointer Output 553
             556:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 554 13 12
      557(outUV):    555(ptr) Variable Output
             560:      7(int) Constant 139
             558:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 559 554 33 560 12 36 559 557(outUV) 112
             566:             TypePointer Output 97(fvec2)
             567:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 13 12
        14(main):           4 Function None 5
              15:             Label
      424(param):     22(ptr) Variable Function
      430(param):     22(ptr) Variable Function
      435(param):     22(ptr) Variable Function
      440(param):     22(ptr) Variable Function
      445(param):     22(ptr) Variable Function
      450(param):     22(ptr) Variable Function
      455(param):     22(ptr) Variable Function
      460(param):     22(ptr) Variable Function
             364:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             365:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 60 60 12 12
             363:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 59 14(main)
             367:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 368 368 12 12
             366:    125(int) Load 265(gl_InvocationID)
             369:    48(bool) IEqual 366 141
                              SelectionMerge 371 None
                              BranchConditional 369 370 371
             370:               Label
             373:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             374:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 375 375 12 12
             372:    48(bool)   FunctionCall 53(frustumCheck()
             376:    48(bool)   LogicalNot 372
                                SelectionMerge 378 None
                                BranchConditional 376 377 415
             377:                 Label
             390:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             391:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 386 386 12 12
             389:    387(ptr)     AccessChain 383(gl_TessLevelInner) 141
                                  Store 389 148
             393:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 394 394 12 12
             392:    387(ptr)     AccessChain 383(gl_TessLevelInner) 128
                                  Store 392 148
             404:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 402 402 12 12
             403:    387(ptr)     AccessChain 399(gl_TessLevelOuter) 141
                                  Store 403 148
             406:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 407 407 12 12
             405:    387(ptr)     AccessChain 399(gl_TessLevelOuter) 128
                                  Store 405 148
             410:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 411 411 12 12
             409:    387(ptr)     AccessChain 399(gl_TessLevelOuter) 408
                                  Store 409 148
             413:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 414 414 12 12
             412:    387(ptr)     AccessChain 399(gl_TessLevelOuter) 334
                                  Store 412 148
                                  Branch 378
             415:                 Label
             417:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             418:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 419 419 12 12
             416:    217(ptr)     AccessChain 122(ubo) 222
             420:   16(float)     Load 416
             421:    48(bool)     FOrdGreaterThan 420 148
                                  SelectionMerge 423 None
                                  BranchConditional 421 422 481
             422:                   Label
             426:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             427:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 428 428 12 12
             425:    269(ptr)       AccessChain 260(gl_in) 334 141
             429:   19(fvec4)       Load 425
                                    Store 424(param) 429
             431:    269(ptr)       AccessChain 260(gl_in) 141 141
             432:   19(fvec4)       Load 431
                                    Store 430(param) 432
             433:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 424(param) 430(param)
             434:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 141
                                    Store 434 433
             437:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 438 438 12 12
             436:    269(ptr)       AccessChain 260(gl_in) 141 141
             439:   19(fvec4)       Load 436
                                    Store 435(param) 439
             441:    269(ptr)       AccessChain 260(gl_in) 128 141
             442:   19(fvec4)       Load 441
                                    Store 440(param) 442
             443:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 435(param) 440(param)
             444:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 128
                                    Store 444 443
             447:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 448 448 12 12
             446:    269(ptr)       AccessChain 260(gl_in) 128 141
             449:   19(fvec4)       Load 446
                                    Store 445(param) 449
             451:    269(ptr)       AccessChain 260(gl_in) 408 141
             452:   19(fvec4)       Load 451
                                    Store 450(param) 452
             453:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 445(param) 450(param)
             454:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 408
                                    Store 454 453
             457:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 458 458 12 12
             456:    269(ptr)       AccessChain 260(gl_in) 408 141
             459:   19(fvec4)       Load 456
                                    Store 455(param) 459
             461:    269(ptr)       AccessChain 260(gl_in) 334 141
             462:   19(fvec4)       Load 461
                                    Store 460(param) 462
             463:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 455(param) 460(param)
             464:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 334
                                    Store 464 463
             466:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 467 467 12 12
             465:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 141
             468:   16(float)       Load 465
             469:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 334
             470:   16(float)       Load 469
             471:   16(float)       ExtInst 3(GLSL.std.450) 46(FMix) 468 470 68
             472:    387(ptr)       AccessChain 383(gl_TessLevelInner) 141
                                    Store 472 471
             474:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 475 475 12 12
             473:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 408
             476:   16(float)       Load 473
             477:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 128
             478:   16(float)       Load 477
             479:   16(float)       ExtInst 3(GLSL.std.450) 46(FMix) 476 478 68
             480:    387(ptr)       AccessChain 383(gl_TessLevelInner) 128
                                    Store 480 479
                                    Branch 423
             481:                   Label
             483:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             484:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 485 485 12 12
             482:    387(ptr)       AccessChain 383(gl_TessLevelInner) 141
                                    Store 482 226
             487:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 488 488 12 12
             486:    387(ptr)       AccessChain 383(gl_TessLevelInner) 128
                                    Store 486 226
             490:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 491 491 12 12
             489:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 141
                                    Store 489 226
             493:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 494 494 12 12
             492:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 128
                                    Store 492 226
             496:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 497 497 12 12
             495:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 408
                                    Store 495 226
             499:           4       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 500 500 12 12
             498:    387(ptr)       AccessChain 399(gl_TessLevelOuter) 334
                                    Store 498 226
                                    Branch 423
             423:                 Label
             501:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
                                  Branch 378
             378:               Label
             502:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
                                Branch 371
             371:             Label
             520:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
             521:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 511 511 12 12
             519:    125(int) Load 265(gl_InvocationID)
             522:    125(int) Load 265(gl_InvocationID)
             523:    269(ptr) AccessChain 260(gl_in) 522 141
             524:   19(fvec4) Load 523
             527:    525(ptr) AccessChain 516(gl_out) 519 141
                              Store 527 524
             537:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 535 535 12 12
             536:    125(int) Load 265(gl_InvocationID)
             545:    125(int) Load 265(gl_InvocationID)
             548:    546(ptr) AccessChain 542(inNormal) 545
             549:  146(fvec3) Load 548
             552:    550(ptr) AccessChain 532(outNormal) 536
                              Store 552 549
             562:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 560 560 12 12
             561:    125(int) Load 265(gl_InvocationID)
             563:    125(int) Load 265(gl_InvocationID)
             564:    297(ptr) AccessChain 294(inUV) 563
             565:   97(fvec2) Load 564
             568:    566(ptr) AccessChain 557(outUV) 561
                              Store 568 565
                              Return
                              FunctionEnd
29(screenSpaceTessFactor(vf4;vf4;):   16(float) Function None 25
          27(p0):     22(ptr) FunctionParameter
          28(p1):     22(ptr) FunctionParameter
              30:             Label
    62(midPoint):     22(ptr) Variable Function
      75(radius):     73(ptr) Variable Function
          86(v0):     22(ptr) Variable Function
      135(clip0):     22(ptr) Variable Function
      156(clip1):     22(ptr) Variable Function
              43:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 32
              44:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 35 35 12 12
              41:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 39 27(p0) 42
              47:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 45 28(p1) 42
              61:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 32 29(screenSpaceTessFactor(vf4;vf4;)
              67:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 65 65 12 12
              66:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 63 62(midPoint) 42
              69:   19(fvec4) Load 27(p0)
              70:   19(fvec4) Load 28(p1)
              71:   19(fvec4) FAdd 69 70
              72:   19(fvec4) VectorTimesScalar 71 68
                              Store 62(midPoint) 72
              80:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 78 78 12 12
              79:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 76 75(radius) 42
              81:   19(fvec4) Load 27(p0)
              82:   19(fvec4) Load 28(p1)
              83:   16(float) ExtInst 3(GLSL.std.450) 67(Distance) 81 82
              85:   16(float) FDiv 83 84
                              Store 75(radius) 85
              91:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 89 89 12 12
              90:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 87 86(v0) 42
             131:    129(ptr) AccessChain 122(ubo) 128
             132:          92 Load 131
             133:   19(fvec4) Load 62(midPoint)
             134:   19(fvec4) MatrixTimesVector 132 133
                              Store 86(v0) 134
             140:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 138 138 12 12
             139:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 136 135(clip0) 42
             142:    129(ptr) AccessChain 122(ubo) 141
             143:          92 Load 142
             144:   19(fvec4) Load 86(v0)
             145:   16(float) Load 75(radius)
             150:   16(float) CompositeExtract 149 0
             151:   16(float) CompositeExtract 149 1
             152:   16(float) CompositeExtract 149 2
             153:   19(fvec4) CompositeConstruct 145 150 151 152
             154:   19(fvec4) FSub 144 153
             155:   19(fvec4) MatrixTimesVector 143 154
                              Store 135(clip0) 155
             161:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 159 159 12 12
             160:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 157 156(clip1) 42
             162:    129(ptr) AccessChain 122(ubo) 141
             163:          92 Load 162
             164:   19(fvec4) Load 86(v0)
             165:   16(float) Load 75(radius)
             166:   16(float) CompositeExtract 149 0
             167:   16(float) CompositeExtract 149 1
             168:   16(float) CompositeExtract 149 2
             169:   19(fvec4) CompositeConstruct 165 166 167 168
             170:   19(fvec4) FAdd 164 169
             171:   19(fvec4) MatrixTimesVector 163 170
                              Store 156(clip1) 171
             173:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 174 174 12 12
             172:     73(ptr) AccessChain 135(clip0) 13
             175:   16(float) Load 172
             176:   19(fvec4) Load 135(clip0)
             177:   19(fvec4) CompositeConstruct 175 175 175 175
             178:   19(fvec4) FDiv 176 177
                              Store 135(clip0) 178
             180:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 181 181 12 12
             179:     73(ptr) AccessChain 156(clip1) 13
             182:   16(float) Load 179
             183:   19(fvec4) Load 156(clip1)
             184:   19(fvec4) CompositeConstruct 182 182 182 182
             185:   19(fvec4) FDiv 183 184
                              Store 156(clip1) 185
             190:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 191 191 12 12
             189:    187(ptr) AccessChain 122(ubo) 186
             192:   97(fvec2) Load 189
             193:   19(fvec4) Load 135(clip0)
             194:   97(fvec2) VectorShuffle 193 193 0 1
             195:   97(fvec2) FMul 194 192
             196:     73(ptr) AccessChain 135(clip0) 12
             197:   16(float) CompositeExtract 195 0
                              Store 196 197
             198:     73(ptr) AccessChain 135(clip0) 37
             199:   16(float) CompositeExtract 195 1
                              Store 198 199
             201:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 202 202 12 12
             200:    187(ptr) AccessChain 122(ubo) 186
             203:   97(fvec2) Load 200
             204:   19(fvec4) Load 156(clip1)
             205:   97(fvec2) VectorShuffle 204 204 0 1
             206:   97(fvec2) FMul 205 203
             207:     73(ptr) AccessChain 156(clip1) 12
             208:   16(float) CompositeExtract 206 0
                              Store 207 208
             209:     73(ptr) AccessChain 156(clip1) 37
             210:   16(float) CompositeExtract 206 1
                              Store 209 210
             212:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 213 213 12 12
             211:   19(fvec4) Load 135(clip0)
             214:   19(fvec4) Load 156(clip1)
             215:   16(float) ExtInst 3(GLSL.std.450) 67(Distance) 211 214
             219:    217(ptr) AccessChain 122(ubo) 216
             220:   16(float) Load 219
             221:   16(float) FDiv 215 220
             223:    217(ptr) AccessChain 122(ubo) 222
             224:   16(float) Load 223
             225:   16(float) FMul 221 224
             228:   16(float) ExtInst 3(GLSL.std.450) 43(FClamp) 225 226 227
                              ReturnValue 228
                              FunctionEnd
53(frustumCheck():    48(bool) Function None 51
              54:             Label
        235(pos):     22(ptr) Variable Function
          313(i):    311(ptr) Variable Function
             233:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             234:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 57 57 12 12
             232:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 56 53(frustumCheck()
             240:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 238 238 12 12
             239:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 236 235(pos) 42
             268:    125(int) Load 265(gl_InvocationID)
             271:    269(ptr) AccessChain 260(gl_in) 268 141
             272:   19(fvec4) Load 271
                              Store 235(pos) 272
             289:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 276 276 12 12
             288:         279 Load 285(samplerHeight)
             299:    297(ptr) AccessChain 294(inUV) 141
             300:   97(fvec2) Load 299
             301:   19(fvec4) ImageSampleExplicitLod 288 300 Lod 148
             302:   16(float) CompositeExtract 301 0
             304:    217(ptr) AccessChain 122(ubo) 303
             305:   16(float) Load 304
             306:   16(float) FMul 302 305
             307:     73(ptr) AccessChain 235(pos) 37
             308:   16(float) Load 307
             309:   16(float) FSub 308 306
             310:     73(ptr) AccessChain 235(pos) 37
                              Store 310 309
             318:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
             317:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 314 313(i) 42
                              Store 313(i) 141
                              Branch 319
             319:             Label
             323:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             324:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
                              LoopMerge 321 322 None
                              Branch 325
             325:             Label
             327:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             328:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
             326:    125(int) Load 313(i)
             329:    48(bool) SLessThan 326 186
                              BranchConditional 329 320 321
             320:               Label
             331:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             332:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 333 333 12 12
             330:   19(fvec4)   Load 235(pos)
             335:    125(int)   Load 313(i)
             338:    336(ptr)   AccessChain 122(ubo) 334 335
             339:   19(fvec4)   Load 338
             340:   16(float)   Dot 330 339
             342:   16(float)   FAdd 340 341
             343:    48(bool)   FOrdLessThan 342 148
                                SelectionMerge 345 None
                                BranchConditional 343 344 345
             344:                 Label
             347:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             348:           4     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 349 349 12 12
                                  ReturnValue 346
             345:               Label
             352:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
                                Branch 322
             322:               Label
             354:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             355:           4   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 316 316 12 12
             353:    125(int)   Load 313(i)
             356:    125(int)   IAdd 353 128
                                Store 313(i) 356
                                Branch 319
             321:             Label
             357:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
             358:           4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 359 359 12 12
                              ReturnValue 94
                              FunctionEnd
