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