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