spv.debuginfo.glsl.frag Validation failed // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 881 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" 83: String "shadow" 87: String "fragcolor" 91: String "fragpos" 93: String "main" 97: String "int" 103: String "global_var" 118: String "shadowCoord" 140: String "bool" 161: String "dist" 168: String "type.2d.image" 169: String "@type.2d.image" 173: String "type.sampled.image" 174: String "@type.sampled.image" 179: String "samplerShadowMap" 229: String "texDim" 241: String "scale" 248: String "dx" 262: String "dy" 274: String "shadowFactor" 280: String "count" 286: String "range" 293: String "x" 313: 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 81 "shadow(vf3;vf3;" Name 79 "fragcolor" Name 80 "fragpos" Name 101 "global_var" Name 110 "shadow" Name 116 "shadowCoord" Name 159 "dist" Name 177 "samplerShadowMap" Name 227 "texDim" Name 239 "scale" Name 246 "dx" Name 260 "dy" Name 272 "shadowFactor" Name 278 "count" Name 284 "range" Name 291 "x" Name 311 "y" Name 344 "param" Name 346 "param" Name 348 "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 865 "param" Name 870 "param" Decorate 177(samplerShadowMap) DescriptorSet 0 Decorate 177(samplerShadowMap) Binding 5 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 Offset 48 MemberDecorate 405(Light) 3 MatrixStride 16 Decorate 416 ArrayStride 112 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 418(UBO) Block Decorate 431(ubo) DescriptorSet 0 Decorate 431(ubo) Binding 4 Decorate 487(samplerposition) DescriptorSet 0 Decorate 487(samplerposition) Binding 1 Decorate 493(inUV) Location 0 Decorate 505(samplerNormal) DescriptorSet 0 Decorate 505(samplerNormal) Binding 2 Decorate 518(samplerAlbedo) DescriptorSet 0 Decorate 518(samplerAlbedo) Binding 3 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 71: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 18 41 66 12 65 20 28 73: TypeVector 16(float) 3 74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13 75: TypePointer Function 73(fvec3) 76: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 74 23 12 77: TypeFunction 73(fvec3) 75(ptr) 75(ptr) 78: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 74 74 74 85: 7(int) Constant 99 84: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 83 78 41 85 12 44 83 13 85 86: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 87 74 41 85 12 84 20 45 90: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 91 74 41 85 12 84 20 28 95: 7(int) Constant 116 94: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 93 6 41 95 12 44 93 13 95 96: TypeInt 32 1 98: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 97 10 20 12 99: TypePointer Private 96(int) 100: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 11 12 101(global_var): 99(ptr) Variable Private 104: 7(int) Constant 41 105: 7(int) Constant 8 102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 103 98 41 104 12 44 103 101(global_var) 105 106: 96(int) Constant 0 112: 7(int) Constant 61 111: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 83 18 41 112 12 40 20 115: 16(float) Constant 1065353216 119: 7(int) Constant 62 117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 118 21 41 119 12 40 20 129: 7(int) Constant 63 131: 16(float) Constant 1056964608 139: TypeBool 141: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 140 10 28 12 144: 7(int) Constant 65 146: 16(float) Constant 3212836864 162: 7(int) Constant 67 160: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 161 18 41 162 12 40 20 166: TypeImage 16(float) 2D array sampled format:Unknown 170: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone) 167: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 168 12 41 162 12 44 169 170 13 171: TypeSampledImage 166 172: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 173 12 41 162 12 44 174 170 13 175: TypePointer UniformConstant 171 176: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 172 12 12 177(samplerShadowMap): 175(ptr) Variable UniformConstant 178: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 179 172 41 162 12 44 179 177(samplerShadowMap) 105 193: 7(int) Constant 68 195: 16(float) Constant 0 209: 16(float) Constant 1048576000 212: 7(int) Constant 70 217: 7(int) Constant 73 223: TypeVector 96(int) 2 224: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 98 28 225: TypePointer Function 223(ivec2) 226: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 224 23 12 230: 7(int) Constant 78 228: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 229 224 41 230 12 65 20 235: TypeVector 96(int) 3 236: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 98 13 242: 7(int) Constant 79 240: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 241 18 41 242 12 65 20 245: 16(float) Constant 1069547520 249: 7(int) Constant 80 247: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 248 18 41 249 12 65 20 254: TypePointer Function 96(int) 255: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 23 12 263: 7(int) Constant 81 261: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 262 18 41 263 12 65 20 275: 7(int) Constant 83 273: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 274 18 41 275 12 65 20 281: 7(int) Constant 84 279: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 280 98 41 281 12 65 20 287: 7(int) Constant 85 285: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 286 98 41 287 12 65 20 290: 96(int) Constant 1 294: 7(int) Constant 87 292: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 293 98 41 294 12 65 20 314: 7(int) Constant 89 312: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 313 98 41 314 12 65 20 335: 7(int) Constant 91 354: 7(int) Constant 92 368: 7(int) Constant 96 380: 7(int) Constant 100 378: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 379 98 41 380 12 84 20 393: 96(int) Constant 3 398: 7(int) Constant 102 396: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 397 21 41 398 12 84 20 402: TypeMatrix 19(fvec4) 4 404: 139(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 96(int) 96(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 105 12 12 13 425: 7(int) Constant 56 423: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 424 98 41 425 11 12 12 13 426: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 424 98 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) 105 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) 274 18 41 447 12 84 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 74 41 478 12 94 20 481: TypeImage 16(float) 2D sampled format:Unknown 482: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 168 12 41 478 12 44 169 170 13 483: TypeSampledImage 481 484: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 173 12 41 478 12 44 174 170 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) 105 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) 105 502: 7(int) Constant 120 500: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 501 74 41 502 12 94 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) 105 515: 7(int) Constant 121 513: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 514 21 41 515 12 94 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) 105 524: TypePointer Uniform 96(int) 525: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 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) 105 550: 73(fvec3) ConstantComposite 115 115 115 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) 87 74 41 638 12 94 20 644: 16(float) Constant 1036831949 649: 7(int) Constant 149 647: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 648 74 41 649 12 94 20 656: 7(int) Constant 151 655: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 379 98 41 656 12 94 20 673: 7(int) Constant 154 671: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 672 74 41 673 12 94 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) 161 18 41 687 12 94 20 694: 7(int) Constant 157 699: 7(int) Constant 160 697: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 698 74 41 699 12 94 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 94 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 94 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 94 20 731: 16(float) Constant 1120403456 735: 7(int) Constant 168 733: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 734 74 41 735 12 94 20 751: 7(int) Constant 171 749: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 750 18 41 751 12 94 20 760: 7(int) Constant 172 758: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 759 18 41 760 12 94 20 770: 7(int) Constant 173 768: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 769 18 41 770 12 94 20 779: 7(int) Constant 176 777: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 778 18 41 779 12 94 20 789: 7(int) Constant 177 787: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 788 74 41 789 12 94 20 797: 7(int) Constant 180 795: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 796 74 41 797 12 94 20 807: 7(int) Constant 181 805: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 806 18 41 807 12 94 20 817: 7(int) Constant 182 815: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 816 74 41 817 12 94 20 821: 16(float) Constant 1098907648 826: 16(float) Constant 1075838976 831: 7(int) Constant 184 843: 96(int) Constant 2 860: 7(int) Constant 188 869: 7(int) Constant 190 876: 7(int) Constant 193 14(main): 4 Function None 5 15: Label 475(fragPos): 75(ptr) Variable Function 499(normal): 75(ptr) Variable Function 512(albedo): 22(ptr) Variable Function 551(param): 75(ptr) Variable Function 554(param): 75(ptr) Variable Function 636(fragcolor): 75(ptr) Variable Function 646(N): 75(ptr) Variable Function 654(i): 254(ptr) Variable Function 670(L): 75(ptr) Variable Function 685(dist): 25(ptr) Variable Function 696(V): 75(ptr) Variable Function 711(lightCosInnerAngle): 25(ptr) Variable Function 718(lightCosOuterAngle): 25(ptr) Variable Function 725(lightRange): 25(ptr) Variable Function 732(dir): 75(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): 75(ptr) Variable Function 794(R): 75(ptr) Variable Function 804(NdotR): 25(ptr) Variable Function 814(spec): 75(ptr) Variable Function 865(param): 75(ptr) Variable Function 870(param): 75(ptr) Variable Function 107: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44 108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 104 104 12 12 Store 101(global_var) 106 473: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 474: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 95 95 12 12 472: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 94 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: 73(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: 73(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: 96(int) Load 526 530: 139(bool) SGreaterThan 529 106 SelectionMerge 532 None BranchConditional 530 531 532 531: Label 534: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 535: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 536 536 12 12 533: 524(ptr) AccessChain 431(ubo) 393 537: 96(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) 94 553: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 549 549 12 12 Store 551(param) 550 555: 73(fvec3) Load 475(fragPos) Store 554(param) 555 556: 73(fvec3) FunctionCall 81(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) 94 571: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 572 572 12 12 569: 73(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) 94 585: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 586 586 12 12 583: 73(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) 94 599: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 600 600 12 12 597: 19(fvec4) Load 512(albedo) 601: 73(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) 94 614: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 615 615 12 12 612: 19(fvec4) Load 512(albedo) 616: 73(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) 94 630: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 631 631 12 12 628: 557(ptr) AccessChain 546(outFragColor) 13 Store 628 115 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) 94 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: 73(fvec3) VectorShuffle 642 642 0 1 2 645: 73(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: 73(fvec3) Load 499(normal) 653: 73(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) 106 Branch 659 659: Label 663: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 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) 94 668: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 666: 96(int) Load 654(i) 669: 139(bool) SLessThan 666 393 BranchConditional 669 660 661 660: Label 675: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 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: 96(int) Load 654(i) 680: 678(ptr) AccessChain 431(ubo) 290 677 106 681: 19(fvec4) Load 680 682: 73(fvec3) VectorShuffle 681 681 0 1 2 683: 73(fvec3) Load 475(fragPos) 684: 73(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: 73(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: 73(fvec3) Load 670(L) 695: 73(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) 106 703: 19(fvec4) Load 702 704: 73(fvec3) VectorShuffle 703 703 0 1 2 705: 73(fvec3) Load 475(fragPos) 706: 73(fvec3) FSub 704 705 Store 696(V) 706 708: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 709 709 12 12 707: 73(fvec3) Load 696(V) 710: 73(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: 96(int) Load 654(i) 739: 678(ptr) AccessChain 431(ubo) 290 738 106 740: 19(fvec4) Load 739 741: 73(fvec3) VectorShuffle 740 740 0 1 2 742: 96(int) Load 654(i) 743: 678(ptr) AccessChain 431(ubo) 290 742 290 744: 19(fvec4) Load 743 745: 73(fvec3) VectorShuffle 744 744 0 1 2 746: 73(fvec3) FSub 741 745 747: 73(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: 73(fvec3) Load 670(L) 755: 73(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 195 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: 73(fvec3) Load 646(N) 783: 73(fvec3) Load 670(L) 784: 16(float) Dot 782 783 785: 16(float) ExtInst 3(GLSL.std.450) 40(FMax) 195 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: 73(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: 73(fvec3) Load 670(L) 801: 73(fvec3) FNegate 800 802: 73(fvec3) Load 646(N) 803: 73(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: 73(fvec3) Load 794(R) 811: 73(fvec3) Load 696(V) 812: 16(float) Dot 810 811 813: 16(float) ExtInst 3(GLSL.std.450) 40(FMax) 195 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: 73(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: 73(fvec3) Load 786(diff) 832: 73(fvec3) Load 814(spec) 833: 73(fvec3) FAdd 829 832 834: 16(float) Load 757(spotEffect) 835: 73(fvec3) VectorTimesScalar 833 834 836: 16(float) Load 767(heightAttenuation) 837: 73(fvec3) VectorTimesScalar 835 836 838: 16(float) CompositeExtract 837 0 839: 16(float) CompositeExtract 837 1 840: 16(float) CompositeExtract 837 2 841: 73(fvec3) CompositeConstruct 838 839 840 842: 96(int) Load 654(i) 844: 678(ptr) AccessChain 431(ubo) 290 842 843 845: 19(fvec4) Load 844 846: 73(fvec3) VectorShuffle 845 845 0 1 2 847: 73(fvec3) FMul 841 846 848: 19(fvec4) Load 512(albedo) 849: 73(fvec3) VectorShuffle 848 848 0 1 2 850: 73(fvec3) FMul 847 849 851: 73(fvec3) Load 636(fragcolor) 852: 73(fvec3) FAdd 851 850 Store 636(fragcolor) 852 Branch 662 662: Label 854: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 855: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 853: 96(int) Load 654(i) 856: 96(int) IAdd 853 290 Store 654(i) 856 Branch 659 661: Label 858: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 859: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 860 860 12 12 857: 524(ptr) AccessChain 431(ubo) 843 861: 96(int) Load 857 862: 139(bool) SGreaterThan 861 106 SelectionMerge 864 None BranchConditional 862 863 864 863: Label 867: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 868: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 869 869 12 12 866: 73(fvec3) Load 636(fragcolor) Store 865(param) 866 871: 73(fvec3) Load 475(fragPos) Store 870(param) 871 872: 73(fvec3) FunctionCall 81(shadow(vf3;vf3;) 865(param) 870(param) Store 636(fragcolor) 872 Branch 864 864: Label 874: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 875: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 876 876 12 12 873: 73(fvec3) Load 636(fragcolor) 877: 16(float) CompositeExtract 873 0 878: 16(float) CompositeExtract 873 1 879: 16(float) CompositeExtract 873 2 880: 19(fvec4) CompositeConstruct 877 878 879 115 Store 546(outFragColor) 880 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 110(shadow): 25(ptr) Variable Function 116(shadowCoord): 22(ptr) Variable Function 159(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 109: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 40 37(textureProj(vf4;f1;vf2;) 114: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 112 112 12 12 113: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 111 110(shadow) 49 Store 110(shadow) 115 121: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 119 119 12 12 120: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 117 116(shadowCoord) 49 122: 19(fvec4) Load 34(P) 123: 25(ptr) AccessChain 34(P) 13 124: 16(float) Load 123 125: 19(fvec4) CompositeConstruct 124 124 124 124 126: 19(fvec4) FDiv 122 125 Store 116(shadowCoord) 126 128: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 129 129 12 12 127: 19(fvec4) Load 116(shadowCoord) 130: 27(fvec2) VectorShuffle 127 127 0 1 132: 27(fvec2) VectorTimesScalar 130 131 133: 27(fvec2) CompositeConstruct 131 131 134: 27(fvec2) FAdd 132 133 135: 25(ptr) AccessChain 116(shadowCoord) 12 136: 16(float) CompositeExtract 134 0 Store 135 136 137: 25(ptr) AccessChain 116(shadowCoord) 45 138: 16(float) CompositeExtract 134 1 Store 137 138 143: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 144 144 12 12 142: 25(ptr) AccessChain 116(shadowCoord) 28 145: 16(float) Load 142 147: 139(bool) FOrdGreaterThan 145 146 SelectionMerge 149 None BranchConditional 147 148 149 148: Label 151: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 152: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 144 144 12 12 150: 25(ptr) AccessChain 116(shadowCoord) 28 153: 16(float) Load 150 154: 139(bool) FOrdLessThan 153 115 Branch 149 149: Label 156: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 155: 139(bool) Phi 147 38 154 148 SelectionMerge 158 None BranchConditional 155 157 158 157: Label 164: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 165: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 162 162 12 12 163: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 160 159(dist) 49 180: 171 Load 177(samplerShadowMap) 181: 19(fvec4) Load 116(shadowCoord) 182: 27(fvec2) VectorShuffle 181 181 0 1 183: 27(fvec2) Load 36(offset) 184: 27(fvec2) FAdd 182 183 185: 16(float) Load 35(layer) 186: 16(float) CompositeExtract 184 0 187: 16(float) CompositeExtract 184 1 188: 73(fvec3) CompositeConstruct 186 187 185 189: 19(fvec4) ImageSampleImplicitLod 180 188 190: 16(float) CompositeExtract 189 0 Store 159(dist) 190 192: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 193 193 12 12 191: 25(ptr) AccessChain 116(shadowCoord) 13 194: 16(float) Load 191 196: 139(bool) FOrdGreaterThan 194 195 SelectionMerge 198 None BranchConditional 196 197 198 197: Label 200: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 201: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 193 193 12 12 199: 16(float) Load 159(dist) 202: 25(ptr) AccessChain 116(shadowCoord) 28 203: 16(float) Load 202 204: 139(bool) FOrdLessThan 199 203 Branch 198 198: Label 206: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 205: 139(bool) Phi 196 157 204 197 SelectionMerge 208 None BranchConditional 205 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 110(shadow) 209 Branch 208 208: Label 213: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 Branch 158 158: Label 215: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40 216: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 217 217 12 12 214: 16(float) Load 110(shadow) ReturnValue 214 FunctionEnd 62(filterPCF(vf4;f1;): 16(float) Function None 58 60(sc): 22(ptr) FunctionParameter 61(layer): 25(ptr) FunctionParameter 63: Label 227(texDim): 225(ptr) Variable Function 239(scale): 25(ptr) Variable Function 246(dx): 25(ptr) Variable Function 260(dy): 25(ptr) Variable Function 272(shadowFactor): 25(ptr) Variable Function 278(count): 254(ptr) Variable Function 284(range): 254(ptr) Variable Function 291(x): 254(ptr) Variable Function 311(y): 254(ptr) Variable Function 344(param): 22(ptr) Variable Function 346(param): 25(ptr) Variable Function 348(param): 30(ptr) Variable Function 70: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 69: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 67 60(sc) 49 72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 71 61(layer) 49 222: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 66 66 12 12 221: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 65 62(filterPCF(vf4;f1;) 232: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 230 230 12 12 231: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 228 227(texDim) 49 233: 171 Load 177(samplerShadowMap) 234: 166 Image 233 237: 235(ivec3) ImageQuerySizeLod 234 106 238: 223(ivec2) VectorShuffle 237 237 0 1 Store 227(texDim) 238 244: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 242 242 12 12 243: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 240 239(scale) 49 Store 239(scale) 245 251: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 249 249 12 12 250: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 247 246(dx) 49 252: 16(float) Load 239(scale) 253: 16(float) FMul 252 115 256: 254(ptr) AccessChain 227(texDim) 12 257: 96(int) Load 256 258: 16(float) ConvertSToF 257 259: 16(float) FDiv 253 258 Store 246(dx) 259 265: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 263 263 12 12 264: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 261 260(dy) 49 266: 16(float) Load 239(scale) 267: 16(float) FMul 266 115 268: 254(ptr) AccessChain 227(texDim) 45 269: 96(int) Load 268 270: 16(float) ConvertSToF 269 271: 16(float) FDiv 267 270 Store 260(dy) 271 277: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 275 275 12 12 276: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 273 272(shadowFactor) 49 Store 272(shadowFactor) 195 283: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 281 281 12 12 282: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 279 278(count) 49 Store 278(count) 106 289: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 287 287 12 12 288: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 285 284(range) 49 Store 284(range) 290 296: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 294 294 12 12 295: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 292 291(x) 49 297: 96(int) Load 284(range) 298: 96(int) SNegate 297 Store 291(x) 298 Branch 299 299: Label 303: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 304: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 294 294 12 12 LoopMerge 301 302 None Branch 305 305: Label 307: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 308: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 294 294 12 12 306: 96(int) Load 291(x) 309: 96(int) Load 284(range) 310: 139(bool) SLessThanEqual 306 309 BranchConditional 310 300 301 300: Label 316: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 317: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 314 314 12 12 315: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 312 311(y) 49 318: 96(int) Load 284(range) 319: 96(int) SNegate 318 Store 311(y) 319 Branch 320 320: Label 324: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 325: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 314 314 12 12 LoopMerge 322 323 None Branch 326 326: Label 328: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 329: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 314 314 12 12 327: 96(int) Load 311(y) 330: 96(int) Load 284(range) 331: 139(bool) SLessThanEqual 327 330 BranchConditional 331 321 322 321: Label 333: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 334: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 335 335 12 12 332: 16(float) Load 246(dx) 336: 96(int) Load 291(x) 337: 16(float) ConvertSToF 336 338: 16(float) FMul 332 337 339: 16(float) Load 260(dy) 340: 96(int) Load 311(y) 341: 16(float) ConvertSToF 340 342: 16(float) FMul 339 341 343: 27(fvec2) CompositeConstruct 338 342 345: 19(fvec4) Load 60(sc) Store 344(param) 345 347: 16(float) Load 61(layer) Store 346(param) 347 Store 348(param) 343 349: 16(float) FunctionCall 37(textureProj(vf4;f1;vf2;) 344(param) 346(param) 348(param) 350: 16(float) Load 272(shadowFactor) 351: 16(float) FAdd 350 349 Store 272(shadowFactor) 351 353: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 354 354 12 12 352: 96(int) Load 278(count) 355: 96(int) IAdd 352 290 Store 278(count) 355 Branch 323 323: Label 357: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 358: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 314 314 12 12 356: 96(int) Load 311(y) 359: 96(int) IAdd 356 290 Store 311(y) 359 Branch 320 322: Label 360: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 Branch 302 302: Label 362: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 363: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 294 294 12 12 361: 96(int) Load 291(x) 364: 96(int) IAdd 361 290 Store 291(x) 364 Branch 299 301: Label 366: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65 367: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 368 368 12 12 365: 16(float) Load 272(shadowFactor) 369: 96(int) Load 278(count) 370: 16(float) ConvertSToF 369 371: 16(float) FDiv 365 370 ReturnValue 371 FunctionEnd 81(shadow(vf3;vf3;): 73(fvec3) Function None 77 79(fragcolor): 75(ptr) FunctionParameter 80(fragpos): 75(ptr) FunctionParameter 82: Label 377(i): 254(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 89: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 84 88: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 86 79(fragcolor) 49 92: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 90 80(fragpos) 49 376: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 85 85 12 12 375: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 84 81(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) 106 Branch 383 383: Label 387: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 84 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) 84 392: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 380 380 12 12 390: 96(int) Load 377(i) 394: 139(bool) SLessThan 390 393 BranchConditional 394 384 385 384: Label 400: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 84 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: 96(int) Load 377(i) 437: 435(ptr) AccessChain 431(ubo) 290 434 393 438: 402 Load 437 439: 73(fvec3) Load 80(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 115 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: 96(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: 73(fvec3) Load 79(fragcolor) 460: 73(fvec3) VectorTimesScalar 459 456 Store 79(fragcolor) 460 Branch 386 386: Label 462: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 84 463: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 380 380 12 12 461: 96(int) Load 377(i) 464: 96(int) IAdd 461 290 Store 377(i) 464 Branch 383 385: Label 466: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 84 467: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 468 468 12 12 465: 73(fvec3) Load 79(fragcolor) ReturnValue 465 FunctionEnd