glslang-zig/Test/baseResults/spv.debuginfo.glsl.frag.out
Arcady Goldmints-Orlov 592aed9c20 Don't emit debug instructions before an OpPhi
Nonsemantic instructions aren't allowed before an OpPhi, so don't emit
line and debug scope instructions when the instruction being emitted is
an OpPhi.
2024-07-22 17:43:12 -04:00

1303 lines
76 KiB
Text

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