diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2018-03-07 10:38:37 -0800 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2018-03-07 10:38:37 -0800 |
commit | 54c24ef232b5fc4b9ffaa460fd95b62a031a2b37 (patch) | |
tree | bf601bd7cbebb1bd6918d4cc86658bffce139be1 | |
parent | 1aa1e4b1cc669b184d4e0b1d28fe7832e1ae650b (diff) |
slow-fs.shader_test - takes a bit to compile on i965arb_get_program_binary
-rw-r--r-- | slow-fs.shader_test | 2030 |
1 files changed, 2030 insertions, 0 deletions
diff --git a/slow-fs.shader_test b/slow-fs.shader_test new file mode 100644 index 000000000..d51fe267d --- /dev/null +++ b/slow-fs.shader_test @@ -0,0 +1,2030 @@ +[require] +GLSL >= 4.50 +#GL_ARB_separate_shader_objects +#SSO ENABLED + +[vertex shader] +#version 450 core + +in vec4 piglit_vertex; +layout(location = 1) out idx_Varying1 { sample vec4 v; } v1; + +void main() +{ + gl_Position = piglit_vertex; +} + +[fragment shader] +#version 450 core +// ps_5_0 +// Checksum: c5a8da7c_bdc31ae6_e959a85b_aad569ac +// Name: ADCA822F_B7774260_SkinLighting_PS.PS + +sample in vec4 gl_FragCoord; +vec4 v0 = vec4(gl_FragCoord.xyz, 1.0 / gl_FragCoord.w); +layout(location = 1) in idx_Varying1 { sample vec4 v; } v1; +layout(location = 0) out vec4 o0; +//layout(location = 1) out vec4 o1; +ivec4 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27; + +// Uniform buffer declarations (dcl_constant_buffer) + +layout (std140) uniform cb_ps0 { vec4 cb0[31]; } idx_uniforms0_ps; + +layout (std140) uniform cb_ps12 { vec4 cb12[1]; } idx_uniforms12_ps; + + +// Sampler/resource pairs + +uniform sampler2DMS resourceSamplerPair_0_ps; // res4, s-1 + +uniform sampler2DMS resourceSamplerPair_1_ps; // res5, s-1 + +uniform sampler2DMS resourceSamplerPair_2_ps; // res6, s-1 + +uniform samplerBuffer resourceSamplerPair_3_ps; // res2, s-1 + +uniform samplerBuffer resourceSamplerPair_4_ps; // res3, s-1 + +uniform samplerBuffer resourceSamplerPair_5_ps; // res1, s-1 + +uniform sampler2D resourceSamplerPair_6_ps; // res0, s0 + + +void Initialise() +{ +} + + +uvec4 movc(in uvec4 src0, in uvec4 src1, in uvec4 src2) +{ + return mix(src2, src1, bvec4(src0)); +} + +uvec3 movc(in uvec3 src0, in uvec3 src1, in uvec3 src2) +{ + return mix(src2, src1, bvec3(src0)); +} + +uvec2 movc(in uvec2 src0, in uvec2 src1, in uvec2 src2) +{ + return mix(src2, src1, bvec2(src0)); +} + +uint movc(in uint src0, in uint src1, in uint src2) +{ + return mix(src2, src1, bool(src0)); +} + +float saturate(float rhs) +{ + return clamp(rhs, 0.0, 1.0); +} + +vec2 saturate(vec2 rhs) +{ + return clamp(rhs, 0.0, 1.0); +} + +vec3 saturate(vec3 rhs) +{ + return clamp(rhs, 0.0, 1.0); +} + +vec4 saturate(vec4 rhs) +{ + return clamp(rhs, 0.0, 1.0); +} + +int saturate(int rhs) +{ + return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0)); +} + +ivec2 saturate(ivec2 rhs) +{ + return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0)); +} + +ivec3 saturate(ivec3 rhs) +{ + return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0)); +} + +ivec4 saturate(ivec4 rhs) +{ + return floatBitsToInt(clamp(intBitsToFloat(rhs), 0.0, 1.0)); +} + +uint saturate(uint rhs) +{ + return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0)); +} + +uvec2 saturate(uvec2 rhs) +{ + return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0)); +} + +uvec3 saturate(uvec3 rhs) +{ + return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0)); +} + +uvec4 saturate(uvec4 rhs) +{ + return floatBitsToUint(clamp(uintBitsToFloat(rhs), 0.0, 1.0)); +} + +void main() +{ + Initialise(); + r0.xy = ivec2(v0.xy); + r0.zw = ivec2(uvec2(0x00000000, 0x00000000)); + r1 = floatBitsToInt((texelFetch(resourceSamplerPair_0_ps, r0.xy, int(0)))); + r2.xy = floatBitsToInt(((texelFetch(resourceSamplerPair_1_ps, r0.xy, int(0)))).xy); + r1.yz = floatBitsToInt(intBitsToFloat(r1.zy) * vec2(255.000000f, 15.9375000f)); + r2.z = floatBitsToInt(floor(intBitsToFloat(r1.z))); + r3.x = floatBitsToInt(fma(intBitsToFloat(r1.x), float(4080.00000f), intBitsToFloat(r2.z))); + r1.x = floatBitsToInt(fract(intBitsToFloat(r1.z))); + r3.y = floatBitsToInt(fma(intBitsToFloat(r1.x), float(4096.00000f), intBitsToFloat(r1.y))); + r1.xy = floatBitsToInt(fma(intBitsToFloat(r3.xy), vec2(0.000488519785f, 0.000488519785f), vec2(-1.00000000f, -1.00000000f))); + r1.xy = floatBitsToInt(max(intBitsToFloat(r1.xy), vec2(-1.00000000f, -1.00000000f))); + r1.xy = floatBitsToInt(min(intBitsToFloat(r1.xy), vec2(1.00000000f, 1.00000000f))); + r3.xyz = floatBitsToInt(-abs(intBitsToFloat(r1.xyx)) + vec3(1.00000000f, 1.00000000f, 1.00000000f)); + r4.z = floatBitsToInt(-abs(intBitsToFloat(r1.y)) + intBitsToFloat(r3.x)); + r1.z = intBitsToFloat(r4.z) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r2.zw = mix ( ivec2(0x00000000),ivec2(0xffffffff),bvec2(greaterThanEqual(intBitsToFloat(r1.xy), vec2(0.00000000f, 0.00000000f)))); + r2.zw = ivec2(movc(uvec2(r2.zw), uvec2(0x3f800000, 0x3f800000), uvec2(0xbf800000, 0xbf800000))); + r2.zw = floatBitsToInt(intBitsToFloat(r2.zw) * intBitsToFloat(r3.yz)); + r4.xy = ivec2(movc(uvec2(r1.zz), uvec2(r2.zw), uvec2(r1.xy))); + r1.x = floatBitsToInt(dot(intBitsToFloat(r4.xyz), intBitsToFloat(r4.xyz))); + r1.x = floatBitsToInt(inversesqrt(intBitsToFloat(r1.x))); + r1.xyz = floatBitsToInt(intBitsToFloat(r1.xxx) * intBitsToFloat(r4.xyz)); + r2.y = floatBitsToInt(min(intBitsToFloat(r2.y), float(0.999899983f))); + r2.z = floatBitsToInt(dot(-v1.v.xyz, -v1.v.xyz)); + r2.z = floatBitsToInt(inversesqrt(intBitsToFloat(r2.z))); + r3.xyz = floatBitsToInt(intBitsToFloat(r2.zzz) * -v1.v.xyz); + r2.w = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r3.xyz)))); + r3.w = int(floatBitsToUint(idx_uniforms12_ps.cb12[0].y) >> uint(0x00000010)); + r4.x = int(floatBitsToUint(idx_uniforms12_ps.cb12[0].y) & uint(0x0000ffff)); + r4.x = int(min(uint(r4.x), uint(0x00000020))); + r0.x = floatBitsToInt(((texelFetch(resourceSamplerPair_2_ps, r0.xy, int(uint(gl_SampleID))))).x); + r0.x = floatBitsToInt(fma(-intBitsToFloat(r0.x), intBitsToFloat(r0.x), float(1.00000000f))); + r0.x = floatBitsToInt(fma(-idx_uniforms0_ps.cb0[30].z, intBitsToFloat(r0.x), float(1.00000000f))); + r0.y = floatBitsToInt(-intBitsToFloat(r2.y) + float(1.00000000f)); + r0.y = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r0.y)); + r0.z = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r0.y)); + r0.z = floatBitsToInt(float(2.00000000f) / intBitsToFloat(r0.z)); + r0.z = floatBitsToInt(intBitsToFloat(r0.z) + float(-2.00000000f)); + r0.z = floatBitsToInt(max(intBitsToFloat(r0.z), float(1.00000000f))); + r0.w = floatBitsToInt(intBitsToFloat(r0.z) + float(2.00000000f)); + r2.y = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r2.w)); + r4.y = floatBitsToInt(-intBitsToFloat(r2.w) + float(1.00000000f)); + r0.yw = floatBitsToInt(intBitsToFloat(r0.yw) * vec2(0.349999994f, 0.500000000f)); + r0.y = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r0.y)); + r0.y = floatBitsToInt(float(2.00000000f) / intBitsToFloat(r0.y)); + r0.y = floatBitsToInt(intBitsToFloat(r0.y) + float(-2.00000000f)); + r0.y = floatBitsToInt(max(intBitsToFloat(r0.y), float(1.00000000f))); + r4.z = floatBitsToInt(intBitsToFloat(r0.y) + float(2.00000000f)); + r4.z = floatBitsToInt(intBitsToFloat(r4.z) * float(0.500000000f)); + r4.w = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r4.y)); + r5 = ivec4(uvec4(0x00000000, 0x00000000, 0x00000000, 0x00000000)); + while (true) + { + r6.x = uint(r5.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000); + if (uint(r6.x) != uint(0)) + break; + r6.x = r3.w + r5.w; + r6.x = r6.x << int(2); + r6.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r6.x) / 4u + 0u)).x); + r6.yz = floatBitsToInt(vec2(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000210) / 16)).xy)); + r6.y = r6.y != int(1) ? int(0xffffffff) : int(0x00000000); + if (uint(r6.y) != uint(0)) + { + break; + } + r6.y = int(uint(r6.z) & uint(0x00000002)); + if (uint(r6.y) != uint(0)) + { + r6.y = r5.w + int(1); + r5.w = r6.y; + continue; + } + r7 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000030) / 16)).xyzw)); + r6.yzw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000040) / 16)).xyz)); + r8.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000050) / 16)).xyz)); + r9.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000060) / 16)).xyz)); + r10.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000070) / 16)).xyz)); + r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x000000a0) / 16)).xyz)); + r12 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000140) / 16)).xyzw)); + r13 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000150) / 16)).xyzw)); + r14 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000160) / 16)).xyzw)); + r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000170) / 16)).xyzw)); + r16.xy = floatBitsToInt(vec2(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000204) / 16)).yz)); + r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r6.x) * 55u + uint(0x00000320) / 16)).xyzw)); + r6.x = uint(r17.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000); + if (uint(r6.x) != uint(0)) + { + r6.x = int(uint(r16.y) & uint(0x00000001)); + if (uint(r6.x) != uint(0)) + { + r18.x = r12.x; + r18.y = r13.x; + r18.z = r14.x; + r18.w = r15.x; + r18.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r19.x = r12.y; + r19.y = r13.y; + r19.z = r14.y; + r19.w = r15.y; + r18.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r19))); + r19.x = r12.z; + r19.y = r13.z; + r19.z = r14.z; + r19.w = r15.z; + r18.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r19))); + r15.x = r12.w; + r15.y = r13.w; + r15.z = r14.w; + r6.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r15))); + r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) / intBitsToFloat(r6.xxx)); + r19.xyz = saturate(floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r18.xyz), -intBitsToFloat(r8.xyz)))); + r18.xyz = saturate(floatBitsToInt(fma(intBitsToFloat(r9.xyz), intBitsToFloat(r18.xyz), -intBitsToFloat(r6.yzw)))); + r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) + intBitsToFloat(r19.xyz)); + r6.x = floatBitsToInt(dot(intBitsToFloat(r18.xyz), intBitsToFloat(r18.xyz))); + r6.x = floatBitsToInt(sqrt(intBitsToFloat(r6.x))); + r6.x = floatBitsToInt(min(intBitsToFloat(r6.x), float(1.00000000f))); + r6.x = floatBitsToInt(-intBitsToFloat(r6.x) + float(1.00000000f)); + r7.xyz = floatBitsToInt(intBitsToFloat(r6.xxx) * intBitsToFloat(r7.xyz)); + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000000) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000010) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000020) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000030) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000080) / 16)).xyzw)); + r23.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x00000090) / 16)).xyz)); + r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.x) * 11u + uint(0x000000a0) / 16)).xyzw)); + r25.x = r18.x; + r25.y = r19.x; + r25.z = r20.x; + r25.w = r21.x; + r25.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r26.x = r18.y; + r26.y = r19.y; + r26.z = r20.y; + r26.w = r21.y; + r25.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r26.x = r18.z; + r26.y = r19.z; + r26.z = r20.z; + r26.w = r21.z; + r25.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r21.x = r18.w; + r21.y = r19.w; + r21.z = r20.w; + r6.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r21))); + r18.xyz = floatBitsToInt(intBitsToFloat(r25.xyz) / intBitsToFloat(r6.xxx)); + r19.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) + -v1.v.xyz); + r6.x = floatBitsToInt(dot(intBitsToFloat(r19.xyz), intBitsToFloat(r19.xyz))); + r6.x = floatBitsToInt(sqrt(intBitsToFloat(r6.x))); + r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), intBitsToFloat(r24.x), intBitsToFloat(r24.y))); + r6.x = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r6.x)); + r6.x = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r6.x), intBitsToFloat(r18.z))); + r18.xy = saturate(r18.xy); + r16.zw = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw))); + r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw); + r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), float(2.00000000f), float(-1.00000000f))); + r8.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000); + r9.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r8.w = -r8.w + r9.w; + r8.w = floatBitsToInt(float(r8.w)); + r6.x = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r24.w)); + r6.x = floatBitsToInt(intBitsToFloat(r6.x) * float(1.44269502f)); + r6.x = floatBitsToInt(exp2(intBitsToFloat(r6.x))); + r9.w = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r8.w)); + r10.w = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r9.w)); + r10.w = floatBitsToInt(intBitsToFloat(r10.w) * float(0.00999999978f)); + r10.w = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r10.w)); + r11.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r16.z)); + r16.z = floatBitsToInt(fma(-intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.w))); + r10.w = floatBitsToInt(max(intBitsToFloat(r10.w), intBitsToFloat(r16.z))); + r6.x = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r6.x), -intBitsToFloat(r11.w))); + r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), intBitsToFloat(r6.x), intBitsToFloat(r10.w))); + r6.x = floatBitsToInt(intBitsToFloat(r10.w) / intBitsToFloat(r6.x)); + r6.x = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r6.x)); + r8.w = floatBitsToInt(-intBitsToFloat(r16.x) + float(1.00000000f)); + r6.x = saturate(floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r8.w))); + r9.w = intBitsToFloat(r11.w) >= intBitsToFloat(r9.w) ? int(0xffffffff) : int(0x00000000); + r6.x = int(movc(uint(r9.w), uint(0x3f800000), uint(r6.x))); + r18.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r17.yzw), uvec3(0x00000020, 0x00000020, 0x00000020)))); + if (uint(r18.x) != uint(0)) + { + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000000) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000010) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000020) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000030) / 16)).xyzw)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000080) / 16)).xyzw)); + r24.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x00000090) / 16)).xyz)); + r25 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.y) * 11u + uint(0x000000a0) / 16)).xyzw)); + r26.x = r19.x; + r26.y = r20.x; + r26.z = r21.x; + r26.w = r22.x; + r26.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r27.x = r19.y; + r27.y = r20.y; + r27.z = r21.y; + r27.w = r22.y; + r26.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r27))); + r27.x = r19.z; + r27.y = r20.z; + r27.z = r21.z; + r27.w = r22.z; + r26.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r27))); + r22.x = r19.w; + r22.y = r20.w; + r22.z = r21.w; + r9.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r19.xyz = floatBitsToInt(intBitsToFloat(r26.xyz) / intBitsToFloat(r9.www)); + r20.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) + -v1.v.xyz); + r9.w = floatBitsToInt(dot(intBitsToFloat(r20.xyz), intBitsToFloat(r20.xyz))); + r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r25.x), intBitsToFloat(r25.y))); + r9.w = floatBitsToInt(-intBitsToFloat(r19.z) + intBitsToFloat(r9.w)); + r9.w = floatBitsToInt(fma(intBitsToFloat(r25.z), intBitsToFloat(r9.w), intBitsToFloat(r19.z))); + r19.xy = saturate(r19.xy); + r16.zw = floatBitsToInt(fma(intBitsToFloat(r19.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw))); + r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), float(2.00000000f), float(-1.00000000f))); + r10.w = float(0.00000000f) < intBitsToFloat(r25.w) ? int(0xffffffff) : int(0x00000000); + r11.w = intBitsToFloat(r25.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r10.w = -r10.w + r11.w; + r10.w = floatBitsToInt(float(r10.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r25.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f)); + r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w))); + r11.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r10.w)); + r17.x = floatBitsToInt(intBitsToFloat(r25.w) * intBitsToFloat(r11.w)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) * float(0.00999999978f)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x)); + r16.z = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r16.z)); + r16.w = floatBitsToInt(fma(-intBitsToFloat(r16.z), intBitsToFloat(r16.z), intBitsToFloat(r16.w))); + r16.w = floatBitsToInt(max(intBitsToFloat(r17.x), intBitsToFloat(r16.w))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r9.w), -intBitsToFloat(r16.z))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r9.w), intBitsToFloat(r16.w))); + r9.w = floatBitsToInt(intBitsToFloat(r16.w) / intBitsToFloat(r9.w)); + r9.w = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r9.w)); + r9.w = saturate(floatBitsToInt(intBitsToFloat(r9.w) / intBitsToFloat(r8.w))); + r10.w = intBitsToFloat(r16.z) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000); + r9.w = int(movc(uint(r10.w), uint(0x3f800000), uint(r9.w))); + } + else + { + r9.w = int(uint(0x3f800000)); + } + r6.x = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r9.w)); + if (uint(r18.y) != uint(0)) + { + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000000) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000010) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000020) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000030) / 16)).xyzw)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000080) / 16)).xyzw)); + r18.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x00000090) / 16)).xyz)); + r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.z) * 11u + uint(0x000000a0) / 16)).xyzw)); + r25.x = r19.x; + r25.y = r20.x; + r25.z = r21.x; + r25.w = r22.x; + r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r19.y; + r25.y = r20.y; + r25.z = r21.y; + r25.w = r22.y; + r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r19.z; + r25.y = r20.z; + r25.z = r21.z; + r25.w = r22.z; + r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r22.x = r19.w; + r22.y = r20.w; + r22.z = r21.w; + r9.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r17.xyz = floatBitsToInt(intBitsToFloat(r17.xyz) / intBitsToFloat(r9.www)); + r18.xyw = floatBitsToInt(intBitsToFloat(r18.xyw) + -v1.v.xyz); + r9.w = floatBitsToInt(dot(intBitsToFloat(r18.xyw), intBitsToFloat(r18.xyw))); + r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r24.x), intBitsToFloat(r24.y))); + r9.w = floatBitsToInt(-intBitsToFloat(r17.z) + intBitsToFloat(r9.w)); + r9.w = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r9.w), intBitsToFloat(r17.z))); + r17.xy = saturate(r17.xy); + r16.zw = floatBitsToInt(fma(intBitsToFloat(r17.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw))); + r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), float(2.00000000f), float(-1.00000000f))); + r10.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000); + r11.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r10.w = -r10.w + r11.w; + r10.w = floatBitsToInt(float(r10.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r24.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f)); + r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w))); + r11.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r10.w)); + r17.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r11.w)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) * float(0.00999999978f)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x)); + r16.z = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r16.z)); + r16.w = floatBitsToInt(fma(-intBitsToFloat(r16.z), intBitsToFloat(r16.z), intBitsToFloat(r16.w))); + r16.w = floatBitsToInt(max(intBitsToFloat(r17.x), intBitsToFloat(r16.w))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r9.w), -intBitsToFloat(r16.z))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r9.w), intBitsToFloat(r16.w))); + r9.w = floatBitsToInt(intBitsToFloat(r16.w) / intBitsToFloat(r9.w)); + r9.w = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r9.w)); + r9.w = saturate(floatBitsToInt(intBitsToFloat(r9.w) / intBitsToFloat(r8.w))); + r10.w = intBitsToFloat(r16.z) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000); + r9.w = int(movc(uint(r10.w), uint(0x3f800000), uint(r9.w))); + } + else + { + r9.w = int(uint(0x3f800000)); + } + r6.x = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r9.w)); + if (uint(r18.z) != uint(0)) + { + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000000) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000010) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000020) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000030) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000080) / 16)).xyzw)); + r17.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x00000090) / 16)).xyz)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r17.w) * 11u + uint(0x000000a0) / 16)).xyzw)); + r24.x = r18.x; + r24.y = r19.x; + r24.z = r20.x; + r24.w = r21.x; + r24.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r24))); + r25.x = r18.y; + r25.y = r19.y; + r25.z = r20.y; + r25.w = r21.y; + r24.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r18.z; + r25.y = r19.z; + r25.z = r20.z; + r25.w = r21.z; + r24.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r21.x = r18.w; + r21.y = r19.w; + r21.z = r20.w; + r9.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r21))); + r18.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) / intBitsToFloat(r9.www)); + r17.xyz = floatBitsToInt(intBitsToFloat(r17.xyz) + -v1.v.xyz); + r9.w = floatBitsToInt(dot(intBitsToFloat(r17.xyz), intBitsToFloat(r17.xyz))); + r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r23.x), intBitsToFloat(r23.y))); + r9.w = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r9.w)); + r9.w = floatBitsToInt(fma(intBitsToFloat(r23.z), intBitsToFloat(r9.w), intBitsToFloat(r18.z))); + r18.xy = saturate(r18.xy); + r16.zw = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw))); + r16.zw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.zw), float(0.00000000f))).zwxy).zw); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), float(2.00000000f), float(-1.00000000f))); + r10.w = float(0.00000000f) < intBitsToFloat(r23.w) ? int(0xffffffff) : int(0x00000000); + r11.w = intBitsToFloat(r23.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r10.w = -r10.w + r11.w; + r10.w = floatBitsToInt(float(r10.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r23.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f)); + r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w))); + r11.w = floatBitsToInt(intBitsToFloat(r9.w) * intBitsToFloat(r10.w)); + r17.x = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r11.w)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) * float(0.00999999978f)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x)); + r16.z = floatBitsToInt(intBitsToFloat(r10.w) * intBitsToFloat(r16.z)); + r16.w = floatBitsToInt(fma(-intBitsToFloat(r16.z), intBitsToFloat(r16.z), intBitsToFloat(r16.w))); + r16.w = floatBitsToInt(max(intBitsToFloat(r17.x), intBitsToFloat(r16.w))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r9.w), -intBitsToFloat(r16.z))); + r9.w = floatBitsToInt(fma(intBitsToFloat(r9.w), intBitsToFloat(r9.w), intBitsToFloat(r16.w))); + r9.w = floatBitsToInt(intBitsToFloat(r16.w) / intBitsToFloat(r9.w)); + r9.w = floatBitsToInt(-intBitsToFloat(r16.x) + intBitsToFloat(r9.w)); + r8.w = saturate(floatBitsToInt(intBitsToFloat(r9.w) / intBitsToFloat(r8.w))); + r9.w = intBitsToFloat(r16.z) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000); + r8.w = int(movc(uint(r9.w), uint(0x3f800000), uint(r8.w))); + } + else + { + r8.w = int(uint(0x3f800000)); + } + r9.w = floatBitsToInt(intBitsToFloat(r6.x) * intBitsToFloat(r8.w)); + r6.x = floatBitsToInt(fma(-intBitsToFloat(r6.x), intBitsToFloat(r8.w), float(1.00000000f))); + r6.x = floatBitsToInt(fma(intBitsToFloat(r7.w), intBitsToFloat(r6.x), intBitsToFloat(r9.w))); + } + else + { + r6.x = int(uint(0x3f800000)); + } + r16.xzw = floatBitsToInt(intBitsToFloat(r6.xxx) * intBitsToFloat(r7.xyz)); + } + else + { + r17.x = r12.x; + r17.y = r13.x; + r17.z = r14.x; + r17.w = r15.x; + r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r18.x = r12.y; + r18.y = r13.y; + r18.z = r14.y; + r18.w = r15.y; + r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r18.x = r12.z; + r18.y = r13.z; + r18.z = r14.z; + r18.w = r15.z; + r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r15.x = r12.w; + r15.y = r13.w; + r15.z = r14.w; + r6.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r15))); + r12.xyz = floatBitsToInt(intBitsToFloat(r17.xyz) / intBitsToFloat(r6.xxx)); + r6.x = int(uint(r16.y) & uint(0x00000001)); + r8.xyz = saturate(floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r12.xyz), -intBitsToFloat(r8.xyz)))); + r6.yzw = saturate(floatBitsToInt(fma(intBitsToFloat(r9.xyz), intBitsToFloat(r12.xyz), -intBitsToFloat(r6.yzw)))); + r6.yzw = floatBitsToInt(intBitsToFloat(r6.yzw) + intBitsToFloat(r8.xyz)); + r6.y = floatBitsToInt(dot(intBitsToFloat(r6.yzw), intBitsToFloat(r6.yzw))); + r6.y = floatBitsToInt(sqrt(intBitsToFloat(r6.y))); + r6.y = floatBitsToInt(min(intBitsToFloat(r6.y), float(1.00000000f))); + r6.y = floatBitsToInt(-intBitsToFloat(r6.y) + float(1.00000000f)); + r6.yzw = floatBitsToInt(intBitsToFloat(r6.yyy) * intBitsToFloat(r7.xyz)); + r16.xzw = ivec3(movc(uvec3(r6.xxx), uvec3(r6.yzw), uvec3(r7.xyz))); + } + r6.x = floatBitsToInt(dot(intBitsToFloat(r11.xyz), intBitsToFloat(r11.xyz))); + r6.x = floatBitsToInt(inversesqrt(intBitsToFloat(r6.x))); + r6.xyz = floatBitsToInt(intBitsToFloat(r6.xxx) * intBitsToFloat(r11.xyz)); + r7.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r16.xzw)); + r8.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r6.xyz))); + r6.w = floatBitsToInt(dot(intBitsToFloat(r8.xyz), intBitsToFloat(r8.xyz))); + r6.w = floatBitsToInt(inversesqrt(intBitsToFloat(r6.w))); + r8.xyz = floatBitsToInt(intBitsToFloat(r6.www) * intBitsToFloat(r8.xyz)); + r6.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r6.xyz)))); + r6.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r8.xyz)))); + r6.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r8.xyz)))); + r7.xyz = floatBitsToInt(intBitsToFloat(r7.xyz) * intBitsToFloat(r6.xxx)); + r7.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r7.xyz)); + r6.w = floatBitsToInt(log2(intBitsToFloat(r6.y))); + r7.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r6.w)); + r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w))); + r7.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r7.w)); + r6.z = floatBitsToInt(max(intBitsToFloat(r6.z), float(1.00000001e-10f))); + r8.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r6.x))); + r6.y = floatBitsToInt(intBitsToFloat(r6.y) + intBitsToFloat(r6.y)); + r8.y = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r8.x)); + r8.y = intBitsToFloat(r6.z) >= intBitsToFloat(r8.y) ? int(0xffffffff) : int(0x00000000); + r8.x = intBitsToFloat(r2.w) == intBitsToFloat(r8.x) ? int(0xffffffff) : int(0x00000000); + r8.z = floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r2.w)); + r8.x = int(movc(uint(r8.x), uint(0x3f800000), uint(r8.z))); + r8.x = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r8.x)); + r8.x = floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r6.z)); + r8.x = int(movc(uint(r8.y), uint(r8.x), uint(r2.y))); + r7.w = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r8.x)); + r7.w = floatBitsToInt(intBitsToFloat(r7.w) * float(0.250000000f)); + r6.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r6.w)); + r6.w = floatBitsToInt(exp2(intBitsToFloat(r6.w))); + r6.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r6.w)); + r8.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r6.x))); + r8.y = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r8.x)); + r8.y = intBitsToFloat(r6.z) >= intBitsToFloat(r8.y) ? int(0xffffffff) : int(0x00000000); + r8.x = intBitsToFloat(r4.y) == intBitsToFloat(r8.x) ? int(0xffffffff) : int(0x00000000); + r6.x = floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r4.y)); + r6.x = int(movc(uint(r8.x), uint(0x3f800000), uint(r6.x))); + r6.x = floatBitsToInt(intBitsToFloat(r6.y) * intBitsToFloat(r6.x)); + r6.x = floatBitsToInt(intBitsToFloat(r6.x) / intBitsToFloat(r6.z)); + r6.x = int(movc(uint(r8.y), uint(r6.x), uint(r4.w))); + r6.x = floatBitsToInt(intBitsToFloat(r6.w) * intBitsToFloat(r6.x)); + r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), float(0.250000000f), -intBitsToFloat(r7.w))); + r6.x = floatBitsToInt(fma(intBitsToFloat(r6.x), float(0.0500000007f), intBitsToFloat(r7.w))); + r5.xyz = floatBitsToInt(fma(intBitsToFloat(r7.xyz), intBitsToFloat(r6.xxx), intBitsToFloat(r5.xyz))); + r5.w = r5.w + int(1); + } + r6 = r5; + while (true) + { + r7.x = uint(r6.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + break; + r7.x = r3.w + r6.w; + r7.x = r7.x << int(2); + r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x); + { + vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16)); + vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16) + 1); + r8 = floatBitsToInt(vec4(vTemp1.y, vTemp1.z, vTemp1.w, vTemp2.x)); + } + + r7.y = r8.w != int(2) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.y) != uint(0)) + { + break; + } + r9 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000010) / 16)).xyzw)); + r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyzw)); + r7.yzw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz)); + r11 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).xyzw)); + r8.w = uint(r11.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000); + if (uint(r8.w) != uint(0)) + { + r12.xyz = floatBitsToInt(intBitsToFloat(r7.yzw) + -v1.v.xyz); + r8.w = floatBitsToInt(dot(intBitsToFloat(r12.xyz), intBitsToFloat(r12.xyz))); + r12.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w))); + r13.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r12.ww), intBitsToFloat(r9.xz)))); + r13.xy = floatBitsToInt(intBitsToFloat(r13.xy) * intBitsToFloat(r13.xy)); + r13.x = floatBitsToInt(intBitsToFloat(r13.x) * intBitsToFloat(r13.y)); + r13.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r13.xxx)); + r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r8.w))); + r12.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r12.xyz)); + r8.w = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r12.w)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(1.44269502f)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r13.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r13.xyz)); + r8.y = int(uint(r8.y) & uint(0x00000001)); + if (uint(r8.y) != uint(0)) + { + r8.yw = floatBitsToInt(vec2(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xy)); + r14.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x000000a0) / 16)).xyz)); + r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000000) / 16)).xyzw)); + r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000010) / 16)).xyzw)); + r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000020) / 16)).xyzw)); + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000030) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000080) / 16)).xyzw)); + r20.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x00000090) / 16)).xyz)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.x) * 11u + uint(0x000000a0) / 16)).xyzw)); + r22.x = r15.x; + r22.y = r16.x; + r22.z = r17.x; + r22.w = r18.x; + r22.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r23.x = r15.y; + r23.y = r16.y; + r23.z = r17.y; + r23.w = r18.y; + r22.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r23.x = r15.z; + r23.y = r16.z; + r23.z = r17.z; + r23.w = r18.z; + r22.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r18.x = r15.w; + r18.y = r16.w; + r18.z = r17.w; + r7.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r15.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) / intBitsToFloat(r7.xxx)); + r16.xyz = floatBitsToInt(intBitsToFloat(r20.xyz) + -v1.v.xyz); + r7.x = floatBitsToInt(dot(intBitsToFloat(r16.xyz), intBitsToFloat(r16.xyz))); + r7.x = floatBitsToInt(sqrt(intBitsToFloat(r7.x))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), intBitsToFloat(r21.x), intBitsToFloat(r21.y))); + r7.x = floatBitsToInt(-intBitsToFloat(r15.z) + intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r21.z), intBitsToFloat(r7.x), intBitsToFloat(r15.z))); + r15.xy = saturate(r15.xy); + r15.xy = floatBitsToInt(fma(intBitsToFloat(r15.xy), intBitsToFloat(r19.xy), intBitsToFloat(r19.zw))); + r15.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r15.xy), float(0.00000000f)))).xy); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(2.00000000f), float(-1.00000000f))); + r11.x = float(0.00000000f) < intBitsToFloat(r21.w) ? int(0xffffffff) : int(0x00000000); + r12.w = intBitsToFloat(r21.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r11.x = -r11.x + r12.w; + r11.x = floatBitsToInt(float(r11.x)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r21.w)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) * float(1.44269502f)); + r7.x = floatBitsToInt(exp2(intBitsToFloat(r7.x))); + r12.w = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r11.x)); + r13.w = floatBitsToInt(intBitsToFloat(r21.w) * intBitsToFloat(r12.w)); + r13.w = floatBitsToInt(intBitsToFloat(r13.w) * float(0.00999999978f)); + r13.w = floatBitsToInt(intBitsToFloat(r13.w) * intBitsToFloat(r13.w)); + r14.w = floatBitsToInt(intBitsToFloat(r11.x) * intBitsToFloat(r15.x)); + r15.x = floatBitsToInt(fma(-intBitsToFloat(r14.w), intBitsToFloat(r14.w), intBitsToFloat(r15.y))); + r13.w = floatBitsToInt(max(intBitsToFloat(r13.w), intBitsToFloat(r15.x))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r11.x), intBitsToFloat(r7.x), -intBitsToFloat(r14.w))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), intBitsToFloat(r7.x), intBitsToFloat(r13.w))); + r7.x = floatBitsToInt(intBitsToFloat(r13.w) / intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r7.x)); + r11.x = floatBitsToInt(-intBitsToFloat(r8.x) + float(1.00000000f)); + r7.x = saturate(floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r11.x))); + r12.w = intBitsToFloat(r14.w) >= intBitsToFloat(r12.w) ? int(0xffffffff) : int(0x00000000); + r7.x = int(movc(uint(r12.w), uint(0x3f800000), uint(r7.x))); + r15.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r11.yzw), uvec3(0x00000020, 0x00000020, 0x00000020)))); + if (uint(r15.x) != uint(0)) + { + r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000000) / 16)).xyzw)); + r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000010) / 16)).xyzw)); + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000020) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000030) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000080) / 16)).xyzw)); + r21.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x00000090) / 16)).xyz)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.y) * 11u + uint(0x000000a0) / 16)).xyzw)); + r23.x = r16.x; + r23.y = r17.x; + r23.z = r18.x; + r23.w = r19.x; + r23.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r24.x = r16.y; + r24.y = r17.y; + r24.z = r18.y; + r24.w = r19.y; + r23.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r24))); + r24.x = r16.z; + r24.y = r17.z; + r24.z = r18.z; + r24.w = r19.z; + r23.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r24))); + r19.x = r16.w; + r19.y = r17.w; + r19.z = r18.w; + r11.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r19))); + r16.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) / intBitsToFloat(r11.yyy)); + r17.xyz = floatBitsToInt(intBitsToFloat(r21.xyz) + -v1.v.xyz); + r11.y = floatBitsToInt(dot(intBitsToFloat(r17.xyz), intBitsToFloat(r17.xyz))); + r11.y = floatBitsToInt(sqrt(intBitsToFloat(r11.y))); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r22.x), intBitsToFloat(r22.y))); + r11.y = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.y)); + r11.y = floatBitsToInt(fma(intBitsToFloat(r22.z), intBitsToFloat(r11.y), intBitsToFloat(r16.z))); + r16.xy = saturate(r16.xy); + r15.xw = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r20.xy), intBitsToFloat(r20.zw))); + r15.xw = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r15.xw), float(0.00000000f))).xzwy).xw); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), float(2.00000000f), float(-1.00000000f))); + r12.w = float(0.00000000f) < intBitsToFloat(r22.w) ? int(0xffffffff) : int(0x00000000); + r13.w = intBitsToFloat(r22.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r12.w = -r12.w + r13.w; + r12.w = floatBitsToInt(float(r12.w)); + r11.y = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r22.w)); + r11.y = floatBitsToInt(intBitsToFloat(r11.y) * float(1.44269502f)); + r11.y = floatBitsToInt(exp2(intBitsToFloat(r11.y))); + r13.w = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r12.w)); + r14.w = floatBitsToInt(intBitsToFloat(r22.w) * intBitsToFloat(r13.w)); + r14.w = floatBitsToInt(intBitsToFloat(r14.w) * float(0.00999999978f)); + r14.w = floatBitsToInt(intBitsToFloat(r14.w) * intBitsToFloat(r14.w)); + r15.x = floatBitsToInt(intBitsToFloat(r12.w) * intBitsToFloat(r15.x)); + r15.w = floatBitsToInt(fma(-intBitsToFloat(r15.x), intBitsToFloat(r15.x), intBitsToFloat(r15.w))); + r14.w = floatBitsToInt(max(intBitsToFloat(r14.w), intBitsToFloat(r15.w))); + r11.y = floatBitsToInt(fma(intBitsToFloat(r12.w), intBitsToFloat(r11.y), -intBitsToFloat(r15.x))); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r11.y), intBitsToFloat(r14.w))); + r11.y = floatBitsToInt(intBitsToFloat(r14.w) / intBitsToFloat(r11.y)); + r11.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.y)); + r11.y = saturate(floatBitsToInt(intBitsToFloat(r11.y) / intBitsToFloat(r11.x))); + r12.w = intBitsToFloat(r15.x) >= intBitsToFloat(r13.w) ? int(0xffffffff) : int(0x00000000); + r11.y = int(movc(uint(r12.w), uint(0x3f800000), uint(r11.y))); + } + else + { + r11.y = int(uint(0x3f800000)); + } + r7.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r11.y)); + if (uint(r15.y) != uint(0)) + { + r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000000) / 16)).xyzw)); + r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000010) / 16)).xyzw)); + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000020) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000030) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000080) / 16)).xyzw)); + r15.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x00000090) / 16)).xyz)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.z) * 11u + uint(0x000000a0) / 16)).xyzw)); + r22.x = r16.x; + r22.y = r17.x; + r22.z = r18.x; + r22.w = r19.x; + r22.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r23.x = r16.y; + r23.y = r17.y; + r23.z = r18.y; + r23.w = r19.y; + r22.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r23.x = r16.z; + r23.y = r17.z; + r23.z = r18.z; + r23.w = r19.z; + r22.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r19.x = r16.w; + r19.y = r17.w; + r19.z = r18.w; + r11.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r19))); + r16.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) / intBitsToFloat(r11.yyy)); + r15.xyw = floatBitsToInt(intBitsToFloat(r15.xyw) + -v1.v.xyz); + r11.y = floatBitsToInt(dot(intBitsToFloat(r15.xyw), intBitsToFloat(r15.xyw))); + r11.y = floatBitsToInt(sqrt(intBitsToFloat(r11.y))); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r21.x), intBitsToFloat(r21.y))); + r11.y = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.y)); + r11.y = floatBitsToInt(fma(intBitsToFloat(r21.z), intBitsToFloat(r11.y), intBitsToFloat(r16.z))); + r16.xy = saturate(r16.xy); + r15.xy = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r20.xy), intBitsToFloat(r20.zw))); + r15.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r15.xy), float(0.00000000f)))).xy); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), float(2.00000000f), float(-1.00000000f))); + r11.z = float(0.00000000f) < intBitsToFloat(r21.w) ? int(0xffffffff) : int(0x00000000); + r12.w = intBitsToFloat(r21.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r11.z = -r11.z + r12.w; + r11.z = floatBitsToInt(float(r11.z)); + r11.y = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r21.w)); + r11.y = floatBitsToInt(intBitsToFloat(r11.y) * float(1.44269502f)); + r11.y = floatBitsToInt(exp2(intBitsToFloat(r11.y))); + r12.w = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r11.z)); + r13.w = floatBitsToInt(intBitsToFloat(r21.w) * intBitsToFloat(r12.w)); + r13.w = floatBitsToInt(intBitsToFloat(r13.w) * float(0.00999999978f)); + r13.w = floatBitsToInt(intBitsToFloat(r13.w) * intBitsToFloat(r13.w)); + r14.w = floatBitsToInt(intBitsToFloat(r11.z) * intBitsToFloat(r15.x)); + r15.x = floatBitsToInt(fma(-intBitsToFloat(r14.w), intBitsToFloat(r14.w), intBitsToFloat(r15.y))); + r13.w = floatBitsToInt(max(intBitsToFloat(r13.w), intBitsToFloat(r15.x))); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.z), intBitsToFloat(r11.y), -intBitsToFloat(r14.w))); + r11.y = floatBitsToInt(fma(intBitsToFloat(r11.y), intBitsToFloat(r11.y), intBitsToFloat(r13.w))); + r11.y = floatBitsToInt(intBitsToFloat(r13.w) / intBitsToFloat(r11.y)); + r11.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.y)); + r11.y = saturate(floatBitsToInt(intBitsToFloat(r11.y) / intBitsToFloat(r11.x))); + r11.z = intBitsToFloat(r14.w) >= intBitsToFloat(r12.w) ? int(0xffffffff) : int(0x00000000); + r11.y = int(movc(uint(r11.z), uint(0x3f800000), uint(r11.y))); + } + else + { + r11.y = int(uint(0x3f800000)); + } + r7.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r11.y)); + if (uint(r15.z) != uint(0)) + { + r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000000) / 16)).xyzw)); + r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000010) / 16)).xyzw)); + r17 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000020) / 16)).xyzw)); + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000030) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000080) / 16)).xyzw)); + r20.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x00000090) / 16)).xyz)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r11.w) * 11u + uint(0x000000a0) / 16)).xyzw)); + r22.x = r15.x; + r22.y = r16.x; + r22.z = r17.x; + r22.w = r18.x; + r22.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r23.x = r15.y; + r23.y = r16.y; + r23.z = r17.y; + r23.w = r18.y; + r22.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r23.x = r15.z; + r23.y = r16.z; + r23.z = r17.z; + r23.w = r18.z; + r22.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r23))); + r18.x = r15.w; + r18.y = r16.w; + r18.z = r17.w; + r11.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r11.yzw = floatBitsToInt(intBitsToFloat(r22.xyz) / intBitsToFloat(r11.yyy)); + r15.xyz = floatBitsToInt(intBitsToFloat(r20.xyz) + -v1.v.xyz); + r12.w = floatBitsToInt(dot(intBitsToFloat(r15.xyz), intBitsToFloat(r15.xyz))); + r12.w = floatBitsToInt(sqrt(intBitsToFloat(r12.w))); + r12.w = floatBitsToInt(fma(intBitsToFloat(r12.w), intBitsToFloat(r21.x), intBitsToFloat(r21.y))); + r12.w = floatBitsToInt(-intBitsToFloat(r11.w) + intBitsToFloat(r12.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r21.z), intBitsToFloat(r12.w), intBitsToFloat(r11.w))); + r11.yz = saturate(r11.yz); + r11.yz = floatBitsToInt(fma(intBitsToFloat(r11.yz), intBitsToFloat(r19.xy), intBitsToFloat(r19.zw))); + r11.yz = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r11.yz), float(0.00000000f))).zxyw).yz); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r12.w = float(0.00000000f) < intBitsToFloat(r21.w) ? int(0xffffffff) : int(0x00000000); + r13.w = intBitsToFloat(r21.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r12.w = -r12.w + r13.w; + r12.w = floatBitsToInt(float(r12.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r21.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r13.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r12.w)); + r14.w = floatBitsToInt(intBitsToFloat(r21.w) * intBitsToFloat(r13.w)); + r14.w = floatBitsToInt(intBitsToFloat(r14.w) * float(0.00999999978f)); + r14.w = floatBitsToInt(intBitsToFloat(r14.w) * intBitsToFloat(r14.w)); + r11.y = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r12.w)); + r11.z = floatBitsToInt(fma(-intBitsToFloat(r11.y), intBitsToFloat(r11.y), intBitsToFloat(r11.z))); + r11.z = floatBitsToInt(max(intBitsToFloat(r14.w), intBitsToFloat(r11.z))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r12.w), intBitsToFloat(r11.w), -intBitsToFloat(r11.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r11.z))); + r11.z = floatBitsToInt(intBitsToFloat(r11.z) / intBitsToFloat(r11.w)); + r8.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.z)); + r8.x = saturate(floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r11.x))); + r11.x = intBitsToFloat(r11.y) >= intBitsToFloat(r13.w) ? int(0xffffffff) : int(0x00000000); + r8.x = int(movc(uint(r11.x), uint(0x3f800000), uint(r8.x))); + } + else + { + r8.x = int(uint(0x3f800000)); + } + r11.x = floatBitsToInt(intBitsToFloat(r7.x) * intBitsToFloat(r8.x)); + r7.x = floatBitsToInt(fma(-intBitsToFloat(r7.x), intBitsToFloat(r8.x), float(1.00000000f))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r7.x), intBitsToFloat(r11.x))); + r8.x = floatBitsToInt(dot(intBitsToFloat(r12.xyz), intBitsToFloat(r14.xyz))); + r8.x = saturate(floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r8.x), intBitsToFloat(r8.y)))); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) + float(-1.00000000f)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r8.x), intBitsToFloat(r7.x), float(1.00000000f))); + r8.x = floatBitsToInt(-intBitsToFloat(r7.x) + float(1.00000000f)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r8.x), intBitsToFloat(r7.x))); + } + else + { + r7.x = int(uint(0x3f800000)); + } + r8.xyw = floatBitsToInt(intBitsToFloat(r7.xxx) * intBitsToFloat(r13.xyz)); + } + else + { + r7.xyz = floatBitsToInt(intBitsToFloat(r7.yzw) + -v1.v.xyz); + r7.w = floatBitsToInt(dot(intBitsToFloat(r7.xyz), intBitsToFloat(r7.xyz))); + r10.w = floatBitsToInt(sqrt(intBitsToFloat(r7.w))); + r9.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r10.ww), intBitsToFloat(r9.xz)))); + r9.xy = floatBitsToInt(intBitsToFloat(r9.xy) * intBitsToFloat(r9.xy)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) * intBitsToFloat(r9.y)); + r9.xyz = floatBitsToInt(intBitsToFloat(r9.xxx) * intBitsToFloat(r10.xyz)); + r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w))); + r12.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r7.xyz)); + r7.x = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r10.w)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) * float(1.44269502f)); + r7.x = floatBitsToInt(exp2(intBitsToFloat(r7.x))); + r8.xyw = floatBitsToInt(intBitsToFloat(r7.xxx) * intBitsToFloat(r9.xyz)); + } + r7.x = floatBitsToInt(dot(intBitsToFloat(r12.xyz), intBitsToFloat(r12.xyz))); + r7.x = floatBitsToInt(inversesqrt(intBitsToFloat(r7.x))); + r7.xyz = floatBitsToInt(intBitsToFloat(r7.xxx) * intBitsToFloat(r12.xyz)); + r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r8.xyw)); + r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz))); + r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz))); + r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w))); + r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz)); + r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz)))); + r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz)))); + r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz)))); + r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx)); + r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz)); + r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y))); + r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w)); + r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f))); + r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x))); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y)); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w)); + r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z))); + r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z)); + r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y))); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f)); + r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w)); + r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w))); + r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w)); + r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x))); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y)); + r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x))); + r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z)); + r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w))); + r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w))); + r6.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r6.xyz))); + r6.w = r6.w + int(1); + } + r5 = r6; + while (true) + { + r7.x = uint(r5.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + break; + r7.x = r3.w + r5.w; + r7.x = r7.x << int(2); + r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x); + { + vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16)); + vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16) + 1); + r8 = floatBitsToInt(vec4(vTemp1.y, vTemp1.z, vTemp1.w, vTemp2.x)); + } + + r7.y = r8.w != int(3) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.y) != uint(0)) + { + break; + } + r9 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xyzw)); + r7.y = floatBitsToInt(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000010) / 16)).x); + r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyzw)); + r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz)); + r12 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000140) / 16)).xyzw)); + r13 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000150) / 16)).xyzw)); + r14 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000160) / 16)).xyzw)); + r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000170) / 16)).xyzw)); + r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).xyzw)); + r7.x = uint(r16.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + { + r7.xzw = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz); + r8.w = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w))); + r17.x = r12.x; + r17.y = r13.x; + r17.z = r14.x; + r17.w = r15.x; + r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r18.x = r12.y; + r18.y = r13.y; + r18.z = r14.y; + r18.w = r15.y; + r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r18.x = r12.z; + r18.y = r13.z; + r18.z = r14.z; + r18.w = r15.z; + r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r15.x = r12.w; + r15.y = r13.w; + r15.z = r14.w; + r17.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r15))); + r17.z = float(0.00000000f) < intBitsToFloat(r17.z) ? int(0xffffffff) : int(0x00000000); + r17.z = int(uint(r17.z) & uint(0x3f800000)); + r18.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r17.zzz)); + r19.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz)))); + r19.xy = floatBitsToInt(intBitsToFloat(r19.xy) * intBitsToFloat(r19.xy)); + r17.z = floatBitsToInt(intBitsToFloat(r19.x) * intBitsToFloat(r19.y)); + r18.xyz = floatBitsToInt(intBitsToFloat(r17.zzz) * intBitsToFloat(r18.xyz)); + r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r8.w))); + r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) * intBitsToFloat(r8.www)); + r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) / intBitsToFloat(r17.ww)); + r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + vec2(-0.500000000f, -0.500000000f)); + r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + intBitsToFloat(r17.xy)); + r8.w = floatBitsToInt(dot(intBitsToFloat(r17.xy), intBitsToFloat(r17.xy))); + r8.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w))); + r8.w = floatBitsToInt(min(intBitsToFloat(r8.w), float(1.00000000f))); + r17.x = floatBitsToInt(-intBitsToFloat(r7.y) + intBitsToFloat(r8.w)); + r17.y = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) / intBitsToFloat(r17.y)); + r17.x = floatBitsToInt(-intBitsToFloat(r17.x) + float(1.00000000f)); + r17.y = floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.x)); + r17.x = floatBitsToInt(fma(-intBitsToFloat(r17.x), float(2.00000000f), float(3.00000000f))); + r17.x = saturate(floatBitsToInt(intBitsToFloat(r17.x) * intBitsToFloat(r17.y))); + r8.w = intBitsToFloat(r8.w) >= intBitsToFloat(r7.y) ? int(0xffffffff) : int(0x00000000); + r8.w = int(uint(r8.w) & uint(0x3f800000)); + r17.x = floatBitsToInt(intBitsToFloat(r17.x) + float(-1.00000000f)); + r8.w = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r17.x), float(1.00000000f))); + r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r18.xyz)); + r8.w = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(1.44269502f)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r17.xyz)); + r8.y = int(uint(r8.y) & uint(0x00000001)); + if (uint(r8.y) != uint(0)) + { + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000000) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000010) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000020) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000030) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000080) / 16)).xyzw)); + r23.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000090) / 16)).xyz)); + r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x000000a0) / 16)).xyzw)); + r25.x = r18.x; + r25.y = r19.x; + r25.z = r20.x; + r25.w = r21.x; + r25.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r26.x = r18.y; + r26.y = r19.y; + r26.z = r20.y; + r26.w = r21.y; + r25.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r26.x = r18.z; + r26.y = r19.z; + r26.z = r20.z; + r26.w = r21.z; + r25.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r21.x = r18.w; + r21.y = r19.w; + r21.z = r20.w; + r8.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r21))); + r18.xyz = floatBitsToInt(intBitsToFloat(r25.xyz) / intBitsToFloat(r8.yyy)); + r19.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) + -v1.v.xyz); + r8.y = floatBitsToInt(dot(intBitsToFloat(r19.xyz), intBitsToFloat(r19.xyz))); + r8.y = floatBitsToInt(sqrt(intBitsToFloat(r8.y))); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r24.x), intBitsToFloat(r24.y))); + r8.y = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r8.y)); + r8.y = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r8.y), intBitsToFloat(r18.z))); + r18.xy = saturate(r18.xy); + r18.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw))); + r18.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r18.xy), float(0.00000000f)))).xy); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), float(2.00000000f), float(-1.00000000f))); + r8.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000); + r11.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r8.w = -r8.w + r11.w; + r8.w = floatBitsToInt(float(r8.w)); + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r24.w)); + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * float(1.44269502f)); + r8.y = floatBitsToInt(exp2(intBitsToFloat(r8.y))); + r11.w = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r8.w)); + r16.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r11.w)); + r16.x = floatBitsToInt(intBitsToFloat(r16.x) * float(0.00999999978f)); + r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r16.x)); + r17.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r18.x)); + r18.x = floatBitsToInt(fma(-intBitsToFloat(r17.w), intBitsToFloat(r17.w), intBitsToFloat(r18.y))); + r16.x = floatBitsToInt(max(intBitsToFloat(r16.x), intBitsToFloat(r18.x))); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r8.y), -intBitsToFloat(r17.w))); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r8.y), intBitsToFloat(r16.x))); + r8.y = floatBitsToInt(intBitsToFloat(r16.x) / intBitsToFloat(r8.y)); + r8.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r8.y)); + r8.w = floatBitsToInt(-intBitsToFloat(r8.x) + float(1.00000000f)); + r8.y = saturate(floatBitsToInt(intBitsToFloat(r8.y) / intBitsToFloat(r8.w))); + r11.w = intBitsToFloat(r17.w) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000); + r8.y = int(movc(uint(r11.w), uint(0x3f800000), uint(r8.y))); + r18.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r16.yzw), uvec3(0x00000020, 0x00000020, 0x00000020)))); + if (uint(r18.x) != uint(0)) + { + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000000) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000010) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000020) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000030) / 16)).xyzw)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000080) / 16)).xyzw)); + r24.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000090) / 16)).xyz)); + r25 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x000000a0) / 16)).xyzw)); + r26.x = r19.x; + r26.y = r20.x; + r26.z = r21.x; + r26.w = r22.x; + r26.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r27.x = r19.y; + r27.y = r20.y; + r27.z = r21.y; + r27.w = r22.y; + r26.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r27))); + r27.x = r19.z; + r27.y = r20.z; + r27.z = r21.z; + r27.w = r22.z; + r26.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r27))); + r22.x = r19.w; + r22.y = r20.w; + r22.z = r21.w; + r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r19.xyz = floatBitsToInt(intBitsToFloat(r26.xyz) / intBitsToFloat(r11.www)); + r20.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) + -v1.v.xyz); + r11.w = floatBitsToInt(dot(intBitsToFloat(r20.xyz), intBitsToFloat(r20.xyz))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r25.x), intBitsToFloat(r25.y))); + r11.w = floatBitsToInt(-intBitsToFloat(r19.z) + intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r25.z), intBitsToFloat(r11.w), intBitsToFloat(r19.z))); + r19.xy = saturate(r19.xy); + r16.xy = floatBitsToInt(fma(intBitsToFloat(r19.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw))); + r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r17.w = float(0.00000000f) < intBitsToFloat(r25.w) ? int(0xffffffff) : int(0x00000000); + r18.x = intBitsToFloat(r25.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r17.w = -r17.w + r18.x; + r17.w = floatBitsToInt(float(r17.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r25.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r18.x = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r17.w)); + r18.w = floatBitsToInt(intBitsToFloat(r25.w) * intBitsToFloat(r18.x)); + r18.w = floatBitsToInt(intBitsToFloat(r18.w) * float(0.00999999978f)); + r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w)); + r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r17.w)); + r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y))); + r16.y = floatBitsToInt(max(intBitsToFloat(r18.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r17.w), intBitsToFloat(r11.w), -intBitsToFloat(r16.x))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w)); + r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w))); + r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r18.x) ? int(0xffffffff) : int(0x00000000); + r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w))); + } + else + { + r11.w = int(uint(0x3f800000)); + } + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w)); + if (uint(r18.y) != uint(0)) + { + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000000) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000010) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000020) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000030) / 16)).xyzw)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000080) / 16)).xyzw)); + r18.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000090) / 16)).xyz)); + r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x000000a0) / 16)).xyzw)); + r25.x = r19.x; + r25.y = r20.x; + r25.z = r21.x; + r25.w = r22.x; + r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r19.y; + r25.y = r20.y; + r25.z = r21.y; + r25.w = r22.y; + r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r19.z; + r25.y = r20.z; + r25.z = r21.z; + r25.w = r22.z; + r16.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r22.x = r19.w; + r22.y = r20.w; + r22.z = r21.w; + r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) / intBitsToFloat(r11.www)); + r18.xyw = floatBitsToInt(intBitsToFloat(r18.xyw) + -v1.v.xyz); + r11.w = floatBitsToInt(dot(intBitsToFloat(r18.xyw), intBitsToFloat(r18.xyw))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r24.x), intBitsToFloat(r24.y))); + r11.w = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r11.w), intBitsToFloat(r16.z))); + r16.xy = saturate(r16.xy); + r16.xy = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw))); + r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r16.z = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000); + r17.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r16.z = -r16.z + r17.w; + r16.z = floatBitsToInt(float(r16.z)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r24.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r17.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z)); + r18.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r17.w)); + r18.x = floatBitsToInt(intBitsToFloat(r18.x) * float(0.00999999978f)); + r18.x = floatBitsToInt(intBitsToFloat(r18.x) * intBitsToFloat(r18.x)); + r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x)); + r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y))); + r16.y = floatBitsToInt(max(intBitsToFloat(r18.x), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w)); + r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w))); + r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r17.w) ? int(0xffffffff) : int(0x00000000); + r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w))); + } + else + { + r11.w = int(uint(0x3f800000)); + } + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w)); + if (uint(r18.z) != uint(0)) + { + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000000) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000010) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000020) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000030) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000080) / 16)).xyzw)); + r16.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000090) / 16)).xyz)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x000000a0) / 16)).xyzw)); + r24.x = r18.x; + r24.y = r19.x; + r24.z = r20.x; + r24.w = r21.x; + r24.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r24))); + r25.x = r18.y; + r25.y = r19.y; + r25.z = r20.y; + r25.w = r21.y; + r24.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r18.z; + r25.y = r19.z; + r25.z = r20.z; + r25.w = r21.z; + r24.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r21.x = r18.w; + r21.y = r19.w; + r21.z = r20.w; + r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r21))); + r18.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) / intBitsToFloat(r11.www)); + r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) + -v1.v.xyz); + r11.w = floatBitsToInt(dot(intBitsToFloat(r16.xyz), intBitsToFloat(r16.xyz))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r23.x), intBitsToFloat(r23.y))); + r11.w = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r23.z), intBitsToFloat(r11.w), intBitsToFloat(r18.z))); + r18.xy = saturate(r18.xy); + r16.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw))); + r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r16.z = float(0.00000000f) < intBitsToFloat(r23.w) ? int(0xffffffff) : int(0x00000000); + r16.w = intBitsToFloat(r23.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r16.z = -r16.z + r16.w; + r16.z = floatBitsToInt(float(r16.z)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r23.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r16.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z)); + r17.w = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r16.w)); + r17.w = floatBitsToInt(intBitsToFloat(r17.w) * float(0.00999999978f)); + r17.w = floatBitsToInt(intBitsToFloat(r17.w) * intBitsToFloat(r17.w)); + r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x)); + r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y))); + r16.y = floatBitsToInt(max(intBitsToFloat(r17.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w)); + r8.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w)); + r8.x = saturate(floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r8.w))); + r8.w = intBitsToFloat(r16.x) >= intBitsToFloat(r16.w) ? int(0xffffffff) : int(0x00000000); + r8.x = int(movc(uint(r8.w), uint(0x3f800000), uint(r8.x))); + } + else + { + r8.x = int(uint(0x3f800000)); + } + r8.w = floatBitsToInt(intBitsToFloat(r8.x) * intBitsToFloat(r8.y)); + r8.x = floatBitsToInt(fma(-intBitsToFloat(r8.y), intBitsToFloat(r8.x), float(1.00000000f))); + r8.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r8.x), intBitsToFloat(r8.w))); + } + else + { + r8.x = int(uint(0x3f800000)); + } + r8.xyw = floatBitsToInt(intBitsToFloat(r8.xxx) * intBitsToFloat(r17.xyz)); + } + else + { + r11.xyz = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz); + r10.w = floatBitsToInt(dot(intBitsToFloat(r11.xyz), intBitsToFloat(r11.xyz))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r10.w))); + r16.x = r12.x; + r16.y = r13.x; + r16.z = r14.x; + r16.w = r15.x; + r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r16))); + r17.x = r12.y; + r17.y = r13.y; + r17.z = r14.y; + r17.w = r15.y; + r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r17.x = r12.z; + r17.y = r13.z; + r17.z = r14.z; + r17.w = r15.z; + r12.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r15.x = r12.w; + r15.y = r13.w; + r15.z = r14.w; + r12.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r15))); + r12.x = float(0.00000000f) < intBitsToFloat(r12.x) ? int(0xffffffff) : int(0x00000000); + r12.x = int(uint(r12.x) & uint(0x3f800000)); + r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r12.xxx)); + r9.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz)))); + r9.xy = floatBitsToInt(intBitsToFloat(r9.xy) * intBitsToFloat(r9.xy)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) * intBitsToFloat(r9.y)); + r9.xyz = floatBitsToInt(intBitsToFloat(r9.xxx) * intBitsToFloat(r10.xyz)); + r9.w = floatBitsToInt(inversesqrt(intBitsToFloat(r10.w))); + r7.xzw = floatBitsToInt(intBitsToFloat(r9.www) * intBitsToFloat(r11.xyz)); + r10.xy = floatBitsToInt(intBitsToFloat(r16.xy) / intBitsToFloat(r12.yy)); + r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + vec2(-0.500000000f, -0.500000000f)); + r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + intBitsToFloat(r10.xy)); + r9.w = floatBitsToInt(dot(intBitsToFloat(r10.xy), intBitsToFloat(r10.xy))); + r9.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w))); + r9.w = floatBitsToInt(min(intBitsToFloat(r9.w), float(1.00000000f))); + r10.x = floatBitsToInt(-intBitsToFloat(r7.y) + intBitsToFloat(r9.w)); + r10.y = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f)); + r10.x = floatBitsToInt(intBitsToFloat(r10.x) / intBitsToFloat(r10.y)); + r10.x = floatBitsToInt(-intBitsToFloat(r10.x) + float(1.00000000f)); + r10.y = floatBitsToInt(intBitsToFloat(r10.x) * intBitsToFloat(r10.x)); + r10.x = floatBitsToInt(fma(-intBitsToFloat(r10.x), float(2.00000000f), float(3.00000000f))); + r10.x = saturate(floatBitsToInt(intBitsToFloat(r10.x) * intBitsToFloat(r10.y))); + r7.y = intBitsToFloat(r9.w) >= intBitsToFloat(r7.y) ? int(0xffffffff) : int(0x00000000); + r7.y = int(uint(r7.y) & uint(0x3f800000)); + r9.w = floatBitsToInt(intBitsToFloat(r10.x) + float(-1.00000000f)); + r7.y = floatBitsToInt(fma(intBitsToFloat(r7.y), intBitsToFloat(r9.w), float(1.00000000f))); + r9.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz)); + r7.y = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w)); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) * float(1.44269502f)); + r7.y = floatBitsToInt(exp2(intBitsToFloat(r7.y))); + r8.xyw = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz)); + } + r7.y = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw))); + r7.y = floatBitsToInt(inversesqrt(intBitsToFloat(r7.y))); + r7.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r7.xzw)); + r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r8.xyw)); + r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz))); + r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz))); + r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w))); + r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz)); + r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz)))); + r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz)))); + r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz)))); + r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx)); + r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz)); + r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y))); + r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w)); + r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f))); + r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x))); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y)); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w)); + r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z))); + r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z)); + r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y))); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f)); + r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w)); + r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w))); + r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w)); + r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x))); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y)); + r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x))); + r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z)); + r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w))); + r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w))); + r5.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r5.xyz))); + r5.w = r5.w + int(1); + } + r6 = r5; + while (true) + { + r7.x = uint(r6.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + break; + r7.x = r3.w + r6.w; + r7.x = r7.x << int(2); + r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x); + { + vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x0000020c) / 16)); + vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x0000020c) / 16) + 1); + r7.yz = floatBitsToInt(vec2(vTemp1.w, vTemp2.x)); + } + + r7.z = r7.z != int(4) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.z) != uint(0)) + { + break; + } + r8 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xyzw)); + r9.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyz)); + r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000040) / 16)).xyzw)); + r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz)); + r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).x); + r7.x = uint(r7.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + { + r7.xzw = floatBitsToInt(-intBitsToFloat(r11.xyz) + v1.v.xyz); + r7.x = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r10.xyz))); + r7.x = floatBitsToInt(max(-intBitsToFloat(r10.w), intBitsToFloat(r7.x))); + r7.x = floatBitsToInt(min(intBitsToFloat(r10.w), intBitsToFloat(r7.x))); + r7.xzw = floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r11.xyz))); + r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) + -v1.v.xyz); + r9.w = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w))); + r12.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r8.yw), intBitsToFloat(r11.ww), intBitsToFloat(r8.xz)))); + r12.xy = floatBitsToInt(intBitsToFloat(r12.xy) * intBitsToFloat(r12.xy)); + r12.x = floatBitsToInt(intBitsToFloat(r12.x) * intBitsToFloat(r12.y)); + r12.xyz = floatBitsToInt(intBitsToFloat(r9.xyz) * intBitsToFloat(r12.xxx)); + r9.w = floatBitsToInt(inversesqrt(intBitsToFloat(r9.w))); + r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) * intBitsToFloat(r9.www)); + r9.w = floatBitsToInt(intBitsToFloat(r7.y) * -intBitsToFloat(r11.w)); + r9.w = floatBitsToInt(intBitsToFloat(r9.w) * float(1.44269502f)); + r9.w = floatBitsToInt(exp2(intBitsToFloat(r9.w))); + r12.xyz = floatBitsToInt(intBitsToFloat(r9.www) * intBitsToFloat(r12.xyz)); + } + else + { + r13.xyz = floatBitsToInt(-intBitsToFloat(r11.xyz) + v1.v.xyz); + r9.w = floatBitsToInt(dot(intBitsToFloat(r13.xyz), intBitsToFloat(r10.xyz))); + r9.w = floatBitsToInt(max(-intBitsToFloat(r10.w), intBitsToFloat(r9.w))); + r9.w = floatBitsToInt(min(intBitsToFloat(r10.w), intBitsToFloat(r9.w))); + r10.xyz = floatBitsToInt(fma(intBitsToFloat(r10.xyz), intBitsToFloat(r9.www), intBitsToFloat(r11.xyz))); + r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) + -v1.v.xyz); + r9.w = floatBitsToInt(dot(intBitsToFloat(r10.xyz), intBitsToFloat(r10.xyz))); + r10.w = floatBitsToInt(sqrt(intBitsToFloat(r9.w))); + r8.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r8.yw), intBitsToFloat(r10.ww), intBitsToFloat(r8.xz)))); + r8.xy = floatBitsToInt(intBitsToFloat(r8.xy) * intBitsToFloat(r8.xy)); + r8.x = floatBitsToInt(intBitsToFloat(r8.x) * intBitsToFloat(r8.y)); + r8.xyz = floatBitsToInt(intBitsToFloat(r8.xxx) * intBitsToFloat(r9.xyz)); + r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r9.w))); + r7.xzw = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r10.xyz)); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) * -intBitsToFloat(r10.w)); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) * float(1.44269502f)); + r7.y = floatBitsToInt(exp2(intBitsToFloat(r7.y))); + r12.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r8.xyz)); + } + r7.y = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw))); + r7.y = floatBitsToInt(inversesqrt(intBitsToFloat(r7.y))); + r7.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r7.xzw)); + r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r12.xyz)); + r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz))); + r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz))); + r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w))); + r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz)); + r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz)))); + r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz)))); + r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz)))); + r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx)); + r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz)); + r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y))); + r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w)); + r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f))); + r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x))); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y)); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w)); + r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z))); + r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z)); + r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y))); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f)); + r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w)); + r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w))); + r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w)); + r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x))); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y)); + r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x))); + r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z)); + r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w))); + r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w))); + r6.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r6.xyz))); + r6.w = r6.w + int(1); + } + r5 = r6; + while (true) + { + r7.x = uint(r5.w) >= uint(r4.x) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + break; + r7.x = r3.w + r5.w; + r7.x = r7.x << int(2); + r7.x = floatBitsToInt(texelFetch(resourceSamplerPair_3_ps, int(uint(r7.x) / 4u + 0u)).x); + { + vec4 vTemp1 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16)); + vec4 vTemp2 = texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000204) / 16) + 1); + r8 = floatBitsToInt(vec4(vTemp1.y, vTemp1.z, vTemp1.w, vTemp2.x)); + } + + r7.y = r8.w != int(7) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.y) != uint(0)) + { + break; + } + r9 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000000) / 16)).xyzw)); + r7.y = floatBitsToInt(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000010) / 16)).x); + r10 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000030) / 16)).xyzw)); + r11.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000090) / 16)).xyz)); + r12 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000140) / 16)).xyzw)); + r13 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000150) / 16)).xyzw)); + r14 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000160) / 16)).xyzw)); + r15 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000170) / 16)).xyzw)); + r16 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_4_ps, int(uint(r7.x) * 55u + uint(0x00000320) / 16)).xyzw)); + r7.x = uint(r16.x) < uint(0x00000020) ? int(0xffffffff) : int(0x00000000); + if (uint(r7.x) != uint(0)) + { + r7.xzw = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz); + r8.w = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r8.w))); + r17.x = r12.x; + r17.y = r13.x; + r17.z = r14.x; + r17.w = r15.x; + r17.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r18.x = r12.y; + r18.y = r13.y; + r18.z = r14.y; + r18.w = r15.y; + r17.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r18.x = r12.z; + r18.y = r13.z; + r18.z = r14.z; + r18.w = r15.z; + r17.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r18))); + r15.x = r12.w; + r15.y = r13.w; + r15.z = r14.w; + r17.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r15))); + r17.z = float(0.00000000f) < intBitsToFloat(r17.z) ? int(0xffffffff) : int(0x00000000); + r17.z = int(uint(r17.z) & uint(0x3f800000)); + r18.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r17.zzz)); + r19.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz)))); + r19.xy = floatBitsToInt(intBitsToFloat(r19.xy) * intBitsToFloat(r19.xy)); + r17.z = floatBitsToInt(intBitsToFloat(r19.x) * intBitsToFloat(r19.y)); + r18.xyz = floatBitsToInt(intBitsToFloat(r17.zzz) * intBitsToFloat(r18.xyz)); + r8.w = floatBitsToInt(inversesqrt(intBitsToFloat(r8.w))); + r7.xzw = floatBitsToInt(intBitsToFloat(r7.xzw) * intBitsToFloat(r8.www)); + r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) / intBitsToFloat(r17.ww)); + r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + vec2(-0.500000000f, -0.500000000f)); + r17.xy = floatBitsToInt(intBitsToFloat(r17.xy) + intBitsToFloat(r17.xy)); + r17.xy = floatBitsToInt(-intBitsToFloat(r7.yy) + abs(intBitsToFloat(r17.xy))); + r8.w = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f)); + r17.xy = saturate(floatBitsToInt(intBitsToFloat(r17.xy) / intBitsToFloat(r8.ww))); + r17.xy = floatBitsToInt(-intBitsToFloat(r17.xy) + vec2(1.00000000f, 1.00000000f)); + r8.w = floatBitsToInt(intBitsToFloat(r17.y) * intBitsToFloat(r17.x)); + r17.x = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r8.w)); + r8.w = floatBitsToInt(fma(-intBitsToFloat(r8.w), float(2.00000000f), float(3.00000000f))); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r17.x)); + r8.w = floatBitsToInt(min(intBitsToFloat(r8.w), float(1.00000000f))); + r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r18.xyz)); + r8.w = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(1.44269502f)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r17.xyz = floatBitsToInt(intBitsToFloat(r8.www) * intBitsToFloat(r17.xyz)); + r8.y = int(uint(r8.y) & uint(0x00000001)); + if (uint(r8.y) != uint(0)) + { + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000000) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000010) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000020) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000030) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000080) / 16)).xyzw)); + r23.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x00000090) / 16)).xyz)); + r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.x) * 11u + uint(0x000000a0) / 16)).xyzw)); + r25.x = r18.x; + r25.y = r19.x; + r25.z = r20.x; + r25.w = r21.x; + r25.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r26.x = r18.y; + r26.y = r19.y; + r26.z = r20.y; + r26.w = r21.y; + r25.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r26.x = r18.z; + r26.y = r19.z; + r26.z = r20.z; + r26.w = r21.z; + r25.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r21.x = r18.w; + r21.y = r19.w; + r21.z = r20.w; + r8.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r21))); + r18.xyz = floatBitsToInt(intBitsToFloat(r25.xyz) / intBitsToFloat(r8.yyy)); + r19.xyz = floatBitsToInt(intBitsToFloat(r23.xyz) + -v1.v.xyz); + r8.y = floatBitsToInt(dot(intBitsToFloat(r19.xyz), intBitsToFloat(r19.xyz))); + r8.y = floatBitsToInt(sqrt(intBitsToFloat(r8.y))); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r24.x), intBitsToFloat(r24.y))); + r8.y = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r8.y)); + r8.y = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r8.y), intBitsToFloat(r18.z))); + r18.xy = saturate(r18.xy); + r18.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw))); + r18.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r18.xy), float(0.00000000f)))).xy); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), float(2.00000000f), float(-1.00000000f))); + r8.w = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000); + r11.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r8.w = -r8.w + r11.w; + r8.w = floatBitsToInt(float(r8.w)); + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r24.w)); + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * float(1.44269502f)); + r8.y = floatBitsToInt(exp2(intBitsToFloat(r8.y))); + r11.w = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r8.w)); + r16.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r11.w)); + r16.x = floatBitsToInt(intBitsToFloat(r16.x) * float(0.00999999978f)); + r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r16.x)); + r17.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r18.x)); + r18.x = floatBitsToInt(fma(-intBitsToFloat(r17.w), intBitsToFloat(r17.w), intBitsToFloat(r18.y))); + r16.x = floatBitsToInt(max(intBitsToFloat(r16.x), intBitsToFloat(r18.x))); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.w), intBitsToFloat(r8.y), -intBitsToFloat(r17.w))); + r8.y = floatBitsToInt(fma(intBitsToFloat(r8.y), intBitsToFloat(r8.y), intBitsToFloat(r16.x))); + r8.y = floatBitsToInt(intBitsToFloat(r16.x) / intBitsToFloat(r8.y)); + r8.y = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r8.y)); + r8.w = floatBitsToInt(-intBitsToFloat(r8.x) + float(1.00000000f)); + r8.y = saturate(floatBitsToInt(intBitsToFloat(r8.y) / intBitsToFloat(r8.w))); + r11.w = intBitsToFloat(r17.w) >= intBitsToFloat(r11.w) ? int(0xffffffff) : int(0x00000000); + r8.y = int(movc(uint(r11.w), uint(0x3f800000), uint(r8.y))); + r18.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(uvec3(r16.yzw), uvec3(0x00000020, 0x00000020, 0x00000020)))); + if (uint(r18.x) != uint(0)) + { + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000000) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000010) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000020) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000030) / 16)).xyzw)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000080) / 16)).xyzw)); + r24.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x00000090) / 16)).xyz)); + r25 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.y) * 11u + uint(0x000000a0) / 16)).xyzw)); + r26.x = r19.x; + r26.y = r20.x; + r26.z = r21.x; + r26.w = r22.x; + r26.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r26))); + r27.x = r19.y; + r27.y = r20.y; + r27.z = r21.y; + r27.w = r22.y; + r26.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r27))); + r27.x = r19.z; + r27.y = r20.z; + r27.z = r21.z; + r27.w = r22.z; + r26.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r27))); + r22.x = r19.w; + r22.y = r20.w; + r22.z = r21.w; + r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r19.xyz = floatBitsToInt(intBitsToFloat(r26.xyz) / intBitsToFloat(r11.www)); + r20.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) + -v1.v.xyz); + r11.w = floatBitsToInt(dot(intBitsToFloat(r20.xyz), intBitsToFloat(r20.xyz))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r25.x), intBitsToFloat(r25.y))); + r11.w = floatBitsToInt(-intBitsToFloat(r19.z) + intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r25.z), intBitsToFloat(r11.w), intBitsToFloat(r19.z))); + r19.xy = saturate(r19.xy); + r16.xy = floatBitsToInt(fma(intBitsToFloat(r19.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw))); + r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r17.w = float(0.00000000f) < intBitsToFloat(r25.w) ? int(0xffffffff) : int(0x00000000); + r18.x = intBitsToFloat(r25.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r17.w = -r17.w + r18.x; + r17.w = floatBitsToInt(float(r17.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r25.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r18.x = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r17.w)); + r18.w = floatBitsToInt(intBitsToFloat(r25.w) * intBitsToFloat(r18.x)); + r18.w = floatBitsToInt(intBitsToFloat(r18.w) * float(0.00999999978f)); + r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w)); + r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r17.w)); + r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y))); + r16.y = floatBitsToInt(max(intBitsToFloat(r18.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r17.w), intBitsToFloat(r11.w), -intBitsToFloat(r16.x))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w)); + r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w))); + r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r18.x) ? int(0xffffffff) : int(0x00000000); + r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w))); + } + else + { + r11.w = int(uint(0x3f800000)); + } + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w)); + if (uint(r18.y) != uint(0)) + { + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000000) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000010) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000020) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000030) / 16)).xyzw)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000080) / 16)).xyzw)); + r18.xyw = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x00000090) / 16)).xyz)); + r24 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.z) * 11u + uint(0x000000a0) / 16)).xyzw)); + r25.x = r19.x; + r25.y = r20.x; + r25.z = r21.x; + r25.w = r22.x; + r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r19.y; + r25.y = r20.y; + r25.z = r21.y; + r25.w = r22.y; + r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r19.z; + r25.y = r20.z; + r25.z = r21.z; + r25.w = r22.z; + r16.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r22.x = r19.w; + r22.y = r20.w; + r22.z = r21.w; + r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r22))); + r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) / intBitsToFloat(r11.www)); + r18.xyw = floatBitsToInt(intBitsToFloat(r18.xyw) + -v1.v.xyz); + r11.w = floatBitsToInt(dot(intBitsToFloat(r18.xyw), intBitsToFloat(r18.xyw))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r24.x), intBitsToFloat(r24.y))); + r11.w = floatBitsToInt(-intBitsToFloat(r16.z) + intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r24.z), intBitsToFloat(r11.w), intBitsToFloat(r16.z))); + r16.xy = saturate(r16.xy); + r16.xy = floatBitsToInt(fma(intBitsToFloat(r16.xy), intBitsToFloat(r23.xy), intBitsToFloat(r23.zw))); + r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r16.z = float(0.00000000f) < intBitsToFloat(r24.w) ? int(0xffffffff) : int(0x00000000); + r17.w = intBitsToFloat(r24.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r16.z = -r16.z + r17.w; + r16.z = floatBitsToInt(float(r16.z)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r24.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r17.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z)); + r18.x = floatBitsToInt(intBitsToFloat(r24.w) * intBitsToFloat(r17.w)); + r18.x = floatBitsToInt(intBitsToFloat(r18.x) * float(0.00999999978f)); + r18.x = floatBitsToInt(intBitsToFloat(r18.x) * intBitsToFloat(r18.x)); + r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x)); + r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y))); + r16.y = floatBitsToInt(max(intBitsToFloat(r18.x), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w)); + r11.w = saturate(floatBitsToInt(intBitsToFloat(r11.w) / intBitsToFloat(r8.w))); + r16.x = intBitsToFloat(r16.x) >= intBitsToFloat(r17.w) ? int(0xffffffff) : int(0x00000000); + r11.w = int(movc(uint(r16.x), uint(0x3f800000), uint(r11.w))); + } + else + { + r11.w = int(uint(0x3f800000)); + } + r8.y = floatBitsToInt(intBitsToFloat(r8.y) * intBitsToFloat(r11.w)); + if (uint(r18.z) != uint(0)) + { + r18 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000000) / 16)).xyzw)); + r19 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000010) / 16)).xyzw)); + r20 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000020) / 16)).xyzw)); + r21 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000030) / 16)).xyzw)); + r22 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000080) / 16)).xyzw)); + r16.xyz = floatBitsToInt(vec3(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x00000090) / 16)).xyz)); + r23 = floatBitsToInt(vec4(texelFetch(resourceSamplerPair_5_ps, int(uint(r16.w) * 11u + uint(0x000000a0) / 16)).xyzw)); + r24.x = r18.x; + r24.y = r19.x; + r24.z = r20.x; + r24.w = r21.x; + r24.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r24))); + r25.x = r18.y; + r25.y = r19.y; + r25.z = r20.y; + r25.w = r21.y; + r24.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r25.x = r18.z; + r25.y = r19.z; + r25.z = r20.z; + r25.w = r21.z; + r24.z = floatBitsToInt(dot(v1.v, intBitsToFloat(r25))); + r21.x = r18.w; + r21.y = r19.w; + r21.z = r20.w; + r11.w = floatBitsToInt(dot(v1.v, intBitsToFloat(r21))); + r18.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) / intBitsToFloat(r11.www)); + r16.xyz = floatBitsToInt(intBitsToFloat(r16.xyz) + -v1.v.xyz); + r11.w = floatBitsToInt(dot(intBitsToFloat(r16.xyz), intBitsToFloat(r16.xyz))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r11.w))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r23.x), intBitsToFloat(r23.y))); + r11.w = floatBitsToInt(-intBitsToFloat(r18.z) + intBitsToFloat(r11.w)); + r11.w = floatBitsToInt(fma(intBitsToFloat(r23.z), intBitsToFloat(r11.w), intBitsToFloat(r18.z))); + r18.xy = saturate(r18.xy); + r16.xy = floatBitsToInt(fma(intBitsToFloat(r18.xy), intBitsToFloat(r22.xy), intBitsToFloat(r22.zw))); + r16.xy = floatBitsToInt(((textureLod(resourceSamplerPair_6_ps, intBitsToFloat(r16.xy), float(0.00000000f)))).xy); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), float(2.00000000f), float(-1.00000000f))); + r16.z = float(0.00000000f) < intBitsToFloat(r23.w) ? int(0xffffffff) : int(0x00000000); + r16.w = intBitsToFloat(r23.w) < float(0.00000000f) ? int(0xffffffff) : int(0x00000000); + r16.z = -r16.z + r16.w; + r16.z = floatBitsToInt(float(r16.z)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r23.w)); + r11.w = floatBitsToInt(intBitsToFloat(r11.w) * float(1.44269502f)); + r11.w = floatBitsToInt(exp2(intBitsToFloat(r11.w))); + r16.w = floatBitsToInt(intBitsToFloat(r11.w) * intBitsToFloat(r16.z)); + r17.w = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r16.w)); + r17.w = floatBitsToInt(intBitsToFloat(r17.w) * float(0.00999999978f)); + r17.w = floatBitsToInt(intBitsToFloat(r17.w) * intBitsToFloat(r17.w)); + r16.x = floatBitsToInt(intBitsToFloat(r16.z) * intBitsToFloat(r16.x)); + r16.y = floatBitsToInt(fma(-intBitsToFloat(r16.x), intBitsToFloat(r16.x), intBitsToFloat(r16.y))); + r16.y = floatBitsToInt(max(intBitsToFloat(r17.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r16.z), intBitsToFloat(r11.w), -intBitsToFloat(r16.x))); + r11.w = floatBitsToInt(fma(intBitsToFloat(r11.w), intBitsToFloat(r11.w), intBitsToFloat(r16.y))); + r11.w = floatBitsToInt(intBitsToFloat(r16.y) / intBitsToFloat(r11.w)); + r8.x = floatBitsToInt(-intBitsToFloat(r8.x) + intBitsToFloat(r11.w)); + r8.x = saturate(floatBitsToInt(intBitsToFloat(r8.x) / intBitsToFloat(r8.w))); + r8.w = intBitsToFloat(r16.x) >= intBitsToFloat(r16.w) ? int(0xffffffff) : int(0x00000000); + r8.x = int(movc(uint(r8.w), uint(0x3f800000), uint(r8.x))); + } + else + { + r8.x = int(uint(0x3f800000)); + } + r8.w = floatBitsToInt(intBitsToFloat(r8.x) * intBitsToFloat(r8.y)); + r8.x = floatBitsToInt(fma(-intBitsToFloat(r8.y), intBitsToFloat(r8.x), float(1.00000000f))); + r8.x = floatBitsToInt(fma(intBitsToFloat(r10.w), intBitsToFloat(r8.x), intBitsToFloat(r8.w))); + } + else + { + r8.x = int(uint(0x3f800000)); + } + r8.xyw = floatBitsToInt(intBitsToFloat(r8.xxx) * intBitsToFloat(r17.xyz)); + } + else + { + r11.xyz = floatBitsToInt(intBitsToFloat(r11.xyz) + -v1.v.xyz); + r10.w = floatBitsToInt(dot(intBitsToFloat(r11.xyz), intBitsToFloat(r11.xyz))); + r11.w = floatBitsToInt(sqrt(intBitsToFloat(r10.w))); + r16.x = r12.x; + r16.y = r13.x; + r16.z = r14.x; + r16.w = r15.x; + r16.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r16))); + r17.x = r12.y; + r17.y = r13.y; + r17.z = r14.y; + r17.w = r15.y; + r16.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r17.x = r12.z; + r17.y = r13.z; + r17.z = r14.z; + r17.w = r15.z; + r12.x = floatBitsToInt(dot(v1.v, intBitsToFloat(r17))); + r15.x = r12.w; + r15.y = r13.w; + r15.z = r14.w; + r12.y = floatBitsToInt(dot(v1.v, intBitsToFloat(r15))); + r12.x = float(0.00000000f) < intBitsToFloat(r12.x) ? int(0xffffffff) : int(0x00000000); + r12.x = int(uint(r12.x) & uint(0x3f800000)); + r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * intBitsToFloat(r12.xxx)); + r9.xy = saturate(floatBitsToInt(fma(intBitsToFloat(r9.yw), intBitsToFloat(r11.ww), intBitsToFloat(r9.xz)))); + r9.xy = floatBitsToInt(intBitsToFloat(r9.xy) * intBitsToFloat(r9.xy)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) * intBitsToFloat(r9.y)); + r9.xyz = floatBitsToInt(intBitsToFloat(r9.xxx) * intBitsToFloat(r10.xyz)); + r9.w = floatBitsToInt(inversesqrt(intBitsToFloat(r10.w))); + r7.xzw = floatBitsToInt(intBitsToFloat(r9.www) * intBitsToFloat(r11.xyz)); + r10.xy = floatBitsToInt(intBitsToFloat(r16.xy) / intBitsToFloat(r12.yy)); + r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + vec2(-0.500000000f, -0.500000000f)); + r10.xy = floatBitsToInt(intBitsToFloat(r10.xy) + intBitsToFloat(r10.xy)); + r10.xy = floatBitsToInt(-intBitsToFloat(r7.yy) + abs(intBitsToFloat(r10.xy))); + r7.y = floatBitsToInt(-intBitsToFloat(r7.y) + float(1.00000000f)); + r10.xy = saturate(floatBitsToInt(intBitsToFloat(r10.xy) / intBitsToFloat(r7.yy))); + r10.xy = floatBitsToInt(-intBitsToFloat(r10.xy) + vec2(1.00000000f, 1.00000000f)); + r7.y = floatBitsToInt(intBitsToFloat(r10.y) * intBitsToFloat(r10.x)); + r9.w = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.y)); + r7.y = floatBitsToInt(fma(-intBitsToFloat(r7.y), float(2.00000000f), float(3.00000000f))); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.w)); + r7.y = floatBitsToInt(min(intBitsToFloat(r7.y), float(1.00000000f))); + r9.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz)); + r7.y = floatBitsToInt(intBitsToFloat(r8.z) * -intBitsToFloat(r11.w)); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) * float(1.44269502f)); + r7.y = floatBitsToInt(exp2(intBitsToFloat(r7.y))); + r8.xyw = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r9.xyz)); + } + r7.y = floatBitsToInt(dot(intBitsToFloat(r7.xzw), intBitsToFloat(r7.xzw))); + r7.y = floatBitsToInt(inversesqrt(intBitsToFloat(r7.y))); + r7.xyz = floatBitsToInt(intBitsToFloat(r7.yyy) * intBitsToFloat(r7.xzw)); + r8.xyz = floatBitsToInt(intBitsToFloat(r0.xxx) * intBitsToFloat(r8.xyw)); + r9.xyz = floatBitsToInt(fma(-v1.v.xyz, intBitsToFloat(r2.zzz), intBitsToFloat(r7.xyz))); + r7.w = floatBitsToInt(dot(intBitsToFloat(r9.xyz), intBitsToFloat(r9.xyz))); + r7.w = floatBitsToInt(inversesqrt(intBitsToFloat(r7.w))); + r9.xyz = floatBitsToInt(intBitsToFloat(r7.www) * intBitsToFloat(r9.xyz)); + r7.x = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r7.xyz)))); + r7.y = saturate(floatBitsToInt(dot(intBitsToFloat(r1.xyz), intBitsToFloat(r9.xyz)))); + r7.z = saturate(floatBitsToInt(dot(intBitsToFloat(r3.xyz), intBitsToFloat(r9.xyz)))); + r8.xyz = floatBitsToInt(intBitsToFloat(r8.xyz) * intBitsToFloat(r7.xxx)); + r8.xyz = floatBitsToInt(intBitsToFloat(r2.xxx) * intBitsToFloat(r8.xyz)); + r7.w = floatBitsToInt(log2(intBitsToFloat(r7.y))); + r8.w = floatBitsToInt(intBitsToFloat(r0.z) * intBitsToFloat(r7.w)); + r8.w = floatBitsToInt(exp2(intBitsToFloat(r8.w))); + r8.w = floatBitsToInt(intBitsToFloat(r0.w) * intBitsToFloat(r8.w)); + r7.z = floatBitsToInt(max(intBitsToFloat(r7.z), float(1.00000001e-10f))); + r9.x = floatBitsToInt(min(intBitsToFloat(r2.w), intBitsToFloat(r7.x))); + r7.y = floatBitsToInt(intBitsToFloat(r7.y) + intBitsToFloat(r7.y)); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r2.w) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r9.z = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r2.w)); + r9.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r9.z))); + r9.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.x = floatBitsToInt(intBitsToFloat(r9.x) / intBitsToFloat(r7.z)); + r9.x = int(movc(uint(r9.y), uint(r9.x), uint(r2.y))); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * intBitsToFloat(r9.x)); + r8.w = floatBitsToInt(intBitsToFloat(r8.w) * float(0.250000000f)); + r7.w = floatBitsToInt(intBitsToFloat(r0.y) * intBitsToFloat(r7.w)); + r7.w = floatBitsToInt(exp2(intBitsToFloat(r7.w))); + r7.w = floatBitsToInt(intBitsToFloat(r4.z) * intBitsToFloat(r7.w)); + r9.x = floatBitsToInt(min(intBitsToFloat(r4.y), intBitsToFloat(r7.x))); + r9.y = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r9.x)); + r9.y = intBitsToFloat(r7.z) >= intBitsToFloat(r9.y) ? int(0xffffffff) : int(0x00000000); + r9.x = intBitsToFloat(r4.y) == intBitsToFloat(r9.x) ? int(0xffffffff) : int(0x00000000); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r4.y)); + r7.x = int(movc(uint(r9.x), uint(0x3f800000), uint(r7.x))); + r7.x = floatBitsToInt(intBitsToFloat(r7.y) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(intBitsToFloat(r7.x) / intBitsToFloat(r7.z)); + r7.x = int(movc(uint(r9.y), uint(r7.x), uint(r4.w))); + r7.x = floatBitsToInt(intBitsToFloat(r7.w) * intBitsToFloat(r7.x)); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.250000000f), -intBitsToFloat(r8.w))); + r7.x = floatBitsToInt(fma(intBitsToFloat(r7.x), float(0.0500000007f), intBitsToFloat(r8.w))); + r5.xyz = floatBitsToInt(fma(intBitsToFloat(r8.xyz), intBitsToFloat(r7.xxx), intBitsToFloat(r5.xyz))); + r5.w = r5.w + int(1); + } + o0.xyz = uintBitsToFloat(uvec3(r5.xyz)); + //o1.x = uintBitsToFloat(uint(r1.w)); + o0.w = uintBitsToFloat(uint(r1.w)); + return; +} + +[test] +#link success +program binary save restore +uniform int resourceSamplerPair_0_ps 0 +uniform int resourceSamplerPair_1_ps 1 +uniform int resourceSamplerPair_2_ps 2 +uniform int resourceSamplerPair_3_ps 3 +uniform int resourceSamplerPair_4_ps 4 +uniform int resourceSamplerPair_5_ps 5 +uniform int resourceSamplerPair_6_ps 6 +draw rect -1 -1 2 2 |