#version 430 core // cs_5_0 // Checksum: 3aaa8fff_220bd86b_5de724b8_b7241e38 // Name: FTileDefferedComputeShader1FALSE_TileDeferredCompute #extension GL_ARB_enhanced_layouts : enable #extension GL_ARB_shader_texture_image_samples : enable #extension GL_EXT_shader_integer_mix : enable 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; shared uint g0[1]; shared uint g1[1]; shared uint g2[1]; shared uint g3[682][1]; layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in; // Uniform buffer declarations (dcl_constant_buffer) layout (std140) uniform cb_cs0 { vec4 cb_csl0[43]; } idx_uniforms0_cs; layout (std140) uniform cb_cs8 { vec4 cb_csl8[4096]; } idx_uniforms8_cs; layout (std140) uniform cb_cs9 { vec4 cb_csl9[4096]; } idx_uniforms9_cs; writeonly uniform restrict image2D u0; // Sampler/resource pairs layout(location = 0) uniform sampler2D resourceSamplerPair_0_cs; // res2, s4 layout(location = 1) uniform sampler2D resourceSamplerPair_1_cs; // res0, s0 layout(location = 2) uniform sampler2D resourceSamplerPair_2_cs; // res1, s2 layout(location = 3) uniform sampler2D resourceSamplerPair_3_cs; // res3, s1 layout(location = 4) uniform sampler2D resourceSamplerPair_4_cs; // res4, s3 layout(location = 5) uniform sampler2D resourceSamplerPair_5_cs; // res6, s5 layout(location = 6) uniform usampler3D resourceSamplerPair_6_cs; // res9, s-1 layout(location = 7) uniform usampler3D resourceSamplerPair_7_cs; // res8, s-1 layout(location = 8) uniform sampler2D resourceSamplerPair_8_cs; // res7, s6 layout(location = 9) uniform sampler2D resourceSamplerPair_9_cs; // res5, s7 void Initialise() { } #define rcp(x) (1/(x)) 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(gl_GlobalInvocationID.xy) + floatBitsToInt(idx_uniforms0_cs.cb_csl0[31].zw); r0.xy = floatBitsToInt(vec2(uvec2(r0.xy))); r0.xy = floatBitsToInt(intBitsToFloat(r0.xy) + vec2(0.500000000f, 0.500000000f)); r0.zw = floatBitsToInt(rcp(idx_uniforms0_cs.cb_csl0[32].xy)); r0.xy = floatBitsToInt(intBitsToFloat(r0.zw) * intBitsToFloat(r0.xy)); r0.z = floatBitsToInt(((textureLod(resourceSamplerPair_0_cs, intBitsToFloat(r0.xy), float(0.00000000f))).yzxw).z); r0.z = floatBitsToInt(min(intBitsToFloat(r0.z), float(0.999000013f))); r0.z = floatBitsToInt(fma(intBitsToFloat(r0.z), idx_uniforms0_cs.cb_csl0[41].z, -idx_uniforms0_cs.cb_csl0[41].w)); r0.z = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r0.z)); r0.w = floatBitsToInt(min(intBitsToFloat(r0.z), float(2.13909504e+09f))); r1.x = floatBitsToInt(max(intBitsToFloat(r0.z), float(0.00000000f))); r1.y = int(gl_LocalInvocationID.y) * int(16) + int(gl_LocalInvocationID.x); if (uint(r1.y) == uint(0)) { g0[uint(0x00000000) / 4u + 0u] = uint(r0.w); g1[uint(0x00000000) / 4u + 0u] = uint(r1.x); g2[uint(0x00000000) / 4u + 0u] = uint(0x00000000); } barrier(); r1.z = intBitsToFloat(r1.x) >= intBitsToFloat(r0.w) ? int(0xffffffff) : int(0x00000000); if (uint(r1.z) != uint(0)) { atomicMin(g0[int(uint(0x00000000)) / 4u], uint(r0.w)); atomicMax(g1[int(uint(0x00000000)) / 4u], uint(r1.x)); } barrier(); r0.w = int(g0[uint(0x00000000) / 4u + 0u]); r2.y = int(g1[uint(0x00000000) / 4u + 0u]); r1.xz = floatBitsToInt(vec2(floatBitsToUint(idx_uniforms0_cs.cb_csl0[31].xy))); r2.zw = floatBitsToInt(intBitsToFloat(r1.xz) * vec2(0.0312500000f, 0.0312500000f)); r3.xy = floatBitsToInt(vec2(gl_WorkGroupID.xy)); r3.zw = floatBitsToInt(fma(intBitsToFloat(r1.xz), vec2(0.0312500000f, 0.0312500000f), -intBitsToFloat(r3.xy))); r3.y = floatBitsToInt(intBitsToFloat(r2.z) * idx_uniforms0_cs.cb_csl0[33].x); r3.x = floatBitsToInt(intBitsToFloat(r2.w) * -idx_uniforms0_cs.cb_csl0[34].y); r4 = floatBitsToInt(-intBitsToFloat(r3.yzxw) + vec4(0.00000000f, 1.00000000f, 0.00000000f, 1.00000000f)); r3 = floatBitsToInt(intBitsToFloat(r3.yzxw) + vec4(0.00000000f, 1.00000000f, 0.00000000f, 1.00000000f)); r5.w = floatBitsToInt(-intBitsToFloat(r0.w)); r0.w = floatBitsToInt(dot(intBitsToFloat(r4.xy), intBitsToFloat(r4.xy))); r0.w = floatBitsToInt(sqrt(intBitsToFloat(r0.w))); r0.w = floatBitsToInt(rcp(intBitsToFloat(r0.w))); r2.zw = floatBitsToInt(intBitsToFloat(r0.ww) * intBitsToFloat(r4.xy)); r0.w = floatBitsToInt(dot(intBitsToFloat(r3.xy), intBitsToFloat(r3.xy))); r0.w = floatBitsToInt(sqrt(intBitsToFloat(r0.w))); r0.w = floatBitsToInt(rcp(intBitsToFloat(r0.w))); r3.xy = floatBitsToInt(intBitsToFloat(r0.ww) * intBitsToFloat(r3.xy)); r0.w = floatBitsToInt(dot(intBitsToFloat(r4.zw), intBitsToFloat(r4.zw))); r0.w = floatBitsToInt(sqrt(intBitsToFloat(r0.w))); r0.w = floatBitsToInt(rcp(intBitsToFloat(r0.w))); r4.xy = floatBitsToInt(intBitsToFloat(r0.ww) * intBitsToFloat(r4.zw)); r0.w = floatBitsToInt(dot(intBitsToFloat(r3.zw), intBitsToFloat(r3.zw))); r0.w = floatBitsToInt(sqrt(intBitsToFloat(r0.w))); r0.w = floatBitsToInt(rcp(intBitsToFloat(r0.w))); r3.zw = floatBitsToInt(intBitsToFloat(r0.ww) * intBitsToFloat(r3.zw)); r0.w = r1.y; while (true) { r1.w = uint(r0.w) >= floatBitsToUint(idx_uniforms0_cs.cb_csl0[42].w) ? int(0xffffffff) : int(0x00000000); if (uint(r1.w) != uint(0)) break; r5.x = int(floatBitsToUint(abs(idx_uniforms8_cs.cb_csl8[r0.w].z))); r5.yz = ivec2(floatBitsToUint(idx_uniforms8_cs.cb_csl8[r0.w].xy)); r1.w = floatBitsToInt(dot(intBitsToFloat(r2.wz), intBitsToFloat(r5.xy))); r1.w = intBitsToFloat(r1.w) >= -idx_uniforms8_cs.cb_csl8[r0.w].w ? int(0xffffffff) : int(0x00000000); r4.z = floatBitsToInt(dot(intBitsToFloat(r3.yx), intBitsToFloat(r5.xy))); r4.z = intBitsToFloat(r4.z) >= -idx_uniforms8_cs.cb_csl8[r0.w].w ? int(0xffffffff) : int(0x00000000); r1.w = int(uint(r1.w) & uint(r4.z)); r4.z = floatBitsToInt(dot(intBitsToFloat(r4.yx), intBitsToFloat(r5.xz))); r4.z = intBitsToFloat(r4.z) >= -idx_uniforms8_cs.cb_csl8[r0.w].w ? int(0xffffffff) : int(0x00000000); r1.w = int(uint(r1.w) & uint(r4.z)); r4.z = floatBitsToInt(dot(intBitsToFloat(r3.wz), intBitsToFloat(r5.xz))); r4.z = intBitsToFloat(r4.z) >= -idx_uniforms8_cs.cb_csl8[r0.w].w ? int(0xffffffff) : int(0x00000000); r1.w = int(uint(r1.w) & uint(r4.z)); r4.z = floatBitsToInt(dot(vec2(1.00000000f, 1.00000000f), intBitsToFloat(r5.xw))); r4.z = intBitsToFloat(r4.z) >= -idx_uniforms8_cs.cb_csl8[r0.w].w ? int(0xffffffff) : int(0x00000000); r1.w = int(uint(r1.w) & uint(r4.z)); r2.x = r5.x; r2.x = floatBitsToInt(dot(vec2(-1.00000000f, 1.00000000f), intBitsToFloat(r2.xy))); r2.x = intBitsToFloat(r2.x) >= -idx_uniforms8_cs.cb_csl8[r0.w].w ? int(0xffffffff) : int(0x00000000); r1.w = int(uint(r1.w) & uint(r2.x)); if (uint(r1.w) != uint(0)) { r6.x = int(atomicAdd(g2[int(uint(0x00000000)) / 4u], uint(int(1)))); g3[uint(r6.x)][uint(0x00000000) / 4u + 0u] = uint(r0.w); } r0.w = r0.w + int(256); } barrier(); r0.w = int(g2[uint(0x00000000) / 4u + 0u]); r1.yw = floatBitsToInt(vec2(gl_GlobalInvocationID.xy)); r1.yw = floatBitsToInt(intBitsToFloat(r1.yw) + vec2(0.500000000f, 0.500000000f)); r1.xz = floatBitsToInt(rcp(intBitsToFloat(r1.xz))); r1.xy = floatBitsToInt(fma(intBitsToFloat(r1.yw), intBitsToFloat(r1.xz), vec2(-0.500000000f, -0.500000000f))); r1.xy = floatBitsToInt(intBitsToFloat(r0.zz) * intBitsToFloat(r1.xy)); r2 = floatBitsToInt((textureLod(resourceSamplerPair_1_cs, intBitsToFloat(r0.xy), float(0.00000000f)))); r2.xyz = floatBitsToInt(fma(intBitsToFloat(r2.xyz), vec3(2.00000000f, 2.00000000f, 2.00000000f), vec3(-1.00000000f, -1.00000000f, -1.00000000f))); r3 = floatBitsToInt((textureLod(resourceSamplerPair_2_cs, intBitsToFloat(r0.xy), float(0.00000000f)))); r4 = floatBitsToInt((textureLod(resourceSamplerPair_3_cs, intBitsToFloat(r0.xy), float(0.00000000f)))); r4 = floatBitsToInt(intBitsToFloat(r4) + vec4(1.00000000f, 1.00000000f, 1.00000000f, 1.00000000f)); r5 = floatBitsToInt(intBitsToFloat(r4) * vec4(0.500000000f, 0.500000000f, 0.500000000f, 0.500000000f)); r1.z = floatBitsToInt(intBitsToFloat(r2.w) * float(255.000000f)); r1.z = floatBitsToInt(ceil(intBitsToFloat(r1.z))); r1.z = int(uint(intBitsToFloat(r1.z))); r6 = floatBitsToInt((textureLod(resourceSamplerPair_4_cs, intBitsToFloat(r0.xy), float(0.00000000f)))); r7 = floatBitsToInt((textureLod(resourceSamplerPair_5_cs, intBitsToFloat(r0.xy), float(0.00000000f)))); r7 = floatBitsToInt(intBitsToFloat(r7) * intBitsToFloat(r7)); r8 = ivec4(uvec4(r1.zzzz) & uvec4(0x00000024, 0x00000008, 0x00000020, 0x00000004)); r4.xyz = floatBitsToInt(fma(intBitsToFloat(r6.xyz), vec3(2.00000000f, 2.00000000f, 2.00000000f), vec3(-1.00000000f, -1.00000000f, -1.00000000f))); r4.xyz = ivec3(movc(uvec3(r8.xxx), uvec3(r4.xyz), uvec3(r6.xyz))); r1.xy = floatBitsToInt(intBitsToFloat(r1.xy) * vec2(2.00000000f, -2.00000000f)); r6.xyz = floatBitsToInt(intBitsToFloat(r1.yyy) * idx_uniforms0_cs.cb_csl0[1].xyz); r1.xyw = floatBitsToInt(fma(idx_uniforms0_cs.cb_csl0[0].xyz, intBitsToFloat(r1.xxx), intBitsToFloat(r6.xyz))); r1.xyw = floatBitsToInt(fma(idx_uniforms0_cs.cb_csl0[2].xyz, intBitsToFloat(r0.zzz), intBitsToFloat(r1.xyw))); r1.xyw = floatBitsToInt(intBitsToFloat(r1.xyw) + idx_uniforms0_cs.cb_csl0[3].xyz); r6.xyz = floatBitsToInt(intBitsToFloat(r1.xyw) + -idx_uniforms0_cs.cb_csl0[42].xyz); r0.z = floatBitsToInt(dot(intBitsToFloat(r6.xyz), intBitsToFloat(r6.xyz))); r0.z = floatBitsToInt(inversesqrt(intBitsToFloat(r0.z))); r6.xyz = floatBitsToInt(intBitsToFloat(r0.zzz) * intBitsToFloat(r6.xyz)); r0.z = floatBitsToInt(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r2.xyz))); r0.z = floatBitsToInt(inversesqrt(intBitsToFloat(r0.z))); r2.xyz = floatBitsToInt(intBitsToFloat(r0.zzz) * intBitsToFloat(r2.xyz)); r9.xyz = floatBitsToInt(intBitsToFloat(r3.xyz) * vec3(0.318309873f, 0.318309873f, 0.318309873f)); r10.xyz = floatBitsToInt(intBitsToFloat(r1.xyw) + -idx_uniforms0_cs.cb_csl0[20].xyz); r10.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) / idx_uniforms0_cs.cb_csl0[19].xyz); r11.xyz = floatBitsToInt(intBitsToFloat(r10.xyz) * idx_uniforms0_cs.cb_csl0[22].xyz); r10.xyz = floatBitsToInt(fma(intBitsToFloat(r10.xyz), idx_uniforms0_cs.cb_csl0[22].xyz, vec3(-0.500000000f, -0.500000000f, -0.500000000f))); r12.xyz = floatBitsToInt(floor(intBitsToFloat(r10.xyz))); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r13.xyz = floatBitsToInt(vec3(uvec3(r12.xyz))); r10.xyz = floatBitsToInt(saturate(intBitsToFloat(r10.xyz) + -intBitsToFloat(r13.xyz))); r11.xyz = floatBitsToInt(floor(intBitsToFloat(r11.xyz))); r11.xyz = ivec3(uvec3(intBitsToFloat(r11.xyz))); r11.w = int(uint(0x00000000)); r0.z = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_6_cs, r11.xyz, int(r11.w))).yzxw).z)); r11 = ivec4(uvec4(r0.zzzz) & uvec4(0x00000002, 0x00000001, 0x00000008, 0x00000004)); r11 = mix ( ivec4(0x00000000),ivec4(0xffffffff),bvec4(notEqual(r11, ivec4(0, 0, 0, 0)))); r14.xyz = mix ( ivec3(0x00000000),ivec3(0xffffffff),bvec3(lessThan(intBitsToFloat(r10.xyz), vec3(0.500000000f, 0.500000000f, 0.500000000f)))); r11.xz = ivec2(uvec2(r11.xz) & uvec2(r14.xy)); r10.xy = ivec2(movc(uvec2(r11.xz), uvec2(0x00000000, 0x00000000), uvec2(r10.xy))); r11.xz = mix ( ivec2(0x00000000),ivec2(0xffffffff),bvec2(lessThan(vec2(0.500000000f, 0.500000000f), intBitsToFloat(r10.xy)))); r11.xy = ivec2(uvec2(r11.xz) & uvec2(r11.yw)); r11.xy = ivec2(movc(uvec2(r11.xy), uvec2(0x3f800000, 0x3f800000), uvec2(r10.xy))); r10.xy = ivec2(uvec2(r0.zz) & uvec2(0x00000020, 0x00000010)); r10.xy = mix ( ivec2(0x00000000),ivec2(0xffffffff),bvec2(notEqual(r10.xy, ivec2(0, 0)))); r0.z = int(uint(r14.z) & uint(r10.x)); r0.z = int(movc(uint(r0.z), uint(0x00000000), uint(r10.z))); r2.w = float(0.500000000f) < intBitsToFloat(r0.z) ? int(0xffffffff) : int(0x00000000); r2.w = int(uint(r2.w) & uint(r10.y)); r11.z = int(movc(uint(r2.w), uint(0x3f800000), uint(r0.z))); r10.xyz = floatBitsToInt(-intBitsToFloat(r11.xyz) + vec3(1.00000000f, 1.00000000f, 1.00000000f)); r12.w = int(uint(0x00000000)); r0.z = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w))).yzxw).z)); r12.xyz = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(1.00000000f, 0.00000000f, 0.00000000f)); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r12.w = int(uint(0x00000000)); r2.w = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w))).yzwx).w)); r12.xyz = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(1.00000000f, 1.00000000f, 0.00000000f)); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r12.w = int(uint(0x00000000)); r8.x = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w)))).x)); r12.xyz = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(0.00000000f, 1.00000000f, 0.00000000f)); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r12.w = int(uint(0x00000000)); r9.w = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w))).yzwx).w)); r12.xyz = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(0.00000000f, 0.00000000f, 1.00000000f)); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r12.w = int(uint(0x00000000)); r10.w = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w))).yzwx).w)); r12.xyz = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(1.00000000f, 0.00000000f, 1.00000000f)); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r12.w = int(uint(0x00000000)); r11.w = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w))).yzwx).w)); r12.xyz = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(1.00000000f, 1.00000000f, 1.00000000f)); r12.xyz = ivec3(uvec3(intBitsToFloat(r12.xyz))); r12.w = int(uint(0x00000000)); r12.x = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r12.xyz, int(r12.w)))).x)); r12.yzw = floatBitsToInt(intBitsToFloat(r13.xyz) + vec3(0.00000000f, 1.00000000f, 1.00000000f)); r13.xyz = ivec3(uvec3(intBitsToFloat(r12.yzw))); r13.w = int(uint(0x00000000)); r12.y = floatBitsToInt(uintBitsToFloat(((texelFetch(resourceSamplerPair_7_cs, r13.xyz, int(r13.w))).yxzw).y)); r3.w = floatBitsToInt(fma(intBitsToFloat(r3.w), float(0.750000000f), float(0.250000000f))); r8.y = r8.y == int(0) ? int(0xffffffff) : int(0x00000000); r12.z = floatBitsToInt(dot(-intBitsToFloat(r6.xyz), intBitsToFloat(r4.xyz))); r12.w = floatBitsToInt(dot(intBitsToFloat(r6.xyz), intBitsToFloat(r2.xyz))); r12.w = floatBitsToInt(intBitsToFloat(r12.w) + intBitsToFloat(r12.w)); r13.xyz = floatBitsToInt(fma(intBitsToFloat(r2.xyz), -intBitsToFloat(r12.www), intBitsToFloat(r6.xyz))); r12.w = floatBitsToInt(intBitsToFloat(r5.w) * intBitsToFloat(r5.w)); r13.w = floatBitsToInt(fma(-intBitsToFloat(r12.z), intBitsToFloat(r12.z), float(1.00000000f))); r13.w = floatBitsToInt(sqrt(intBitsToFloat(r13.w))); r14.x = floatBitsToInt(saturate(dot(intBitsToFloat(r2.xyz), -intBitsToFloat(r6.xyz)))); r1.z = int(uint(r1.z) & uint(0x00000002)); r14.y = saturate(r4.x); r14.y = floatBitsToInt(intBitsToFloat(r14.y) * intBitsToFloat(r14.y)); r14.y = floatBitsToInt(intBitsToFloat(r14.y) * intBitsToFloat(r14.y)); r14.y = floatBitsToInt(float(2.00000000f) / intBitsToFloat(r14.y)); r14.z = floatBitsToInt(intBitsToFloat(r14.y) + float(-2.00000000f)); r14.y = floatBitsToInt(intBitsToFloat(r14.y) * float(0.500000000f)); r14.w = floatBitsToInt(saturate(intBitsToFloat(r4.y) * float(50.0000000f))); r14.w = floatBitsToInt(-intBitsToFloat(r4.y) + intBitsToFloat(r14.w)); r15.x = floatBitsToInt(intBitsToFloat(r12.w) * intBitsToFloat(r12.w)); r4.w = floatBitsToInt(fma(intBitsToFloat(r4.w), float(0.250000000f), float(0.500000000f))); r4.w = floatBitsToInt(intBitsToFloat(r4.w) * intBitsToFloat(r4.w)); r15.y = floatBitsToInt(intBitsToFloat(r4.w) * float(0.500000000f)); r4.w = floatBitsToInt(fma(-intBitsToFloat(r4.w), float(0.500000000f), float(1.00000000f))); r15.z = floatBitsToInt(fma(intBitsToFloat(r14.x), intBitsToFloat(r4.w), intBitsToFloat(r15.y))); r15.z = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r15.z)); r15.z = floatBitsToInt(intBitsToFloat(r15.z) * float(0.250000000f)); r16.y = r6.w; r17.xyz = ivec3(uvec3(0x00000000, 0x00000000, 0x00000000)); r15.w = int(uint(0x00000000)); while (true) { r16.z = uint(r15.w) >= uint(r0.w) ? int(0xffffffff) : int(0x00000000); if (uint(r16.z) != uint(0)) break; r16.z = int(g3[uint(r15.w)][(uint(0x00000000)) / 4u + 0u]); r16.z = r16.z * int(6); if (floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x) != uint(0)) { r16.w = int(uint(r0.z) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x)); r17.w = int(uint(r2.w) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x)); r18.x = int(uint(r8.x) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x)); r18.y = int(uint(r9.w) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x)); r18.z = int(uint(r10.w) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x)); r18.w = int(uint(r11.w) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].x)); r19.xy = ivec2(uvec2(r12.xy) & floatBitsToUint(idx_uniforms9_cs.cb_csl9[5 + r16.z].xx)); r16.w = int(movc(uint(r16.w), uint(r10.x), uint(0x00000000))); r17.w = int(movc(uint(r17.w), uint(r11.x), uint(0x00000000))); r16.w = floatBitsToInt(intBitsToFloat(r16.w) + intBitsToFloat(r17.w)); r17.w = int(movc(uint(r18.y), uint(r10.x), uint(0x00000000))); r18.x = int(movc(uint(r18.x), uint(r11.x), uint(0x00000000))); r17.w = floatBitsToInt(intBitsToFloat(r17.w) + intBitsToFloat(r18.x)); r17.w = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r17.w)); r16.w = floatBitsToInt(fma(intBitsToFloat(r16.w), intBitsToFloat(r10.y), intBitsToFloat(r17.w))); r17.w = int(movc(uint(r18.z), uint(r10.x), uint(0x00000000))); r18.x = int(movc(uint(r18.w), uint(r11.x), uint(0x00000000))); r17.w = floatBitsToInt(intBitsToFloat(r17.w) + intBitsToFloat(r18.x)); r18.x = int(movc(uint(r19.y), uint(r10.x), uint(0x00000000))); r18.y = int(movc(uint(r19.x), uint(r11.x), uint(0x00000000))); r18.x = floatBitsToInt(intBitsToFloat(r18.y) + intBitsToFloat(r18.x)); r18.x = floatBitsToInt(intBitsToFloat(r11.y) * intBitsToFloat(r18.x)); r17.w = floatBitsToInt(fma(intBitsToFloat(r17.w), intBitsToFloat(r10.y), intBitsToFloat(r18.x))); r17.w = floatBitsToInt(intBitsToFloat(r11.z) * intBitsToFloat(r17.w)); r16.w = floatBitsToInt(fma(intBitsToFloat(r16.w), intBitsToFloat(r10.z), intBitsToFloat(r17.w))); r16.w = floatBitsToInt(log2(intBitsToFloat(r16.w))); r16.w = floatBitsToInt(intBitsToFloat(r16.w) * float(2.50000000f)); r16.w = floatBitsToInt(exp2(intBitsToFloat(r16.w))); } else { r16.w = int(uint(0x3f800000)); } r17.w = float(0.00000000f) < idx_uniforms9_cs.cb_csl9[4 + r16.z].z ? int(0xffffffff) : int(0x00000000); r17.w = int(uint(r8.y) & uint(r17.w)); r18.x = float(0.00000000f) < idx_uniforms9_cs.cb_csl9[r16.z].w ? int(0xffffffff) : int(0x00000000); if (uint(r18.x) != uint(0)) { r18.xyz = floatBitsToInt(-intBitsToFloat(r1.xyw) + idx_uniforms9_cs.cb_csl9[r16.z].xyz); r18.w = floatBitsToInt(dot(intBitsToFloat(r18.xyz), intBitsToFloat(r18.xyz))); r19.x = floatBitsToInt(inversesqrt(intBitsToFloat(r18.w))); r19.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) * intBitsToFloat(r19.xxx)); r19.w = floatBitsToInt(sqrt(intBitsToFloat(r18.w))); r20.x = float(0.00000000f) < idx_uniforms9_cs.cb_csl9[4 + r16.z].w ? int(0xffffffff) : int(0x00000000); r20.y = float(0.00000000f) < idx_uniforms9_cs.cb_csl9[2 + r16.z].w ? int(0xffffffff) : int(0x00000000); r21.xyz = floatBitsToInt(vec3(-0.500000000f, -0.500000000f, -0.500000000f) * idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz); r22.xyz = floatBitsToInt(fma(-intBitsToFloat(r21.xyz), idx_uniforms9_cs.cb_csl9[2 + r16.z].www, intBitsToFloat(r18.xyz))); r21.xyz = floatBitsToInt(fma(intBitsToFloat(r21.xyz), idx_uniforms9_cs.cb_csl9[2 + r16.z].www, intBitsToFloat(r18.xyz))); r20.z = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r22.xyz))); r20.w = floatBitsToInt(dot(intBitsToFloat(r21.xyz), intBitsToFloat(r21.xyz))); r20.zw = floatBitsToInt(sqrt(intBitsToFloat(r20.zw))); r21.w = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r21.xyz))); r21.w = floatBitsToInt(fma(intBitsToFloat(r20.z), intBitsToFloat(r20.w), intBitsToFloat(r21.w))); r21.w = floatBitsToInt(intBitsToFloat(r21.w) + float(9.99999975e-05f)); r21.w = floatBitsToInt(float(2.00000000f) / intBitsToFloat(r21.w)); r23.y = floatBitsToInt(intBitsToFloat(r21.w) * float(32000.0000f)); r21.w = floatBitsToInt(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r22.xyz))); r21.x = floatBitsToInt(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r21.xyz))); r20.zw = floatBitsToInt(intBitsToFloat(r21.wx) / intBitsToFloat(r20.zw)); r20.z = floatBitsToInt(intBitsToFloat(r20.w) + intBitsToFloat(r20.z)); r23.x = floatBitsToInt(saturate(intBitsToFloat(r20.z) * float(0.500000000f))); r18.w = floatBitsToInt(intBitsToFloat(r18.w) + float(1.00000000f)); r18.w = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r18.w)); r21.y = floatBitsToInt(intBitsToFloat(r18.w) * float(32000.0000f)); r21.x = floatBitsToInt(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r19.xyz))); r22.xy = ivec2(movc(uvec2(r20.yy), uvec2(r23.xy), uvec2(r21.xy))); r18.w = floatBitsToInt(intBitsToFloat(r19.w) * idx_uniforms9_cs.cb_csl9[r16.z].w); r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w)); r18.w = floatBitsToInt(fma(-intBitsToFloat(r18.w), intBitsToFloat(r18.w), float(1.00000000f))); r18.w = floatBitsToInt(max(intBitsToFloat(r18.w), float(0.00000000f))); r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w)); r22.z = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r22.y)); r20.yzw = floatBitsToInt(intBitsToFloat(r18.xyz) * idx_uniforms9_cs.cb_csl9[r16.z].www); r18.w = floatBitsToInt(dot(intBitsToFloat(r20.yzw), intBitsToFloat(r20.yzw))); r18.w = floatBitsToInt(min(intBitsToFloat(r18.w), float(1.00000000f))); r18.w = floatBitsToInt(-intBitsToFloat(r18.w) + float(1.00000000f)); r18.w = floatBitsToInt(log2(intBitsToFloat(r18.w))); r18.w = floatBitsToInt(intBitsToFloat(r18.w) * idx_uniforms9_cs.cb_csl9[1 + r16.z].w); r21.z = floatBitsToInt(exp2(intBitsToFloat(r18.w))); r20.xy = ivec2(movc(uvec2(r20.xx), uvec2(r22.xz), uvec2(r21.xz))); r18.w = floatBitsToInt(dot(intBitsToFloat(r19.xyz), idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz)); r18.w = floatBitsToInt(intBitsToFloat(r18.w) + -idx_uniforms9_cs.cb_csl9[3 + r16.z].x); r18.w = floatBitsToInt(saturate(intBitsToFloat(r18.w) * idx_uniforms9_cs.cb_csl9[3 + r16.z].y)); r18.w = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r18.w)); } else { r20.x = floatBitsToInt(dot(intBitsToFloat(r2.xyz), idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz)); r18.xyz = ivec3(floatBitsToUint(idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz)); r20.y = int(uint(0x3f800000)); r18.w = int(uint(0x3f800000)); } r19.x = float(0.00000000f) < intBitsToFloat(r20.y) ? int(0xffffffff) : int(0x00000000); r19.y = float(0.00000000f) < intBitsToFloat(r18.w) ? int(0xffffffff) : int(0x00000000); r19.x = int(uint(r19.y) & uint(r19.x)); r17.w = r17.w == int(0) ? int(0xffffffff) : int(0x00000000); r17.w = int(uint(r17.w) & uint(r19.x)); if (uint(r17.w) != uint(0)) { r17.w = idx_uniforms9_cs.cb_csl9[r16.z].w == float(0.00000000f) ? int(0xffffffff) : int(0x00000000); r19 = ivec4(movc(uvec4(r17.wwww), uvec4(r7), uvec4(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000))); r21 = floatBitsToInt(intBitsToFloat(r3.wwww) * intBitsToFloat(r19)); r17.w = floatBitsToInt(saturate(fma(intBitsToFloat(r3.w), intBitsToFloat(r19.w), -idx_uniforms9_cs.cb_csl9[3 + r16.z].z))); r17.w = floatBitsToInt(intBitsToFloat(r17.w) * idx_uniforms9_cs.cb_csl9[3 + r16.z].w); r19.xyz = floatBitsToInt(intBitsToFloat(r5.xyz) * intBitsToFloat(r17.www)); r19.w = float(0.00000000f) < idx_uniforms9_cs.cb_csl9[4 + r16.z].x ? int(0xffffffff) : int(0x00000000); if (uint(r19.w) != uint(0)) { r19.w = float(0.00000000f) < idx_uniforms9_cs.cb_csl9[2 + r16.z].w ? int(0xffffffff) : int(0x00000000); if (uint(r19.w) != uint(0)) { r19.w = floatBitsToInt(dot(-idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz, -idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz)); r19.w = floatBitsToInt(inversesqrt(intBitsToFloat(r19.w))); r22.xyz = floatBitsToInt(intBitsToFloat(r19.www) * -idx_uniforms9_cs.cb_csl9[2 + r16.z].xyz); r23.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) * vec3(0.500000000f, 0.500000000f, 0.500000000f)); r23.xyz = floatBitsToInt(fma(-intBitsToFloat(r23.xyz), idx_uniforms9_cs.cb_csl9[2 + r16.z].www, intBitsToFloat(r18.xyz))); r22.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) * idx_uniforms9_cs.cb_csl9[2 + r16.z].www); r19.w = floatBitsToInt(dot(intBitsToFloat(r13.xyz), intBitsToFloat(r22.xyz))); r24.xyz = floatBitsToInt(fma(intBitsToFloat(r19.www), intBitsToFloat(r13.xyz), -intBitsToFloat(r22.xyz))); r20.z = floatBitsToInt(dot(intBitsToFloat(r23.xyz), intBitsToFloat(r24.xyz))); r19.w = floatBitsToInt(intBitsToFloat(r19.w) * intBitsToFloat(r19.w)); r19.w = floatBitsToInt(fma(idx_uniforms9_cs.cb_csl9[2 + r16.z].w, idx_uniforms9_cs.cb_csl9[2 + r16.z].w, -intBitsToFloat(r19.w))); r19.w = floatBitsToInt(saturate(intBitsToFloat(r20.z) / intBitsToFloat(r19.w))); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r19.www), intBitsToFloat(r22.xyz), intBitsToFloat(r23.xyz))); r19.w = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r13.xyz))); r23.xyz = floatBitsToInt(fma(intBitsToFloat(r19.www), intBitsToFloat(r13.xyz), -intBitsToFloat(r22.xyz))); r19.w = floatBitsToInt(dot(intBitsToFloat(r23.xyz), intBitsToFloat(r23.xyz))); r19.w = floatBitsToInt(sqrt(intBitsToFloat(r19.w))); r19.w = floatBitsToInt(saturate(idx_uniforms9_cs.cb_csl9[4 + r16.z].x / intBitsToFloat(r19.w))); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r23.xyz), intBitsToFloat(r19.www), intBitsToFloat(r22.xyz))); r19.w = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r22.xyz))); r19.w = floatBitsToInt(sqrt(intBitsToFloat(r19.w))); r19.w = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r19.w)); r20.z = floatBitsToInt(intBitsToFloat(r19.w) * idx_uniforms9_cs.cb_csl9[2 + r16.z].w); r20.z = floatBitsToInt(intBitsToFloat(r20.z) * float(1.57079637f)); r20.w = floatBitsToInt(fma(idx_uniforms9_cs.cb_csl9[2 + r16.z].w, intBitsToFloat(r19.w), float(1.00000000f))); r20.z = floatBitsToInt(intBitsToFloat(r20.z) / intBitsToFloat(r20.w)); r20.w = floatBitsToInt(intBitsToFloat(r19.w) * idx_uniforms9_cs.cb_csl9[4 + r16.z].x); r20.w = floatBitsToInt(intBitsToFloat(r20.w) * float(1.57079637f)); r19.w = floatBitsToInt(fma(idx_uniforms9_cs.cb_csl9[4 + r16.z].x, intBitsToFloat(r19.w), float(1.00000000f))); r19.w = floatBitsToInt(intBitsToFloat(r20.w) / intBitsToFloat(r19.w)); r20.z = floatBitsToInt(fma(intBitsToFloat(r20.z), float(0.333330005f), intBitsToFloat(r12.w))); r20.z = floatBitsToInt(sqrt(intBitsToFloat(r20.z))); r20.z = floatBitsToInt(min(intBitsToFloat(r20.z), float(1.00000000f))); r20.z = floatBitsToInt(intBitsToFloat(r5.w) / intBitsToFloat(r20.z)); r20.z = floatBitsToInt(intBitsToFloat(r20.z) * intBitsToFloat(r20.z)); r19.w = floatBitsToInt(fma(intBitsToFloat(r19.w), float(0.333330005f), intBitsToFloat(r12.w))); r19.w = floatBitsToInt(sqrt(intBitsToFloat(r19.w))); r19.w = floatBitsToInt(min(intBitsToFloat(r19.w), float(1.00000000f))); r19.w = floatBitsToInt(intBitsToFloat(r5.w) / intBitsToFloat(r19.w)); r19.w = floatBitsToInt(intBitsToFloat(r19.w) * intBitsToFloat(r19.w)); r19.w = floatBitsToInt(intBitsToFloat(r19.w) * intBitsToFloat(r19.w)); r19.w = floatBitsToInt(intBitsToFloat(r19.w) * intBitsToFloat(r20.z)); } else { r20.z = floatBitsToInt(dot(intBitsToFloat(r18.xyz), intBitsToFloat(r13.xyz))); r23.xyz = floatBitsToInt(fma(intBitsToFloat(r20.zzz), intBitsToFloat(r13.xyz), -intBitsToFloat(r18.xyz))); r20.z = floatBitsToInt(dot(intBitsToFloat(r23.xyz), intBitsToFloat(r23.xyz))); r20.z = floatBitsToInt(sqrt(intBitsToFloat(r20.z))); r20.z = floatBitsToInt(saturate(idx_uniforms9_cs.cb_csl9[4 + r16.z].x / intBitsToFloat(r20.z))); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r23.xyz), intBitsToFloat(r20.zzz), intBitsToFloat(r18.xyz))); r20.z = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r22.xyz))); r20.z = floatBitsToInt(sqrt(intBitsToFloat(r20.z))); r20.z = floatBitsToInt(idx_uniforms9_cs.cb_csl9[4 + r16.z].x / intBitsToFloat(r20.z)); r20.w = floatBitsToInt(intBitsToFloat(r20.z) * float(1.57079637f)); r20.z = floatBitsToInt(intBitsToFloat(r20.z) + float(1.00000000f)); r20.z = floatBitsToInt(intBitsToFloat(r20.w) / intBitsToFloat(r20.z)); r20.z = floatBitsToInt(fma(intBitsToFloat(r20.z), float(0.333330005f), intBitsToFloat(r12.w))); r20.z = floatBitsToInt(sqrt(intBitsToFloat(r20.z))); r20.z = floatBitsToInt(min(intBitsToFloat(r20.z), float(1.00000000f))); r20.z = floatBitsToInt(intBitsToFloat(r5.w) / intBitsToFloat(r20.z)); r20.z = floatBitsToInt(intBitsToFloat(r20.z) * intBitsToFloat(r20.z)); r19.w = floatBitsToInt(intBitsToFloat(r20.z) * intBitsToFloat(r20.z)); } r20.z = r5.w; } else { r20.w = floatBitsToInt(float(1.00000000f) + -idx_uniforms9_cs.cb_csl9[4 + r16.z].y); r20.z = floatBitsToInt(fma(intBitsToFloat(r5.w), intBitsToFloat(r20.w), idx_uniforms9_cs.cb_csl9[4 + r16.z].y)); r22.xyz = r18.xyz; r19.w = int(uint(0x3f800000)); } r20.w = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r22.xyz))); r20.w = floatBitsToInt(inversesqrt(intBitsToFloat(r20.w))); r23.xyz = floatBitsToInt(intBitsToFloat(r20.www) * intBitsToFloat(r22.xyz)); if (uint(r8.z) != uint(0)) { r22.w = floatBitsToInt(dot(intBitsToFloat(r23.xyz), intBitsToFloat(r4.xyz))); r23.w = floatBitsToInt(fma(-intBitsToFloat(r22.w), intBitsToFloat(r22.w), float(1.00000000f))); r23.w = floatBitsToInt(sqrt(intBitsToFloat(r23.w))); r22.w = floatBitsToInt(intBitsToFloat(r12.z) * intBitsToFloat(r22.w)); r22.w = floatBitsToInt(saturate(fma(intBitsToFloat(r23.w), intBitsToFloat(r13.w), -intBitsToFloat(r22.w)))); r23.w = floatBitsToInt(intBitsToFloat(r20.z) * intBitsToFloat(r20.z)); r23.w = floatBitsToInt(intBitsToFloat(r23.w) * intBitsToFloat(r23.w)); r23.w = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r23.w)); r24.x = intBitsToFloat(r22.w) < float(9.99999997e-07f) ? int(0xffffffff) : int(0x00000000); r22.w = floatBitsToInt(log2(intBitsToFloat(r22.w))); r22.w = floatBitsToInt(intBitsToFloat(r22.w) * intBitsToFloat(r23.w)); r22.w = floatBitsToInt(exp2(intBitsToFloat(r22.w))); r22.w = int(movc(uint(r24.x), uint(0x00000000), uint(r22.w))); r24.xyz = floatBitsToInt(intBitsToFloat(r19.xyz) * intBitsToFloat(r22.www)); r24.xyz = floatBitsToInt(intBitsToFloat(r19.www) * intBitsToFloat(r24.xyz)); } else { r22.xyz = floatBitsToInt(fma(intBitsToFloat(r22.xyz), intBitsToFloat(r20.www), -intBitsToFloat(r6.xyz))); r20.w = floatBitsToInt(dot(intBitsToFloat(r22.xyz), intBitsToFloat(r22.xyz))); r20.w = floatBitsToInt(inversesqrt(intBitsToFloat(r20.w))); r22.xyz = floatBitsToInt(intBitsToFloat(r20.www) * intBitsToFloat(r22.xyz)); r20.w = floatBitsToInt(saturate(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r23.xyz)))); r22.w = floatBitsToInt(saturate(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r22.xyz)))); r22.x = floatBitsToInt(saturate(dot(-intBitsToFloat(r6.xyz), intBitsToFloat(r22.xyz)))); r22.y = floatBitsToInt(intBitsToFloat(r20.z) * intBitsToFloat(r20.z)); r22.y = floatBitsToInt(intBitsToFloat(r22.y) * intBitsToFloat(r22.y)); r22.z = floatBitsToInt(fma(intBitsToFloat(r22.w), intBitsToFloat(r22.y), -intBitsToFloat(r22.w))); r22.z = floatBitsToInt(fma(intBitsToFloat(r22.z), intBitsToFloat(r22.w), float(1.00000000f))); r22.z = floatBitsToInt(intBitsToFloat(r22.z) * intBitsToFloat(r22.z)); r22.y = floatBitsToInt(intBitsToFloat(r22.y) / intBitsToFloat(r22.z)); r22.y = floatBitsToInt(intBitsToFloat(r22.y) * float(0.318309873f)); r20.z = floatBitsToInt(fma(intBitsToFloat(r20.z), float(0.500000000f), float(0.500000000f))); r20.z = floatBitsToInt(intBitsToFloat(r20.z) * intBitsToFloat(r20.z)); r22.z = floatBitsToInt(intBitsToFloat(r20.z) * float(0.500000000f)); r20.z = floatBitsToInt(fma(-intBitsToFloat(r20.z), float(0.500000000f), float(1.00000000f))); r22.w = floatBitsToInt(fma(intBitsToFloat(r14.x), intBitsToFloat(r20.z), intBitsToFloat(r22.z))); r22.w = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r22.w)); r20.z = floatBitsToInt(fma(intBitsToFloat(r20.w), intBitsToFloat(r20.z), intBitsToFloat(r22.z))); r20.z = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r20.z)); r20.z = floatBitsToInt(intBitsToFloat(r22.w) * intBitsToFloat(r20.z)); r20.z = floatBitsToInt(intBitsToFloat(r22.y) * intBitsToFloat(r20.z)); r20.w = floatBitsToInt(saturate(intBitsToFloat(r19.y) * float(50.0000000f))); r22.yzw = floatBitsToInt(fma(-intBitsToFloat(r5.xyz), intBitsToFloat(r17.www), intBitsToFloat(r20.www))); r20.w = floatBitsToInt(fma(intBitsToFloat(r22.x), float(-5.55472994f), float(-6.98316002f))); r20.w = floatBitsToInt(intBitsToFloat(r22.x) * intBitsToFloat(r20.w)); r20.w = floatBitsToInt(exp2(intBitsToFloat(r20.w))); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r22.yzw), intBitsToFloat(r20.www), intBitsToFloat(r19.xyz))); r20.z = floatBitsToInt(intBitsToFloat(r20.z) * float(0.250000000f)); r22.xyz = floatBitsToInt(intBitsToFloat(r22.xyz) * intBitsToFloat(r20.zzz)); r24.xyz = floatBitsToInt(saturate(intBitsToFloat(r19.www) * intBitsToFloat(r22.xyz))); } if (uint(r8.w) != uint(0)) { r16.x = floatBitsToInt(saturate(fma(intBitsToFloat(r20.x), float(0.500000000f), float(0.500000000f)))); r22.xyz = floatBitsToInt(((textureLod(resourceSamplerPair_8_cs, intBitsToFloat(r16.xy), float(0.00000000f)))).xyz); r20.x = saturate(r20.x); r23.xyz = floatBitsToInt(intBitsToFloat(r24.xyz) * intBitsToFloat(r20.xxx)); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r22.xyz), intBitsToFloat(r9.xyz), intBitsToFloat(r23.xyz))); } else { if (uint(r1.z) != uint(0)) { r16.x = floatBitsToInt(dot(intBitsToFloat(r18.xyz), intBitsToFloat(r18.xyz))); r16.x = floatBitsToInt(inversesqrt(intBitsToFloat(r16.x))); r23.xyz = floatBitsToInt(intBitsToFloat(r16.xxx) * intBitsToFloat(r18.xyz)); r18.xyz = floatBitsToInt(fma(intBitsToFloat(r18.xyz), intBitsToFloat(r16.xxx), -intBitsToFloat(r6.xyz))); r16.x = floatBitsToInt(dot(intBitsToFloat(r18.xyz), intBitsToFloat(r18.xyz))); r16.x = floatBitsToInt(inversesqrt(intBitsToFloat(r16.x))); r18.xyz = floatBitsToInt(intBitsToFloat(r16.xxx) * intBitsToFloat(r18.xyz)); r16.x = floatBitsToInt(saturate(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r23.xyz)))); r19.w = floatBitsToInt(saturate(dot(intBitsToFloat(r2.xyz), intBitsToFloat(r18.xyz)))); r18.x = floatBitsToInt(saturate(dot(-intBitsToFloat(r6.xyz), intBitsToFloat(r18.xyz)))); r18.y = intBitsToFloat(r19.w) < float(9.99999997e-07f) ? int(0xffffffff) : int(0x00000000); r18.z = floatBitsToInt(log2(intBitsToFloat(r19.w))); r18.z = floatBitsToInt(intBitsToFloat(r14.z) * intBitsToFloat(r18.z)); r18.z = floatBitsToInt(exp2(intBitsToFloat(r18.z))); r18.y = int(movc(uint(r18.y), uint(0x00000000), uint(r18.z))); r18.y = floatBitsToInt(intBitsToFloat(r14.y) * intBitsToFloat(r18.y)); r18.z = floatBitsToInt(dot(intBitsToFloat(r23.xyz), -intBitsToFloat(r6.xyz))); r18.z = floatBitsToInt(fma(intBitsToFloat(r18.z), float(2.00000000f), float(2.00000000f))); r18.z = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r18.z)); r20.z = floatBitsToInt(fma(intBitsToFloat(r18.x), float(-5.55472994f), float(-6.98316002f))); r18.x = floatBitsToInt(intBitsToFloat(r18.x) * intBitsToFloat(r20.z)); r18.x = floatBitsToInt(exp2(intBitsToFloat(r18.x))); r20.z = floatBitsToInt(fma(intBitsToFloat(r14.w), intBitsToFloat(r18.x), intBitsToFloat(r4.y))); r18.y = floatBitsToInt(intBitsToFloat(r18.z) * intBitsToFloat(r18.y)); r18.y = floatBitsToInt(saturate(intBitsToFloat(r20.z) * intBitsToFloat(r18.y))); r18.z = floatBitsToInt(fma(intBitsToFloat(r19.w), intBitsToFloat(r15.x), -intBitsToFloat(r19.w))); r18.z = floatBitsToInt(fma(intBitsToFloat(r18.z), intBitsToFloat(r19.w), float(1.00000000f))); r18.z = floatBitsToInt(intBitsToFloat(r18.z) * intBitsToFloat(r18.z)); r18.z = floatBitsToInt(intBitsToFloat(r15.x) / intBitsToFloat(r18.z)); r16.x = floatBitsToInt(fma(intBitsToFloat(r16.x), intBitsToFloat(r4.w), intBitsToFloat(r15.y))); r16.x = floatBitsToInt(float(1.00000000f) / intBitsToFloat(r16.x)); r16.x = floatBitsToInt(intBitsToFloat(r15.z) * intBitsToFloat(r16.x)); r19.w = floatBitsToInt(saturate(intBitsToFloat(r19.y) * float(50.0000000f))); r23.xyz = floatBitsToInt(fma(-intBitsToFloat(r5.xyz), intBitsToFloat(r17.www), intBitsToFloat(r19.www))); r19.xyz = floatBitsToInt(fma(intBitsToFloat(r23.xyz), intBitsToFloat(r18.xxx), intBitsToFloat(r19.xyz))); r16.x = floatBitsToInt(intBitsToFloat(r16.x) * intBitsToFloat(r18.z)); r19.xyz = floatBitsToInt(saturate(intBitsToFloat(r19.xyz) * intBitsToFloat(r16.xxx))); r19.xyz = floatBitsToInt(fma(intBitsToFloat(r3.xyz), vec3(0.318309873f, 0.318309873f, 0.318309873f), intBitsToFloat(r19.xyz))); r16.x = floatBitsToInt(-intBitsToFloat(r20.z) + float(1.00000000f)); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r19.xyz), intBitsToFloat(r16.xxx), intBitsToFloat(r18.yyy))); } else { r20.x = saturate(r20.x); r16.x = floatBitsToInt(fma(intBitsToFloat(r20.x), -intBitsToFloat(r6.w), intBitsToFloat(r6.w))); r17.w = floatBitsToInt(-intBitsToFloat(r16.x) + float(1.00000000f)); r18.xyz = floatBitsToInt(fma(intBitsToFloat(r9.xyz), intBitsToFloat(r17.www), intBitsToFloat(r24.xyz))); r19.xyz = floatBitsToInt(intBitsToFloat(r9.xyz) * intBitsToFloat(r16.xxx)); r22.xyz = floatBitsToInt(fma(intBitsToFloat(r20.xxx), intBitsToFloat(r18.xyz), intBitsToFloat(r19.xyz))); } } r18.xyz = floatBitsToInt(intBitsToFloat(r21.xyz) * intBitsToFloat(r21.www)); r16.x = floatBitsToInt(intBitsToFloat(r18.w) * intBitsToFloat(r20.y)); r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) * intBitsToFloat(r16.xxx)); r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) * idx_uniforms9_cs.cb_csl9[1 + r16.z].xyz); r18.xyz = floatBitsToInt(intBitsToFloat(r18.xyz) * intBitsToFloat(r22.xyz)); } else { r18.xyz = ivec3(uvec3(0x00000000, 0x00000000, 0x00000000)); } r17.xyz = floatBitsToInt(fma(intBitsToFloat(r18.xyz), intBitsToFloat(r16.www), intBitsToFloat(r17.xyz))); r15.w = r15.w + int(1); } r0.zw = mix ( ivec2(0x00000000),ivec2(0xffffffff),bvec2(lessThan(gl_GlobalInvocationID.xy, floatBitsToUint(idx_uniforms0_cs.cb_csl0[31].xy)))); r0.z = int(uint(r0.w) & uint(r0.z)); if (uint(r0.z) != uint(0)) { r0.xyz = floatBitsToInt(((textureLod(resourceSamplerPair_9_cs, intBitsToFloat(r0.xy), float(0.00000000f)))).xyz); r0.xyz = floatBitsToInt(intBitsToFloat(r0.xyz) + intBitsToFloat(r17.xyz)); r0.w = int(uint(0x00000000)); imageStore(u0, ivec2(gl_GlobalInvocationID.xy), intBitsToFloat(r0)); } return; }