spv.debuginfo.glsl.frag // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 877 Capability Shader Capability ImageQuery Extension "SPV_KHR_non_semantic_info" 1: ExtInstImport "NonSemantic.Shader.DebugInfo.100" 3: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 14 "main" 493 546 ExecutionMode 14 OriginUpperLeft 2: String "spv.debuginfo.glsl.frag" 8: String "uint" 17: String "float" 39: String "textureProj" 42: 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 (binding = 1) uniform sampler2D samplerposition; layout (binding = 2) uniform sampler2D samplerNormal; layout (binding = 3) uniform sampler2D samplerAlbedo; layout (binding = 5) uniform sampler2DArray samplerShadowMap; layout (location = 0) in vec2 inUV; layout (location = 0) out vec4 outFragColor; #define LIGHT_COUNT 3 #define SHADOW_FACTOR 0.25 #define AMBIENT_LIGHT 0.1 #define USE_PCF int global_var = 0; struct Light { vec4 position; vec4 target; vec4 color; mat4 viewMatrix; }; layout (binding = 4) uniform UBO { vec4 viewPos; Light lights[LIGHT_COUNT]; int useShadows; int debugDisplayTarget; } ubo; float textureProj(vec4 P, float layer, vec2 offset) { float shadow = 1.0; vec4 shadowCoord = P / P.w; shadowCoord.st = shadowCoord.st * 0.5 + 0.5; if (shadowCoord.z > -1.0 && shadowCoord.z < 1.0) { float dist = texture(samplerShadowMap, vec3(shadowCoord.st + offset, layer)).r; if (shadowCoord.w > 0.0 && dist < shadowCoord.z) { shadow = SHADOW_FACTOR; } } return shadow; } float filterPCF(vec4 sc, float layer) { ivec2 texDim = textureSize(samplerShadowMap, 0).xy; float scale = 1.5; float dx = scale * 1.0 / float(texDim.x); float dy = scale * 1.0 / float(texDim.y); float shadowFactor = 0.0; int count = 0; int range = 1; for (int x = -range; x <= range; x++) { for (int y = -range; y <= range; y++) { shadowFactor += textureProj(sc, layer, vec2(dx*x, dy*y)); count++; } } return shadowFactor / count; } vec3 shadow(vec3 fragcolor, vec3 fragpos) { for(int i = 0; i < LIGHT_COUNT; ++i) { vec4 shadowClip = ubo.lights[i].viewMatrix * vec4(fragpos, 1.0); float shadowFactor; #ifdef USE_PCF shadowFactor= filterPCF(shadowClip, i); #else shadowFactor = textureProj(shadowClip, i, vec2(0.0)); #endif fragcolor *= shadowFactor; } return fragcolor; } void main() { // Get G-Buffer values vec3 fragPos = texture(samplerposition, inUV).rgb; vec3 normal = texture(samplerNormal, inUV).rgb; vec4 albedo = texture(samplerAlbedo, inUV); // Debug display if (ubo.debugDisplayTarget > 0) { switch (ubo.debugDisplayTarget) { case 1: outFragColor.rgb = shadow(vec3(1.0), fragPos).rgb; break; case 2: outFragColor.rgb = fragPos; break; case 3: outFragColor.rgb = normal; break; case 4: outFragColor.rgb = albedo.rgb; break; case 5: outFragColor.rgb = albedo.aaa; break; } outFragColor.a = 1.0; return; } // Ambient part vec3 fragcolor = albedo.rgb * AMBIENT_LIGHT; vec3 N = normalize(normal); for(int i = 0; i < LIGHT_COUNT; ++i) { // Vector to light vec3 L = ubo.lights[i].position.xyz - fragPos; // Distance from light to fragment position float dist = length(L); L = normalize(L); // Viewer to fragment vec3 V = ubo.viewPos.xyz - fragPos; V = normalize(V); float lightCosInnerAngle = cos(radians(15.0)); float lightCosOuterAngle = cos(radians(25.0)); float lightRange = 100.0; // Direction vector from source to target vec3 dir = normalize(ubo.lights[i].position.xyz - ubo.lights[i].target.xyz); // Dual cone spot light with smooth transition between inner and outer angle float cosDir = dot(L, dir); float spotEffect = smoothstep(lightCosOuterAngle, lightCosInnerAngle, cosDir); float heightAttenuation = smoothstep(lightRange, 0.0f, dist); // Diffuse lighting float NdotL = max(0.0, dot(N, L)); vec3 diff = vec3(NdotL); // Specular lighting vec3 R = reflect(-L, N); float NdotR = max(0.0, dot(R, V)); vec3 spec = vec3(pow(NdotR, 16.0) * albedo.a * 2.5); fragcolor += vec3((diff + spec) * spotEffect * heightAttenuation) * ubo.lights[i].color.rgb * albedo.rgb; } // Shadow calculations in a separate pass if (ubo.useShadows > 0) { fragcolor = shadow(fragcolor, fragPos); } outFragColor = vec4(fragcolor, 1.0); } " 47: String "P" 53: String "layer" 56: String "offset" 64: String "filterPCF" 68: String "sc" 84: String "shadow" 88: String "fragcolor" 93: String "fragpos" 95: String "main" 99: String "int" 105: String "global_var" 120: String "shadowCoord" 142: String "bool" 162: String "dist" 169: String "type.2d.image" 170: String "@type.2d.image" 174: String "type.sampled.image" 175: String "@type.sampled.image" 180: String "samplerShadowMap" 230: String "texDim" 242: String "scale" 249: String "dx" 263: String "dy" 275: String "shadowFactor" 281: String "count" 287: String "range" 294: String "x" 314: String "y" 379: String "i" 397: String "shadowClip" 407: String "color" 412: String "viewMatrix" 415: String "Light" 421: String "lights" 424: String "debugDisplayTarget" 428: String "UBO" 433: String "ubo" 477: String "fragPos" 489: String "samplerposition" 495: String "inUV" 501: String "normal" 507: String "samplerNormal" 514: String "albedo" 520: String "samplerAlbedo" 548: String "outFragColor" 648: String "N" 672: String "L" 698: String "V" 713: String "lightCosInnerAngle" 720: String "lightCosOuterAngle" 727: String "lightRange" 734: String "dir" 750: String "cosDir" 759: String "spotEffect" 769: String "heightAttenuation" 778: String "NdotL" 788: String "diff" 796: String "R" 806: String "NdotR" 816: String "spec" Name 14 "main" Name 37 "textureProj(vf4;f1;vf2;" Name 34 "P" Name 35 "layer" Name 36 "offset" Name 62 "filterPCF(vf4;f1;" Name 60 "sc" Name 61 "layer" Name 82 "shadow(vf3;vf3;" Name 80 "fragcolor" Name 81 "fragpos" Name 103 "global_var" Name 112 "shadow" Name 118 "shadowCoord" Name 160 "dist" Name 178 "samplerShadowMap" Name 228 "texDim" Name 240 "scale" Name 247 "dx" Name 261 "dy" Name 273 "shadowFactor" Name 279 "count" Name 285 "range" Name 292 "x" Name 312 "y" Name 345 "param" Name 347 "param" Name 349 "param" Name 377 "i" Name 395 "shadowClip" Name 405 "Light" MemberName 405(Light) 0 "position" MemberName 405(Light) 1 "target" MemberName 405(Light) 2 "color" MemberName 405(Light) 3 "viewMatrix" Name 418 "UBO" MemberName 418(UBO) 0 "viewPos" MemberName 418(UBO) 1 "lights" MemberName 418(UBO) 2 "useShadows" MemberName 418(UBO) 3 "debugDisplayTarget" Name 431 "ubo" Name 445 "shadowFactor" Name 452 "param" Name 454 "param" Name 475 "fragPos" Name 487 "samplerposition" Name 493 "inUV" Name 499 "normal" Name 505 "samplerNormal" Name 512 "albedo" Name 518 "samplerAlbedo" Name 546 "outFragColor" Name 551 "param" Name 554 "param" Name 636 "fragcolor" Name 646 "N" Name 654 "i" Name 670 "L" Name 685 "dist" Name 696 "V" Name 711 "lightCosInnerAngle" Name 718 "lightCosOuterAngle" Name 725 "lightRange" Name 732 "dir" Name 748 "cosDir" Name 757 "spotEffect" Name 767 "heightAttenuation" Name 776 "NdotL" Name 786 "diff" Name 794 "R" Name 804 "NdotR" Name 814 "spec" Name 861 "param" Name 866 "param" Decorate 178(samplerShadowMap) Binding 5 Decorate 178(samplerShadowMap) DescriptorSet 0 MemberDecorate 405(Light) 0 Offset 0 MemberDecorate 405(Light) 1 Offset 16 MemberDecorate 405(Light) 2 Offset 32 MemberDecorate 405(Light) 3 ColMajor MemberDecorate 405(Light) 3 MatrixStride 16 MemberDecorate 405(Light) 3 Offset 48 Decorate 416 ArrayStride 112 Decorate 418(UBO) Block MemberDecorate 418(UBO) 0 Offset 0 MemberDecorate 418(UBO) 1 Offset 16 MemberDecorate 418(UBO) 2 Offset 352 MemberDecorate 418(UBO) 3 Offset 356 Decorate 431(ubo) Binding 4 Decorate 431(ubo) DescriptorSet 0 Decorate 487(samplerposition) Binding 1 Decorate 487(samplerposition) DescriptorSet 0 Decorate 493(inUV) Location 0 Decorate 505(samplerNormal) Binding 2 Decorate 505(samplerNormal) DescriptorSet 0 Decorate 518(samplerAlbedo) Binding 3 Decorate 518(samplerAlbedo) DescriptorSet 0 Decorate 546(outFragColor) Location 0 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: TypePointer Function 16(float) 26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 23 12 27: TypeVector 16(float) 2 28: 7(int) Constant 2 29: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 28 30: TypePointer Function 27(fvec2) 31: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 29 23 12 32: TypeFunction 16(float) 22(ptr) 25(ptr) 30(ptr) 33: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 18 21 18 29 41: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 2 42 43: 7(int) Constant 59 45: 7(int) Constant 1 44: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 45 20 41 28 40: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 39 33 41 43 12 44 39 13 43 46: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 47 21 41 43 12 40 20 45 49: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression) 52: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 18 41 43 12 40 20 28 55: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 56 29 41 43 12 40 20 13 58: TypeFunction 16(float) 22(ptr) 25(ptr) 59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 18 21 18 66: 7(int) Constant 76 65: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 64 59 41 66 12 44 64 13 66 67: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 68 21 41 66 12 65 20 45 72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 18 41 66 12 65 20 28 74: TypeVector 16(float) 3 75: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13 76: TypePointer Function 74(fvec3) 77: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 75 23 12 78: TypeFunction 74(fvec3) 76(ptr) 76(ptr) 79: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 75 75 75 86: 7(int) Constant 99 85: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 84 79 41 86 12 44 84 13 86 87: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 88 75 41 86 12 85 20 45 92: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 93 75 41 86 12 85 20 28 97: 7(int) Constant 116 96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 95 6 41 97 12 44 95 13 97 98: TypeInt 32 1 100: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 99 10 20 12 101: TypePointer Private 98(int) 102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 100 11 12 103(global_var): 101(ptr) Variable Private 106: 7(int) Constant 41 107: 7(int) Constant 8 104: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 105 100 41 106 12 44 105 103(global_var) 107 108: 98(int) Constant 0 114: 7(int) Constant 61 113: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 18 41 114 12 40 20 117: 16(float) Constant 1065353216 121: 7(int) Constant 62 119: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 120 21 41 121 12 40 20 131: 7(int) Constant 63 133: 16(float) Constant 1056964608 141: TypeBool 143: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 142 10 28 12 146: 7(int) Constant 65 148: 16(float) Constant 3212836864 163: 7(int) Constant 67 161: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 162 18 41 163 12 40 20 167: TypeImage 16(float) 2D array sampled format:Unknown 171: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 168: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 169 12 41 163 12 44 170 171 13 172: TypeSampledImage 167 173: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 174 12 41 163 12 44 175 171 13 176: TypePointer UniformConstant 172 177: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 173 12 12 178(samplerShadowMap): 176(ptr) Variable UniformConstant 179: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 180 173 41 163 12 44 180 178(samplerShadowMap) 107 194: 7(int) Constant 68 196: 16(float) Constant 0 209: 16(float) Constant 1048576000 212: 7(int) Constant 70 219: 7(int) Constant 73 224: TypeVector 98(int) 2 225: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 100 28 226: TypePointer Function 224(ivec2) 227: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 225 23 12 231: 7(int) Constant 78 229: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 230 225 41 231 12 65 20 236: TypeVector 98(int) 3 237: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 100 13 243: 7(int) Constant 79 241: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 242 18 41 243 12 65 20 246: 16(float) Constant 1069547520 250: 7(int) Constant 80 248: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 249 18 41 250 12 65 20 255: TypePointer Function 98(int) 256: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 100 23 12 264: 7(int) Constant 81 262: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 263 18 41 264 12 65 20 276: 7(int) Constant 83 274: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 275 18 41 276 12 65 20 282: 7(int) Constant 84 280: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 281 100 41 282 12 65 20 288: 7(int) Constant 85 286: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 287 100 41 288 12 65 20 291: 98(int) Constant 1 295: 7(int) Constant 87 293: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 294 100 41 295 12 65 20 315: 7(int) Constant 89 313: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 314 100 41 315 12 65 20 336: 7(int) Constant 91 355: 7(int) Constant 92 369: 7(int) Constant 96 380: 7(int) Constant 100 378: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 379 100 41 380 12 85 20 393: 98(int) Constant 3 398: 7(int) Constant 102 396: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 397 21 41 398 12 85 20 402: TypeMatrix 19(fvec4) 4 404: 141(bool) ConstantTrue 403: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 21 20 404 405(Light): TypeStruct 19(fvec4) 19(fvec4) 19(fvec4) 402 408: 7(int) Constant 47 406: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 407 21 41 408 23 12 12 13 409: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 407 21 41 408 23 12 12 13 410: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 407 21 41 408 23 12 12 13 413: 7(int) Constant 48 411: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 412 403 41 413 23 12 12 13 414: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 415 45 41 398 12 44 415 12 13 406 409 410 411 416: TypeArray 405(Light) 13 417: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 414 13 418(UBO): TypeStruct 19(fvec4) 416 98(int) 98(int) 419: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 407 21 41 408 23 12 12 13 422: 7(int) Constant 54 420: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 421 417 41 422 107 12 12 13 425: 7(int) Constant 56 423: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 424 100 41 425 11 12 12 13 426: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 424 100 41 425 11 12 12 13 427: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 428 45 41 398 12 44 428 12 13 419 420 423 426 429: TypePointer Uniform 418(UBO) 430: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 427 28 12 431(ubo): 429(ptr) Variable Uniform 432: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 433 427 41 398 12 44 433 431(ubo) 107 435: TypePointer Uniform 402 436: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 403 28 12 447: 7(int) Constant 106 446: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 275 18 41 447 12 85 20 458: 7(int) Constant 111 468: 7(int) Constant 113 478: 7(int) Constant 119 476: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 477 75 41 478 12 96 20 481: TypeImage 16(float) 2D sampled format:Unknown 482: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 169 12 41 478 12 44 170 171 13 483: TypeSampledImage 481 484: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 174 12 41 478 12 44 175 171 13 485: TypePointer UniformConstant 483 486: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 484 12 12 487(samplerposition): 485(ptr) Variable UniformConstant 488: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 489 484 41 478 12 44 489 487(samplerposition) 107 491: TypePointer Input 27(fvec2) 492: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 29 45 12 493(inUV): 491(ptr) Variable Input 494: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 495 29 41 478 12 44 495 493(inUV) 107 502: 7(int) Constant 120 500: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 501 75 41 502 12 96 20 505(samplerNormal): 485(ptr) Variable UniformConstant 506: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 507 484 41 502 12 44 507 505(samplerNormal) 107 515: 7(int) Constant 121 513: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 514 21 41 515 12 96 20 518(samplerAlbedo): 485(ptr) Variable UniformConstant 519: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 520 484 41 515 12 44 520 518(samplerAlbedo) 107 524: TypePointer Uniform 98(int) 525: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 100 28 12 528: 7(int) Constant 124 536: 7(int) Constant 125 544: TypePointer Output 19(fvec4) 545: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 13 12 546(outFragColor): 544(ptr) Variable Output 549: 7(int) Constant 127 547: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 548 21 41 549 12 44 548 546(outFragColor) 107 550: 74(fvec3) ConstantComposite 117 117 117 557: TypePointer Output 16(float) 558: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12 566: 7(int) Constant 128 572: 7(int) Constant 130 580: 7(int) Constant 131 586: 7(int) Constant 133 594: 7(int) Constant 134 600: 7(int) Constant 136 609: 7(int) Constant 137 615: 7(int) Constant 139 624: 7(int) Constant 140 631: 7(int) Constant 142 633: 7(int) Constant 143 638: 7(int) Constant 147 637: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 88 75 41 638 12 96 20 644: 16(float) Constant 1036831949 649: 7(int) Constant 149 647: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 648 75 41 649 12 96 20 656: 7(int) Constant 151 655: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 379 100 41 656 12 96 20 673: 7(int) Constant 154 671: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 672 75 41 673 12 96 20 678: TypePointer Uniform 19(fvec4) 679: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 28 12 687: 7(int) Constant 156 686: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 162 18 41 687 12 96 20 694: 7(int) Constant 157 699: 7(int) Constant 160 697: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 698 75 41 699 12 96 20 709: 7(int) Constant 161 714: 7(int) Constant 163 712: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 713 18 41 714 12 96 20 717: 16(float) Constant 1064781546 721: 7(int) Constant 164 719: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 720 18 41 721 12 96 20 724: 16(float) Constant 1063781322 728: 7(int) Constant 165 726: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 727 18 41 728 12 96 20 731: 16(float) Constant 1120403456 735: 7(int) Constant 168 733: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 734 75 41 735 12 96 20 751: 7(int) Constant 171 749: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 750 18 41 751 12 96 20 760: 7(int) Constant 172 758: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 759 18 41 760 12 96 20 770: 7(int) Constant 173 768: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 769 18 41 770 12 96 20 779: 7(int) Constant 176 777: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 778 18 41 779 12 96 20 789: 7(int) Constant 177 787: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 788 75 41 789 12 96 20 797: 7(int) Constant 180 795: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 796 75 41 797 12 96 20 807: 7(int) Constant 181 805: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 806 18 41 807 12 96 20 817: 7(int) Constant 182 815: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 816 75 41 817 12 96 20 821: 16(float) Constant 1098907648 826: 16(float) Constant 1075838976 831: 7(int) Constant 184 839: 98(int) Constant 2 856: 7(int) Constant 188 865: 7(int) Constant 190 872: 7(int) Constant 193 14(main): 4 Function None 5 15: Label 475(fragPos): 76(ptr) Variable Function 499(normal): 76(ptr) Variable Function 512(albedo): 22(ptr) Variable Function 551(param): 76(ptr) Variable Function 554(param): 76(ptr) Variable Function 636(fragcolor): 76(ptr) Variable Function 646(N): 76(ptr) Variable Function 654(i): 255(ptr) Variable Function 670(L): 76(ptr) Variable Function 685(dist): 25(ptr) Variable Function 696(V): 76(ptr) Variable Function 711(lightCosInnerAngle): 25(ptr) Variable Function 718(lightCosOuterAngle): 25(ptr) Variable Function 725(lightRange): 25(ptr) Variable Function 732(dir): 76(ptr) Variable Function 748(cosDir): 25(ptr) Variable Function 757(spotEffect): 25(ptr) Variable Function 767(heightAttenuation): 25(ptr) Variable Function 776(NdotL): 25(ptr) Variable Function 786(diff): 76(ptr) Variable Function 794(R): 76(ptr) Variable Function 804(NdotR): 25(ptr) Variable Function 814(spec): 76(ptr) Variable Function 861(param): 76(ptr) Variable Function 866(param): 76(ptr) Variable Function 109: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44 110: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 106 106 12 12 Store 103(global_var) 108 473: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 474: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 97 97 12 12 472: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 96 14(main) 480: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 478 478 12 12 479: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 476 475(fragPos) 49 490: 483 Load 487(samplerposition) 496: 27(fvec2) Load 493(inUV) 497: 19(fvec4) ImageSampleImplicitLod 490 496 498: 74(fvec3) VectorShuffle 497 497 0 1 2 Store 475(fragPos) 498 504: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 502 502 12 12 503: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 500 499(normal) 49 508: 483 Load 505(samplerNormal) 509: 27(fvec2) Load 493(inUV) 510: 19(fvec4) ImageSampleImplicitLod 508 509 511: 74(fvec3) VectorShuffle 510 510 0 1 2 Store 499(normal) 511 517: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 515 515 12 12 516: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 513 512(albedo) 49 521: 483 Load 518(samplerAlbedo) 522: 27(fvec2) Load 493(inUV) 523: 19(fvec4) ImageSampleImplicitLod 521 522 Store 512(albedo) 523 527: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 528 528 12 12 526: 524(ptr) AccessChain 431(ubo) 393 529: 98(int) Load 526 530: 141(bool) SGreaterThan 529 108 SelectionMerge 532 None BranchConditional 530 531 532 531: Label 534: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 535: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 536 536 12 12 533: 524(ptr) AccessChain 431(ubo) 393 537: 98(int) Load 533 SelectionMerge 543 None Switch 537 543 case 1: 538 case 2: 539 case 3: 540 case 4: 541 case 5: 542 538: Label 552: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 553: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 549 549 12 12 Store 551(param) 550 555: 74(fvec3) Load 475(fragPos) Store 554(param) 555 556: 74(fvec3) FunctionCall 82(shadow(vf3;vf3;) 551(param) 554(param) 559: 557(ptr) AccessChain 546(outFragColor) 12 560: 16(float) CompositeExtract 556 0 Store 559 560 561: 557(ptr) AccessChain 546(outFragColor) 45 562: 16(float) CompositeExtract 556 1 Store 561 562 563: 557(ptr) AccessChain 546(outFragColor) 28 564: 16(float) CompositeExtract 556 2 Store 563 564 565: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 566 566 12 12 Branch 543 539: Label 570: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 571: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 572 572 12 12 569: 74(fvec3) Load 475(fragPos) 573: 557(ptr) AccessChain 546(outFragColor) 12 574: 16(float) CompositeExtract 569 0 Store 573 574 575: 557(ptr) AccessChain 546(outFragColor) 45 576: 16(float) CompositeExtract 569 1 Store 575 576 577: 557(ptr) AccessChain 546(outFragColor) 28 578: 16(float) CompositeExtract 569 2 Store 577 578 579: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 580 580 12 12 Branch 543 540: Label 584: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 585: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 586 586 12 12 583: 74(fvec3) Load 499(normal) 587: 557(ptr) AccessChain 546(outFragColor) 12 588: 16(float) CompositeExtract 583 0 Store 587 588 589: 557(ptr) AccessChain 546(outFragColor) 45 590: 16(float) CompositeExtract 583 1 Store 589 590 591: 557(ptr) AccessChain 546(outFragColor) 28 592: 16(float) CompositeExtract 583 2 Store 591 592 593: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 594 594 12 12 Branch 543 541: Label 598: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 599: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 600 600 12 12 597: 19(fvec4) Load 512(albedo) 601: 74(fvec3) VectorShuffle 597 597 0 1 2 602: 557(ptr) AccessChain 546(outFragColor) 12 603: 16(float) CompositeExtract 601 0 Store 602 603 604: 557(ptr) AccessChain 546(outFragColor) 45 605: 16(float) CompositeExtract 601 1 Store 604 605 606: 557(ptr) AccessChain 546(outFragColor) 28 607: 16(float) CompositeExtract 601 2 Store 606 607 608: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 609 609 12 12 Branch 543 542: Label 613: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 614: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 615 615 12 12 612: 19(fvec4) Load 512(albedo) 616: 74(fvec3) VectorShuffle 612 612 3 3 3 617: 557(ptr) AccessChain 546(outFragColor) 12 618: 16(float) CompositeExtract 616 0 Store 617 618 619: 557(ptr) AccessChain 546(outFragColor) 45 620: 16(float) CompositeExtract 616 1 Store 619 620 621: 557(ptr) AccessChain 546(outFragColor) 28 622: 16(float) CompositeExtract 616 2 Store 621 622 623: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 624 624 12 12 Branch 543 543: Label 629: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 630: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 631 631 12 12 628: 557(ptr) AccessChain 546(outFragColor) 13 Store 628 117 632: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 633 633 12 12 Return 532: Label 640: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 641: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 638 638 12 12 639: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 637 636(fragcolor) 49 642: 19(fvec4) Load 512(albedo) 643: 74(fvec3) VectorShuffle 642 642 0 1 2 645: 74(fvec3) VectorTimesScalar 643 644 Store 636(fragcolor) 645 651: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 649 649 12 12 650: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 647 646(N) 49 652: 74(fvec3) Load 499(normal) 653: 74(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 652 Store 646(N) 653 658: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 657: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 655 654(i) 49 Store 654(i) 108 Branch 659 659: Label 663: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 664: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 LoopMerge 661 662 None Branch 665 665: Label 667: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 668: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 666: 98(int) Load 654(i) 669: 141(bool) SLessThan 666 393 BranchConditional 669 660 661 660: Label 675: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 676: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 673 673 12 12 674: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 671 670(L) 49 677: 98(int) Load 654(i) 680: 678(ptr) AccessChain 431(ubo) 291 677 108 681: 19(fvec4) Load 680 682: 74(fvec3) VectorShuffle 681 681 0 1 2 683: 74(fvec3) Load 475(fragPos) 684: 74(fvec3) FSub 682 683 Store 670(L) 684 689: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 687 687 12 12 688: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 686 685(dist) 49 690: 74(fvec3) Load 670(L) 691: 16(float) ExtInst 3(GLSL.std.450) 66(Length) 690 Store 685(dist) 691 693: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 694 694 12 12 692: 74(fvec3) Load 670(L) 695: 74(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 692 Store 670(L) 695 701: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 699 699 12 12 700: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 697 696(V) 49 702: 678(ptr) AccessChain 431(ubo) 108 703: 19(fvec4) Load 702 704: 74(fvec3) VectorShuffle 703 703 0 1 2 705: 74(fvec3) Load 475(fragPos) 706: 74(fvec3) FSub 704 705 Store 696(V) 706 708: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 709 709 12 12 707: 74(fvec3) Load 696(V) 710: 74(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 707 Store 696(V) 710 716: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 714 714 12 12 715: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 712 711(lightCosInnerAngle) 49 Store 711(lightCosInnerAngle) 717 723: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 721 721 12 12 722: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 719 718(lightCosOuterAngle) 49 Store 718(lightCosOuterAngle) 724 730: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 728 728 12 12 729: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 726 725(lightRange) 49 Store 725(lightRange) 731 737: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 735 735 12 12 736: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 733 732(dir) 49 738: 98(int) Load 654(i) 739: 678(ptr) AccessChain 431(ubo) 291 738 108 740: 19(fvec4) Load 739 741: 74(fvec3) VectorShuffle 740 740 0 1 2 742: 98(int) Load 654(i) 743: 678(ptr) AccessChain 431(ubo) 291 742 291 744: 19(fvec4) Load 743 745: 74(fvec3) VectorShuffle 744 744 0 1 2 746: 74(fvec3) FSub 741 745 747: 74(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 746 Store 732(dir) 747 753: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 751 751 12 12 752: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 749 748(cosDir) 49 754: 74(fvec3) Load 670(L) 755: 74(fvec3) Load 732(dir) 756: 16(float) Dot 754 755 Store 748(cosDir) 756 762: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 760 760 12 12 761: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 758 757(spotEffect) 49 763: 16(float) Load 718(lightCosOuterAngle) 764: 16(float) Load 711(lightCosInnerAngle) 765: 16(float) Load 748(cosDir) 766: 16(float) ExtInst 3(GLSL.std.450) 49(SmoothStep) 763 764 765 Store 757(spotEffect) 766 772: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 770 770 12 12 771: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 768 767(heightAttenuation) 49 773: 16(float) Load 725(lightRange) 774: 16(float) Load 685(dist) 775: 16(float) ExtInst 3(GLSL.std.450) 49(SmoothStep) 773 196 774 Store 767(heightAttenuation) 775 781: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 779 779 12 12 780: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 777 776(NdotL) 49 782: 74(fvec3) Load 646(N) 783: 74(fvec3) Load 670(L) 784: 16(float) Dot 782 783 785: 16(float) ExtInst 3(GLSL.std.450) 40(FMax) 196 784 Store 776(NdotL) 785 791: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 789 789 12 12 790: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 787 786(diff) 49 792: 16(float) Load 776(NdotL) 793: 74(fvec3) CompositeConstruct 792 792 792 Store 786(diff) 793 799: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 797 797 12 12 798: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 795 794(R) 49 800: 74(fvec3) Load 670(L) 801: 74(fvec3) FNegate 800 802: 74(fvec3) Load 646(N) 803: 74(fvec3) ExtInst 3(GLSL.std.450) 71(Reflect) 801 802 Store 794(R) 803 809: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 807 807 12 12 808: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 805 804(NdotR) 49 810: 74(fvec3) Load 794(R) 811: 74(fvec3) Load 696(V) 812: 16(float) Dot 810 811 813: 16(float) ExtInst 3(GLSL.std.450) 40(FMax) 196 812 Store 804(NdotR) 813 819: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 817 817 12 12 818: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 815 814(spec) 49 820: 16(float) Load 804(NdotR) 822: 16(float) ExtInst 3(GLSL.std.450) 26(Pow) 820 821 823: 25(ptr) AccessChain 512(albedo) 13 824: 16(float) Load 823 825: 16(float) FMul 822 824 827: 16(float) FMul 825 826 828: 74(fvec3) CompositeConstruct 827 827 827 Store 814(spec) 828 830: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 831 831 12 12 829: 74(fvec3) Load 786(diff) 832: 74(fvec3) Load 814(spec) 833: 74(fvec3) FAdd 829 832 834: 16(float) Load 757(spotEffect) 835: 74(fvec3) VectorTimesScalar 833 834 836: 16(float) Load 767(heightAttenuation) 837: 74(fvec3) VectorTimesScalar 835 836 838: 98(int) Load 654(i) 840: 678(ptr) AccessChain 431(ubo) 291 838 839 841: 19(fvec4) Load 840 842: 74(fvec3) VectorShuffle 841 841 0 1 2 843: 74(fvec3) FMul 837 842 844: 19(fvec4) Load 512(albedo) 845: 74(fvec3) VectorShuffle 844 844 0 1 2 846: 74(fvec3) FMul 843 845 847: 74(fvec3) Load 636(fragcolor) 848: 74(fvec3) FAdd 847 846 Store 636(fragcolor) 848 Branch 662 662: Label 850: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 851: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 849: 98(int) Load 654(i) 852: 98(int) IAdd 849 291 Store 654(i) 852 Branch 659 661: Label 854: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 855: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 856 856 12 12 853: 524(ptr) AccessChain 431(ubo) 839 857: 98(int) Load 853 858: 141(bool) SGreaterThan 857 108 SelectionMerge 860 None BranchConditional 858 859 860 859: Label 863: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 864: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 865 865 12 12 862: 74(fvec3) Load 636(fragcolor) Store 861(param) 862 867: 74(fvec3) Load 475(fragPos) Store 866(param) 867 868: 74(fvec3) FunctionCall 82(shadow(vf3;vf3;) 861(param) 866(param) Store 636(fragcolor) 868 Branch 860 860: Label 870: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96 871: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 872 872 12 12 869: 74(fvec3) Load 636(fragcolor) 873: 16(float) CompositeExtract 869 0 874: 16(float) CompositeExtract 869 1 875: 16(float) CompositeExtract 869 2 876: 19(fvec4) CompositeConstruct 873 874 875 117 Store 546(outFragColor) 876 Return FunctionEnd 37(textureProj(vf4;f1;vf2;): 16(float) Function None 32 34(P): 22(ptr) FunctionParameter 35(layer): 25(ptr) FunctionParameter 36(offset): 30(ptr) FunctionParameter 38: Label 112(shadow): 25(ptr) Variable Function 118(shadowCoord): 22(ptr) Variable Function 160(dist): 25(ptr) Variable Function 50: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 43 43 12 12 48: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 46 34(P) 49 54: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 35(layer) 49 57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 55 36(offset) 49 111: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 40 37(textureProj(vf4;f1;vf2;) 116: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 114 114 12 12 115: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 113 112(shadow) 49 Store 112(shadow) 117 123: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 121 121 12 12 122: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 119 118(shadowCoord) 49 124: 19(fvec4) Load 34(P) 125: 25(ptr) AccessChain 34(P) 13 126: 16(float) Load 125 127: 19(fvec4) CompositeConstruct 126 126 126 126 128: 19(fvec4) FDiv 124 127 Store 118(shadowCoord) 128 130: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 131 131 12 12 129: 19(fvec4) Load 118(shadowCoord) 132: 27(fvec2) VectorShuffle 129 129 0 1 134: 27(fvec2) VectorTimesScalar 132 133 135: 27(fvec2) CompositeConstruct 133 133 136: 27(fvec2) FAdd 134 135 137: 25(ptr) AccessChain 118(shadowCoord) 12 138: 16(float) CompositeExtract 136 0 Store 137 138 139: 25(ptr) AccessChain 118(shadowCoord) 45 140: 16(float) CompositeExtract 136 1 Store 139 140 145: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 146 146 12 12 144: 25(ptr) AccessChain 118(shadowCoord) 28 147: 16(float) Load 144 149: 141(bool) FOrdGreaterThan 147 148 SelectionMerge 151 None BranchConditional 149 150 151 150: Label 153: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 154: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 146 146 12 12 152: 25(ptr) AccessChain 118(shadowCoord) 28 155: 16(float) Load 152 156: 141(bool) FOrdLessThan 155 117 Branch 151 151: Label 157: 141(bool) Phi 149 38 156 150 215: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 SelectionMerge 159 None BranchConditional 157 158 159 158: Label 165: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 166: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 163 163 12 12 164: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 161 160(dist) 49 181: 172 Load 178(samplerShadowMap) 182: 19(fvec4) Load 118(shadowCoord) 183: 27(fvec2) VectorShuffle 182 182 0 1 184: 27(fvec2) Load 36(offset) 185: 27(fvec2) FAdd 183 184 186: 16(float) Load 35(layer) 187: 16(float) CompositeExtract 185 0 188: 16(float) CompositeExtract 185 1 189: 74(fvec3) CompositeConstruct 187 188 186 190: 19(fvec4) ImageSampleImplicitLod 181 189 191: 16(float) CompositeExtract 190 0 Store 160(dist) 191 193: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 194 194 12 12 192: 25(ptr) AccessChain 118(shadowCoord) 13 195: 16(float) Load 192 197: 141(bool) FOrdGreaterThan 195 196 SelectionMerge 199 None BranchConditional 197 198 199 198: Label 201: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 202: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 194 194 12 12 200: 16(float) Load 160(dist) 203: 25(ptr) AccessChain 118(shadowCoord) 28 204: 16(float) Load 203 205: 141(bool) FOrdLessThan 200 204 Branch 199 199: Label 206: 141(bool) Phi 197 158 205 198 213: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 SelectionMerge 208 None BranchConditional 206 207 208 207: Label 210: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 211: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 212 212 12 12 Store 112(shadow) 209 Branch 208 208: Label 214: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 Branch 159 159: Label 217: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 218: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 219 219 12 12 216: 16(float) Load 112(shadow) ReturnValue 216 FunctionEnd 62(filterPCF(vf4;f1;): 16(float) Function None 58 60(sc): 22(ptr) FunctionParameter 61(layer): 25(ptr) FunctionParameter 63: Label 228(texDim): 226(ptr) Variable Function 240(scale): 25(ptr) Variable Function 247(dx): 25(ptr) Variable Function 261(dy): 25(ptr) Variable Function 273(shadowFactor): 25(ptr) Variable Function 279(count): 255(ptr) Variable Function 285(range): 255(ptr) Variable Function 292(x): 255(ptr) Variable Function 312(y): 255(ptr) Variable Function 345(param): 22(ptr) Variable Function 347(param): 25(ptr) Variable Function 349(param): 30(ptr) Variable Function 70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 66 66 12 12 69: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 67 60(sc) 49 73: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 72 61(layer) 49 223: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 65 62(filterPCF(vf4;f1;) 233: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 231 231 12 12 232: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 229 228(texDim) 49 234: 172 Load 178(samplerShadowMap) 235: 167 Image 234 238: 236(ivec3) ImageQuerySizeLod 235 108 239: 224(ivec2) VectorShuffle 238 238 0 1 Store 228(texDim) 239 245: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 243 243 12 12 244: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 241 240(scale) 49 Store 240(scale) 246 252: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 250 250 12 12 251: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 248 247(dx) 49 253: 16(float) Load 240(scale) 254: 16(float) FMul 253 117 257: 255(ptr) AccessChain 228(texDim) 12 258: 98(int) Load 257 259: 16(float) ConvertSToF 258 260: 16(float) FDiv 254 259 Store 247(dx) 260 266: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 264 264 12 12 265: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 262 261(dy) 49 267: 16(float) Load 240(scale) 268: 16(float) FMul 267 117 269: 255(ptr) AccessChain 228(texDim) 45 270: 98(int) Load 269 271: 16(float) ConvertSToF 270 272: 16(float) FDiv 268 271 Store 261(dy) 272 278: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 276 276 12 12 277: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 274 273(shadowFactor) 49 Store 273(shadowFactor) 196 284: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 282 282 12 12 283: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 280 279(count) 49 Store 279(count) 108 290: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 288 288 12 12 289: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 286 285(range) 49 Store 285(range) 291 297: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 295 295 12 12 296: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 293 292(x) 49 298: 98(int) Load 285(range) 299: 98(int) SNegate 298 Store 292(x) 299 Branch 300 300: Label 304: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 305: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 295 295 12 12 LoopMerge 302 303 None Branch 306 306: Label 308: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 309: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 295 295 12 12 307: 98(int) Load 292(x) 310: 98(int) Load 285(range) 311: 141(bool) SLessThanEqual 307 310 BranchConditional 311 301 302 301: Label 317: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 318: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 315 315 12 12 316: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 313 312(y) 49 319: 98(int) Load 285(range) 320: 98(int) SNegate 319 Store 312(y) 320 Branch 321 321: Label 325: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 326: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 315 315 12 12 LoopMerge 323 324 None Branch 327 327: Label 329: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 330: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 315 315 12 12 328: 98(int) Load 312(y) 331: 98(int) Load 285(range) 332: 141(bool) SLessThanEqual 328 331 BranchConditional 332 322 323 322: Label 334: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 335: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 336 336 12 12 333: 16(float) Load 247(dx) 337: 98(int) Load 292(x) 338: 16(float) ConvertSToF 337 339: 16(float) FMul 333 338 340: 16(float) Load 261(dy) 341: 98(int) Load 312(y) 342: 16(float) ConvertSToF 341 343: 16(float) FMul 340 342 344: 27(fvec2) CompositeConstruct 339 343 346: 19(fvec4) Load 60(sc) Store 345(param) 346 348: 16(float) Load 61(layer) Store 347(param) 348 Store 349(param) 344 350: 16(float) FunctionCall 37(textureProj(vf4;f1;vf2;) 345(param) 347(param) 349(param) 351: 16(float) Load 273(shadowFactor) 352: 16(float) FAdd 351 350 Store 273(shadowFactor) 352 354: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 355 355 12 12 353: 98(int) Load 279(count) 356: 98(int) IAdd 353 291 Store 279(count) 356 Branch 324 324: Label 358: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 359: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 315 315 12 12 357: 98(int) Load 312(y) 360: 98(int) IAdd 357 291 Store 312(y) 360 Branch 321 323: Label 361: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 Branch 303 303: Label 363: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 364: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 295 295 12 12 362: 98(int) Load 292(x) 365: 98(int) IAdd 362 291 Store 292(x) 365 Branch 300 302: Label 367: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 368: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 369 369 12 12 366: 16(float) Load 273(shadowFactor) 370: 98(int) Load 279(count) 371: 16(float) ConvertSToF 370 372: 16(float) FDiv 366 371 ReturnValue 372 FunctionEnd 82(shadow(vf3;vf3;): 74(fvec3) Function None 78 80(fragcolor): 76(ptr) FunctionParameter 81(fragpos): 76(ptr) FunctionParameter 83: Label 377(i): 255(ptr) Variable Function 395(shadowClip): 22(ptr) Variable Function 445(shadowFactor): 25(ptr) Variable Function 452(param): 22(ptr) Variable Function 454(param): 25(ptr) Variable Function 90: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85 91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 86 86 12 12 89: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 87 80(fragcolor) 49 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 92 81(fragpos) 49 376: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 85 82(shadow(vf3;vf3;) 382: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 380 380 12 12 381: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 378 377(i) 49 Store 377(i) 108 Branch 383 383: Label 387: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85 388: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 380 380 12 12 LoopMerge 385 386 None Branch 389 389: Label 391: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85 392: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 380 380 12 12 390: 98(int) Load 377(i) 394: 141(bool) SLessThan 390 393 BranchConditional 394 384 385 384: Label 400: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85 401: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 398 398 12 12 399: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 396 395(shadowClip) 49 434: 98(int) Load 377(i) 437: 435(ptr) AccessChain 431(ubo) 291 434 393 438: 402 Load 437 439: 74(fvec3) Load 81(fragpos) 440: 16(float) CompositeExtract 439 0 441: 16(float) CompositeExtract 439 1 442: 16(float) CompositeExtract 439 2 443: 19(fvec4) CompositeConstruct 440 441 442 117 444: 19(fvec4) MatrixTimesVector 438 443 Store 395(shadowClip) 444 449: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 447 447 12 12 448: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 446 445(shadowFactor) 49 450: 98(int) Load 377(i) 451: 16(float) ConvertSToF 450 453: 19(fvec4) Load 395(shadowClip) Store 452(param) 453 Store 454(param) 451 455: 16(float) FunctionCall 62(filterPCF(vf4;f1;) 452(param) 454(param) Store 445(shadowFactor) 455 457: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 458 458 12 12 456: 16(float) Load 445(shadowFactor) 459: 74(fvec3) Load 80(fragcolor) 460: 74(fvec3) VectorTimesScalar 459 456 Store 80(fragcolor) 460 Branch 386 386: Label 462: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85 463: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 380 380 12 12 461: 98(int) Load 377(i) 464: 98(int) IAdd 461 291 Store 377(i) 464 Branch 383 385: Label 466: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85 467: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 468 468 12 12 465: 74(fvec3) Load 80(fragcolor) ReturnValue 465 FunctionEnd