diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/09085793b5a9f364_00001ffe492e9249_ps.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/09085793b5a9f364_00001ffe492e9249_ps.txt new file mode 100644 index 00000000..9703bd52 --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/09085793b5a9f364_00001ffe492e9249_ps.txt @@ -0,0 +1,1168 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader d2cb8f8abc8a00bc +UNIFORM_BUFFER_LAYOUT(33, 1, 12) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 13) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 14) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 4) uniform samplerCubeArray textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 5) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(10, 1, 6) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(14, 1, 8) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 9) uniform sampler2D textureUnitPS15; +TEXTURE_LAYOUT(16, 1, 10) uniform sampler2D textureUnitPS16; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem5; +layout(location = 3) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +#ifdef VULKAN +layout(set = 1, binding = 11) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_5(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex6 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem5); +R3i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.zw)).xyzw); +R13i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((intBitsToFloat(R3i.x) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R3i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R124i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 2.0 + -(1.0))); +PS0i = R124i.z; +// 1 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R9i.x; +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x437f0000)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +PS1i = R127i.z; +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[45].x)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), -(intBitsToFloat(PS1i)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), -(intBitsToFloat(PS1i)))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[43].x)); +PS0i = int(intBitsToFloat(PV1i.w)); +// 3 +PV1i.x = PS0i & int(1); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[45].y) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R4i.w = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y)); +PS1i = R4i.w; +// 4 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.z))); +R3i.y = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(R126i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R8i.w = ((PV1i.x == 0)?(0):(0x3f800000)); +R3i.x = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV1i.w)); +PS0i = R3i.x; +// 5 +R15i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(PV0i.z)); +PV1i.x = R15i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd)); +R0i.z = floatBitsToInt((-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R0i.z = clampFI32(R0i.z); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), uf_blockPS6[44].x)); +R5i.w = 0x3f800000; +PS1i = R5i.w; +// 6 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS6[39].z) + -(uf_blockPS6[39].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R124i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R12i.z))); +R12i.w = R13i.x; +R12i.w = clampFI32(R12i.w); +R13i.w = floatBitsToInt((-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3c23d70a) + -(0.5))); +R13i.w = clampFI32(R13i.w); +PS0i = R13i.w; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(PV0i.y),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[44].y) + intBitsToFloat(R127i.w))); +PS1i = R122i.x; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[44].z) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R126i.z))); +PV0i.y = R123i.y; +R13i.z = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.y))); +R13i.z = clampFI32(R13i.z); +R6i.w = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.y))); +R6i.w = clampFI32(R6i.w); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 9 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R14i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(PV0i.x)); +PS1i = R14i.z; +// 10 +R12i.x = floatBitsToInt(uf_blockPS1[0].y); +R14i.y = PS1i; +PV0i.y = R14i.y; +R15i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R127i.x)); +PV0i.z = R15i.z; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +// 11 +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),uf_blockPS6[39].z) + -(uf_blockPS6[39].y))); +R3i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + uf_blockPS6[39].w); +R0i.w = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +PS1i = R0i.w; +} +if( activeMaskStackC[1] == true ) { +R0i.y = floatBitsToInt(textureLod(textureUnitPS11, intBitsToFloat(R0i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.w; +R13i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockPS1[11].x,uf_blockPS1[11].y,uf_blockPS1[11].z,0.0))); +PV0i.x = R13i.x; +PV0i.y = R13i.x; +PV0i.z = R13i.x; +PV0i.w = R13i.x; +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(backupReg0i))); +PS0i = R14i.x; +// 1 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockPS1[12].x,uf_blockPS1[12].y,uf_blockPS1[12].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R15i.y = tempi.x; +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(backupReg0i))); +PS1i = R16i.y; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.x) * 2.0 + -(1.0))); +PV0i.y = R123i.y; +R16i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R0i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS1i)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(PV0i.x)))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), -(intBitsToFloat(PV0i.x)))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),intBitsToFloat(PV0i.y)) + intBitsToFloat(R3i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.w)); +R4i.y = floatBitsToInt(tempResultf); +PS1i = R4i.y; +// 4 +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x3fa66666)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV1i.x)); +PV0i.y = R126i.y; +R125i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV1i.w)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(PV1i.y)); +PV0i.w = R127i.w; +R2i.y = floatBitsToInt(intBitsToFloat(R0i.z) + uf_blockPS10[3].y); +PS0i = R2i.y; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(uf_blockPS10[2].z + 1.0); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV0i.w))); +R17i.y = floatBitsToInt(uf_blockPS1[1].y); +PS1i = R17i.y; +// 6 +backupReg0i = R3i.y; +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV1i.x))); +PV0i.x = R0i.x; +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(R4i.w)) + intBitsToFloat(PV1i.y))); +PV0i.y = R3i.y; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PV0i.z = R0i.z; +R0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y)); +R18i.y = floatBitsToInt(-(intBitsToFloat(R6i.w)) + intBitsToFloat(PV1i.z)); +R18i.y = clampFI32(R18i.y); +PS0i = R18i.y; +// 7 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R17i.z = floatBitsToInt(uf_blockPS1[2].y); +PS1i = R17i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockPS1[13].x,uf_blockPS1[13].y,uf_blockPS1[13].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R18i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R2i.w = floatBitsToInt(tempResultf); +PS0i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[39].w),intBitsToFloat(R0i.y)) + intBitsToFloat(R2i.x))); +PV0i.w = R123i.w; +// 1 +R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R126i.y = clampFI32(R126i.y); +PV1i.y = R126i.y; +// 2 +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +// 4 +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.w = R127i.w; +// 5 +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +// 6 +R14i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(R127i.w))); +R14i.w = clampFI32(R14i.w); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R10i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PV0i.x = R10i.x; +R10i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +PV0i.y = R10i.y; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.x = R123i.x; +R4i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PV1i.z = R4i.z; +R9i.w = 0; +R2i.x = PV0i.x; +PS1i = R2i.x; +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(PV1i.z))); +R0i.y = PV1i.z; +PV0i.y = R0i.y; +R2i.z = 0; +PV0i.z = R2i.z; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R16i.z),intBitsToFloat(R16i.z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R4i.y))); +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R16i.y),intBitsToFloat(R127i.x),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R15i.w = tempi.x; +R19i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +PS0i = R19i.y; +// 5 +predResult = (1.0 > intBitsToFloat(R13i.z)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.x) * 1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) * 1.5); +PV0i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R10i.z) * 1.5); +// 1 +backupReg0i = R0i.z; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.z = PV0i.w & int(1); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(R0i.w) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R3i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.y = PV1i.z - R127i.x; +PV0i.y = R4i.y; +R2i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.w = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(uf_blockPS6[53].y); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 3 +R4i.x = PS0i; +R3i.y = floatBitsToInt(uf_blockPS6[53].x); +R3i.y = floatBitsToInt(intBitsToFloat(R3i.y) / 2.0); +R3i.z = floatBitsToInt(-(intBitsToFloat(PS0i))); +PV1i.w = PV0i.y << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.y)); +// 4 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R8i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R8i.z; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R3i.w),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R3i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.w = tempi.x; +R9i.z = PS0i; +PS1i = R9i.z; +} +if( activeMaskStackC[2] == true ) { +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R7i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.z)),vec4(-(intBitsToFloat(R10i.x)),-(intBitsToFloat(R10i.y)),-(intBitsToFloat(R4i.z)),-(intBitsToFloat(R9i.w))))); +R126i.x = clampFI32(R126i.x); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R2i.w)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R3i.y))); +R10i.z = R8i.z; +PS1i = R10i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R11i.z = R8i.z; +PS0i = R11i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R4i.w))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R2i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PV0i.w))); +// 6 +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R9i.x))); +PV0i.x = R16i.x; +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(R8i.y))); +R19i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(R12i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R6i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R7i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R5i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R7i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.x)); +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV0i.x)); +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R126i.z; +// 12 +backupReg0i = R0i.w; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); +// 13 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R126i.z))); +PV1i.x = R126i.x; +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R126i.w = clampFI32(R126i.w); +PV1i.w = R126i.w; +R8i.x = floatBitsToInt((uf_blockPS6[53].x * 0.5 + intBitsToFloat(PV0i.y))); +PS1i = R8i.x; +// 14 +R9i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R3i.y)); +R8i.y = floatBitsToInt((uf_blockPS6[53].y * 0.5 + intBitsToFloat(PV1i.x))); +R8i.w = PV1i.w; +R9i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R3i.z)); +PS0i = R9i.y; +// 15 +R10i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R127i.w)); +R10i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(R4i.x)); +R9i.w = R126i.w; +R10i.w = R126i.w; +PS1i = R10i.w; +// 16 +R11i.x = floatBitsToInt((-(uf_blockPS6[53].x) * 0.5 + intBitsToFloat(R127i.y))); +R11i.y = floatBitsToInt((-(uf_blockPS6[53].y) * 0.5 + intBitsToFloat(R126i.x))); +R11i.w = R126i.w; +} +if( activeMaskStackC[2] == true ) { +R8i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R9i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +R10i.w = floatBitsToInt(textureShadow_3(textureUnitPS7, vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.w)))); +R11i.z = floatBitsToInt(textureShadow_4(textureUnitPS7, vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z),intBitsToFloat(R11i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R9i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R10i.w) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +// 2 +R6i.w = floatBitsToInt((intBitsToFloat(R11i.z) * 0.5 + intBitsToFloat(PV1i.y))/2.0); +PV0i.w = R6i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R0i.w = ((R4i.y > 0)?(PV1i.x):(0)); +// 5 +predResult = (R0i.w != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R4i.y; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002a; +R0i.z = PV1i.w + 0x0000002b; +R0i.w = PV1i.w + 0x0000002d; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R3i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R2i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R4i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R5i.y; +// 6 +R5i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.y = floatBitsToInt(textureShadow_5(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R6i.w; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.y))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0); +// 1 +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R13i.z)) + intBitsToFloat(R6i.w))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R2i.x = floatBitsToInt(intBitsToFloat(R15i.x) * intBitsToFloat(0x3a83126f)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R0i.z = floatBitsToInt(-(intBitsToFloat(R18i.z))); +PV0i.z = R0i.z; +R0i.w = 0x40400000; +R2i.y = floatBitsToInt(intBitsToFloat(R15i.z) * intBitsToFloat(0x3a83126f)); +PS0i = R2i.y; +// 1 +redcCUBE(vec4(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z),intBitsToFloat(R13i.x),intBitsToFloat(R15i.y)),vec4(intBitsToFloat(R15i.y),intBitsToFloat(R13i.x),intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +R126i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PS1i = R126i.x; +// 2 +R3i.x = floatBitsToInt((intBitsToFloat(R15i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +PV0i.y = floatBitsToInt(intBitsToFloat(R15i.w) + -(intBitsToFloat(R19i.y))); +R0i.z = PV1i.w; +R3i.w = floatBitsToInt((intBitsToFloat(R15i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 3 +backupReg0i = R127i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(R19i.y))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R126i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.w = floatBitsToInt(tempResultf); +PS1i = R127i.w; +// 4 +R0i.x = PV1i.w; +R0i.y = PV1i.z; +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), intBitsToFloat(0xbf7d70a4))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.w = 0x3f800000; +PS0i = R2i.w; +// 5 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PV1i.x = R127i.x; +R5i.y = 0; +R6i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3ba3d70a)); +R123i.w = floatBitsToInt((-(intBitsToFloat(R15i.y)) * 0.5 + 0.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 6 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x40200000)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + uf_blockPS6[27].w)/2.0); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3daaaaab)); +R4i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(0xbe593484))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.w))); +// 8 +backupReg0i = R127i.w; +R8i.x = floatBitsToInt((intBitsToFloat(R14i.w) * intBitsToFloat(0xbdcccccd) + intBitsToFloat(0x3dcccccd))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(0x3fc90da4))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(backupReg0i))); +tempResultf = log2(intBitsToFloat(PV1i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.y = floatBitsToInt(tempResultf); +PS0i = R127i.y; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R14i.y),intBitsToFloat(R15i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),-(intBitsToFloat(PV0i.y))) + 1.0)); +PS1i = R4i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R14i.y),intBitsToFloat(R15i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R14i.y),intBitsToFloat(R15i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R6i.x; +// 12 +R7i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(R127i.y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +R2i.z = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R13i.y) + 1.0)); +R2i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R4i.w = floatBitsToInt(exp2(intBitsToFloat(R127i.w))); +PS0i = R4i.w; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS6, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex6),intBitsToFloat(R0i.w)).xyz); +R0i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).x); +R3i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R3i.xw),0.0).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R4i.xy)).xyz); +R5i.xyz = floatBitsToInt(texture(textureUnitPS16, intBitsToFloat(R5i.xy)).xyz); +R6i.x = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R6i.xy),intBitsToFloat(R6i.z)).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +R123i.x = floatBitsToInt((intBitsToFloat(R0i.w) * 2.0 + -(1.0))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(min(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R127i.z = clampFI32(R127i.z); +PV0i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.z))); +R126i.w = floatBitsToInt(exp2(intBitsToFloat(R7i.x))); +PS0i = R126i.w; +// 1 +R125i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.w) * intBitsToFloat(0x40200001)); +R126i.y = clampFI32(R126i.y); +PV1i.y = R126i.y; +R124i.z = floatBitsToInt(max(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.w))); +PV1i.z = R124i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x41c80000) + intBitsToFloat(R14i.z))); +PV1i.w = R123i.w; +R126i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(R4i.w))) + uf_blockPS6[27].z)); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.z; +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3dcccccd)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x2edbe6ff)); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + uf_blockPS6[52].x); +R127i.w = floatBitsToInt((-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +tempResultf = log2(intBitsToFloat(backupReg0i)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R125i.z = floatBitsToInt(tempResultf); +PS0i = R125i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R17i.y),intBitsToFloat(R17i.z),-0.0),vec4(intBitsToFloat(R14i.x),intBitsToFloat(R16i.y),intBitsToFloat(R16i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 4 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R2i.z))); +PV0i.x = R124i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R127i.y = clampFI32(R127i.y); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R127i.z = clampFI32(R127i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.x)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(R125i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(0x2edbe6ff)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R8i.x)); +R127i.w = clampFI32(R127i.w); +R125i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R125i.y; +// 6 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 7 +backupReg0i = R126i.y; +backupReg1i = R127i.w; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), uf_blockPS6[13].w)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(R124i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS0i)) + 1.0)); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R127i.z))); +tempResultf = log2(intBitsToFloat(backupReg1i)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R2i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.x))); +R127i.y = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +PS0i = R127i.y; +// 9 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockPS6[30].w)); +R124i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R125i.x))); +R125i.z = R1i.x; +R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); +R125i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.x))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 10 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R2i.z))); +PV0i.x = R0i.x; +R0i.y = floatBitsToInt(intBitsToFloat(R0i.z) + -(intBitsToFloat(R125i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R126i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.x))); +// 11 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.y))); +PV1i.x = R126i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), uf_blockPS6[16].w)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.w),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.z))); +PS1i = R127i.y; +// 12 +backupReg0i = R126i.y; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.x = R1i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.y))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.w))); +PV0i.z = R0i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R124i.z))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R12i.w)) + intBitsToFloat(R127i.w))); +PS0i = R125i.x; +// 13 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R124i.y)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R5i.w) + -(intBitsToFloat(R126i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 14 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(R126i.y))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(R126i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(R126i.y))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +PS0i = R125i.z; +// 15 +backupReg0i = R4i.x; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R18i.y)) + intBitsToFloat(R126i.z))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R126i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R125i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R125i.x))); +PS1i = R126i.y; +// 16 +backupReg0i = R127i.x; +backupReg1i = R124i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(R127i.z)) + intBitsToFloat(backupReg0i))); +R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + -(intBitsToFloat(R125i.z))); +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(R127i.z)) + intBitsToFloat(backupReg1i))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(R0i.x))) + intBitsToFloat(R124i.x))); +PS0i = R127i.z; +// 17 +backupReg0i = R5i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R5i.x) + -(intBitsToFloat(R124i.y))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), uf_blockPS6[1].w)); +R5i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.y))); +R126i.w = floatBitsToInt(uf_blockPS6[1].x + -(1.0)); +R124i.x = floatBitsToInt(uf_blockPS6[1].y + -(1.0)); +PS1i = R124i.x; +// 18 +backupReg0i = R127i.x; +backupReg1i = R126i.y; +backupReg2i = R127i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(backupReg0i))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + intBitsToFloat(R127i.w))); +PV0i.w = floatBitsToInt(uf_blockPS6[1].z + -(1.0)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R13i.w)) + intBitsToFloat(R124i.y))); +PS0i = R127i.y; +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R13i.w)) + intBitsToFloat(R125i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(R5i.y)) + 1.0)); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R5i.y)) + 1.0)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R13i.w)) + intBitsToFloat(R125i.y))); +PV1i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R5i.y)) + 1.0)); +PS1i = R122i.x; +// 20 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.z))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.y))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +R3i.w = 0; +R2i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R0i.x)) + intBitsToFloat(R126i.y))); +PS0i = R2i.x; +// 21 +R2i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R0i.x)) + intBitsToFloat(R127i.x))); +R2i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R0i.x)) + intBitsToFloat(R127i.z))); +R5i.w = 0x3f800000; +R3i.y = R14i.w; +PS1i = R3i.y; +// 22 +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(R1i.x)) + intBitsToFloat(R1i.x))); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS10[3].z,intBitsToFloat(R4i.x)) + uf_blockPS10[1].y)); +R126i.w = clampFI32(R126i.w); +// 1 +PV1i.y = floatBitsToInt(intBitsToFloat(R6i.x) + uf_blockPS10[1].z); +PV1i.y = clampFI32(PV1i.y); +// 2 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R126i.w))); +// 3 +R6i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R6i.w = R5i.w; +// 4 +R5i.xyz = ivec3(R2i.x,R2i.y,R2i.z); +R5i.w = R2i.w; +// 5 +R4i.xyz = ivec3(R3i.x,R3i.y,R3i.z); +R4i.w = R3i.w; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +passPixelColor1 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); +passPixelColor2 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); +} diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/45e72a252caba763_000003c000009269_ps.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/45e72a252caba763_000003c000009269_ps.txt new file mode 100644 index 00000000..34d87e8c --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/45e72a252caba763_000003c000009269_ps.txt @@ -0,0 +1,581 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader cbbcf83b05c6d921 +UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(14, 1, 5) uniform sampler2D textureUnitPS14; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.z = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.zw)).x); +R6i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R2i.z = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).w); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R4i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R124i.y = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0))); +R4i.z = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R3i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PS0i = R3i.z; +// 1 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +R9i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R9i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(PV1i.z)))); +PS0i = R126i.w; +// 3 +backupReg0i = R127i.z; +backupReg1i = R127i.w; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.w)))); +R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(backupReg0i)))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(backupReg1i)))); +R125i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i))); +PS1i = R125i.z; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.z = tempi.x; +R126i.y = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x437f0000)); +PS0i = R126i.y; +// 5 +R126i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R127i.z)); +R125i.y = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(R126i.w)); +R127i.z = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(R127i.x)); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R127i.y)); +PV1i.w = R126i.w; +R125i.x = floatBitsToInt(sqrt(intBitsToFloat(R126i.z))); +PS1i = R125i.x; +// 6 +R127i.x = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R125i.z)); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R127i.w)); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockPS6[43].x)); +R125i.w = floatBitsToInt(sqrt(intBitsToFloat(R124i.z))); +PS0i = R125i.w; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockPS6[45].x)); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.x))); +R127i.w = int(intBitsToFloat(R126i.y)); +PS1i = R127i.w; +// 8 +backupReg0i = R126i.x; +R126i.x = PS1i & 0x0000001c; +R0i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.z))); +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockPS6[45].y) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.w))); +PS0i = R0i.x; +// 9 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),uf_blockPS6[43].z) + intBitsToFloat(R124i.z))); +R127i.y = floatBitsToInt(-(intBitsToFloat(R9i.z)) * intBitsToFloat(0x3d4ccccd)); +PV1i.y = R127i.y; +R127i.z = R127i.w & 0x00000002; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),uf_blockPS6[45].z) + intBitsToFloat(PV0i.w))); +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 10 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +backupReg1i = R0i.z; +backupReg1i = R0i.z; +R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R0i.x)),-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),-0.0),vec4(-(intBitsToFloat(R0i.x)),-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),0.0))); +PV0i.x = R124i.x; +PV0i.y = R124i.x; +PV0i.z = R124i.x; +PV0i.w = R124i.x; +R1i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV1i.y))); +R1i.x = clampFI32(R1i.x); +PS0i = R1i.x; +// 11 +R9i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R127i.x)); +R10i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R127i.w)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R125i.x)); +// 12 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS1i))); +PV0i.x = R2i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PS1i))); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +R11i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.y))); +R11i.w = clampFI32(R11i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +// 13 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PS0i))); +R125i.w = PV0i.x; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.z = PV0i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +PS1i = R124i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(float(R126i.x)); +// 15 +backupReg0i = R127i.y; +R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R127i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3d124925)); +R10i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R10i.w = clampFI32(R10i.w); +R9i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(backupReg0i))); +PS1i = R9i.y; +// 16 +PS0i = floatBitsToInt(float(R127i.z)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 17 +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(PS0i))) + intBitsToFloat(R127i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +R2i.z = floatBitsToInt(tempResultf); +PS1i = R2i.z; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R7i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +R6i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +PV0i.z = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R8i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PV1i.z = R8i.z; +R1i.w = 0; +PV1i.w = R1i.w; +R9i.w = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.z)); +R9i.w = clampFI32(R9i.w); +PS1i = R9i.w; +// 2 +R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.z)),vec4(-(intBitsToFloat(R7i.x)),-(intBitsToFloat(R6i.y)),-(intBitsToFloat(PV1i.z)),-(intBitsToFloat(PV1i.w))))); +PV0i.x = R1i.x; +PV0i.y = R1i.x; +PV0i.z = R1i.x; +PV0i.w = R1i.x; +// 3 +predResult = (1.0 > intBitsToFloat(R11i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = ((-(intBitsToFloat(R9i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +R127i.y = ((-(intBitsToFloat(R9i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.z = floatBitsToInt(intBitsToFloat(R2i.x) * 1.5); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.y) * 1.5); +PS0i = floatBitsToInt(intBitsToFloat(R1i.z) * 1.5); +// 1 +backupReg0i = R2i.z; +backupReg1i = R1i.x; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.z))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PS0i))); +PV1i.w = PV0i.x & int(1); +PS1i = ((intBitsToFloat(0x3eb33333) > intBitsToFloat(backupReg1i))?int(0xFFFFFFFF):int(0x0)); +// 2 +R2i.x = floatBitsToInt((intBitsToFloat(R0i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.z)),uf_blockPS1[17].y) + 1.0)); +PV0i.z = PV1i.w - R127i.y; +R1i.w = ((PS1i == 0)?(0x3f800000):(0)); +R2i.w = 0x3f000000; +PS0i = R2i.w; +// 3 +PV1i.x = PV0i.z << 0x00000002; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.z))); +R127i.w = floatBitsToInt(float(PV0i.z)); +PS1i = R127i.w; +// 4 +R0i.x = PV1i.x + 0x0000002d; +R0i.y = PV1i.x + 0x0000002c; +R0i.z = PV1i.x + 0x0000002b; +R0i.w = PV1i.x + 0x0000002a; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.y))); +PS0i = R122i.x; +// 5 +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(PS0i))); +R6i.z = floatBitsToInt(roundEven(intBitsToFloat(R127i.w))); +PS1i = R6i.z; +} +if( activeMaskStackC[2] == true ) { +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.y = floatBitsToInt(uf_blockPS6[53].y); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) / 2.0); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(uf_blockPS6[53].x); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.z)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R7i.z = R6i.z; +PS1i = R7i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(R126i.z))); +PS0i = R125i.y; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R8i.z = R6i.z; +PS1i = R8i.z; +// 4 +backupReg0i = R126i.y; +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3b449ba7)); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3b449ba7)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba7)); +R126i.x = backupReg0i; +PS0i = R126i.x; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.y))); +R1i.z = R6i.z; +// 6 +backupReg0i = R127i.w; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R9i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R6i.x))); +PV0i.w = R127i.w; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R4i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R5i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R3i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R5i.z)) + intBitsToFloat(R126i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R0i.z)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.x)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +// 13 +R127i.x = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x)); +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R6i.y = floatBitsToInt((uf_blockPS6[53].y * 0.5 + intBitsToFloat(PV0i.y))); +R6i.x = floatBitsToInt((uf_blockPS6[53].x * 0.5 + intBitsToFloat(PV0i.z))); +PS1i = R6i.x; +// 14 +R7i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); +R7i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R126i.w)); +R6i.w = PV1i.x; +R7i.w = PV1i.x; +PS0i = R7i.w; +// 15 +R8i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R125i.y)); +R8i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R126i.x)); +R8i.w = R127i.x; +R1i.x = floatBitsToInt((-(uf_blockPS6[53].x) * 0.5 + intBitsToFloat(R127i.z))); +PS1i = R1i.x; +// 16 +R1i.y = floatBitsToInt((-(uf_blockPS6[53].y) * 0.5 + intBitsToFloat(R127i.y))); +R1i.w = R127i.x; +} +if( activeMaskStackC[2] == true ) { +R6i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R6i.z),intBitsToFloat(R6i.w)))); +R7i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +R8i.w = floatBitsToInt(textureShadow_3(textureUnitPS7, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R1i.z = floatBitsToInt(textureShadow_4(textureUnitPS7, vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(R7i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +// 1 +R123i.z = floatBitsToInt((intBitsToFloat(R8i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +// 2 +R127i.y = floatBitsToInt((intBitsToFloat(R1i.z) * 0.5 + intBitsToFloat(PV1i.z))/2.0); +PV0i.y = R127i.y; +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 4 +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R11i.w)) + intBitsToFloat(R127i.y))); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R0i.w = R2i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R9i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R10i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R9i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R10i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.z = R2i.w; +PS0i = R2i.z; +// 1 +R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS14, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R10i.w))) + intBitsToFloat(R1i.y))); +PS0i = R2i.y; +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R9i.w)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +// 5 +R2i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + uf_blockPS10[1].y); +R2i.x = clampFI32(R2i.x); +} +// export +passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/59cba7eb9a9c1df6_00000007f924d249_ps.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/59cba7eb9a9c1df6_00000007f924d249_ps.txt new file mode 100644 index 00000000..209a9cad --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/59cba7eb9a9c1df6_00000007f924d249_ps.txt @@ -0,0 +1,848 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 9c98a67271f8cc75 +UNIFORM_BUFFER_LAYOUT(33, 1, 10) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 11) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 12) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(10, 1, 5) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 6) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(14, 1, 7) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 8) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem5; +layout(location = 3) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +#ifdef VULKAN +layout(set = 1, binding = 9) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem5); +R3i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.zw)).xyzw); +R13i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +PV0i.y = R127i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +R5i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 2.0 + -(1.0))); +PS0i = R5i.x; +// 1 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.z)))); +PV1i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.z)))); +R1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), -(intBitsToFloat(PV0i.y)))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), -(intBitsToFloat(PV0i.y)))); +PS1i = R125i.w; +// 2 +R127i.x = floatBitsToInt(-(intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[43].x)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[45].x)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(R127i.w)))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), -(intBitsToFloat(R127i.w)))); +PS0i = R127i.y; +// 3 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[45].y) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R126i.w)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +R126i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R125i.w)); +PS1i = R126i.x; +// 4 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(R1i.z)) + intBitsToFloat(backupReg0i)); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),uf_blockPS6[43].z) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R127i.z = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.y)); +PS0i = R127i.z; +// 5 +R9i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(PV0i.w)); +PV1i.x = R9i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[44].x)); +R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.z)) + intBitsToFloat(R127i.w)); +PV1i.z = R126i.z; +R4i.w = floatBitsToInt((intBitsToFloat(R3i.y) * 2.0 + -(1.0))); +R5i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 2.0 + -(1.0))); +PS1i = R5i.z; +// 6 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS6[39].z) + -(uf_blockPS6[39].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R125i.z))); +R2i.y = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x437f0000)); +PS0i = R2i.y; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[44].y) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R0i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.w))); +R4i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +R5i.w = 0x3f800000; +R4i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); +PS1i = R4i.x; +// 8 +R2i.x = floatBitsToInt((-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R2i.x = clampFI32(R2i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); +R0i.z = floatBitsToInt(-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3d4ccccd)); +PV0i.z = R0i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),uf_blockPS6[44].z) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +R10i.x = floatBitsToInt(uf_blockPS1[0].y); +PS0i = R10i.x; +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.z))); +R15i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(PV0i.w)); +PV1i.z = R15i.z; +R0i.w = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV0i.z))); +R0i.w = clampFI32(R0i.w); +R9i.w = R13i.x; +R9i.w = clampFI32(R9i.w); +PS1i = R9i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R12i.y = PV1i.z; +PV0i.y = R12i.y; +R9i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R125i.y)); +PV0i.z = R9i.z; +R6i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R1i.z)), uf_blockPS1[17].y)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R4i.w)) + intBitsToFloat(PV1i.y))); +PS0i = R122i.x; +// 11 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R5i.x)) + intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),uf_blockPS6[39].z) + -(uf_blockPS6[39].y))); +R2i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + uf_blockPS6[39].w); +R3i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R4i.z)), -(intBitsToFloat(R4i.z)))); +R2i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +R3i.z = floatBitsToInt(textureLod(textureUnitPS11, intBitsToFloat(R3i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),-(intBitsToFloat(R0i.y))) + intBitsToFloat(R3i.w))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt(uf_blockPS10[2].z + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[39].w),intBitsToFloat(R3i.z)) + intBitsToFloat(R2i.z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R2i.w)); +// 1 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +PV1i.y = R11i.y; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R127i.z = clampFI32(R127i.z); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),-(intBitsToFloat(R4i.x))) + intBitsToFloat(PV0i.x))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PS1i = R10i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.y = R123i.y; +R16i.z = floatBitsToInt(-(intBitsToFloat(R0i.w)) + intBitsToFloat(R125i.y)); +R16i.z = clampFI32(R16i.z); +R11i.z = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R0i.z))); +R11i.z = clampFI32(R11i.z); +PS0i = R11i.z; +// 3 +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R17i.z = floatBitsToInt(intBitsToFloat(R2i.x) + uf_blockPS10[3].y); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +R0i.z = floatBitsToInt(tempResultf); +PS1i = R0i.z; +// 4 +R10i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R10i.w; +PS0i = int(intBitsToFloat(R2i.y)); +// 5 +PV1i.w = PS0i & int(1); +R11i.w = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PS1i = R11i.w; +// 6 +R12i.z = ((PV1i.w == 0)?(0):(0x3f800000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(R0i.x)); +PS0i = floatBitsToInt(tempResultf); +// 7 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS0i))); +R4i.w = floatBitsToInt(uf_blockPS10[2].w); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.w)); +R2i.w = floatBitsToInt(tempResultf); +PS1i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R5i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, intBitsToFloat(R4i.w))); +PV0i.x = R5i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, intBitsToFloat(R4i.w))); +PV0i.y = R5i.y; +R14i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, intBitsToFloat(R4i.w))); +PV0i.z = R14i.z; +R0i.w = 0; +// 1 +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +R2i.y = PV0i.z; +PV1i.y = R2i.y; +R2i.z = 0; +PV1i.z = R2i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PV0i.z))); +R0i.x = PV0i.x; +PS1i = R0i.x; +// 2 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.z),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(PS1i),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.w))); +PS0i = R122i.x; +// 3 +R10i.y = floatBitsToInt(uf_blockPS1[1].y); +R18i.z = floatBitsToInt(uf_blockPS1[2].y); +R12i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R5i.x)) + intBitsToFloat(PS0i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.x)); +PS1i = floatBitsToInt(tempResultf); +// 4 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R0i.z))); +// 5 +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R126i.x))); +// 6 +predResult = (1.0 > intBitsToFloat(R11i.z)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R3i.x) * 1.5); +R127i.y = ((-(intBitsToFloat(R1i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.z = ((-(intBitsToFloat(R1i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.y) * 1.5); +PS0i = floatBitsToInt(intBitsToFloat(R13i.z) * 1.5); +// 1 +backupReg0i = R2i.w; +PV1i.x = PV0i.z & int(1); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.w))); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PS0i))); +PV1i.w = R2i.w; +R122i.x = floatBitsToInt((intBitsToFloat(R6i.w) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R2i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R3i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R5i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.w = PV1i.x - R127i.y; +PV0i.w = R4i.w; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +// 3 +PV1i.x = PV0i.w << 0x00000002; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(R13i.z))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), -(intBitsToFloat(R0i.w)))); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 4 +R0i.x = PV1i.x + 0x0000002d; +R0i.y = PV1i.x + 0x0000002b; +R0i.z = PV1i.x + 0x0000002c; +R0i.w = PV1i.x + 0x0000002a; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PS1i))); +PS0i = R122i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R127i.y),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R3i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PS0i)); +R3i.w = floatBitsToInt(tempResultf); +PS1i = R3i.w; +} +if( activeMaskStackC[2] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R7i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R8i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R3i.w))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R3i.w))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R3i.w))); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.x)),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.x))); +PV0i.w = R123i.w; +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(R4i.y))); +PS0i = R126i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = tempi.x; +R126i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R1i.x))); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.y))); +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R18i.z)),intBitsToFloat(R3i.z)) + intBitsToFloat(R13i.z))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0)); +R127i.y = floatBitsToInt(float(R4i.w)); +PS0i = R127i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R13i.z),intBitsToFloat(R4i.z)),vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R5i.y)),-(intBitsToFloat(R14i.z)),1.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.x))); +PS1i = R124i.y; +// 4 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((intBitsToFloat(R126i.w) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R1i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R14i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(R127i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.z))); +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(R127i.y))); +PS0i = R5i.z; +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R3i.y))); +R123i.w = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R1i.z))); +PV1i.w = R123i.w; +// 6 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R126i.z))); +PV0i.x = R1i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R127i.x))); +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R7i.x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R6i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R7i.z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R124i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R8i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV1i.x)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) + intBitsToFloat(PV0i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.w; +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R5i.x; +// 13 +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.w))); +R5i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[2] == true ) { +R6i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.x = ((1.0 > intBitsToFloat(R6i.y))?int(0xFFFFFFFF):int(0x0)); +// 1 +R0i.w = ((R4i.w > 0)?(PV0i.x):(0)); +// 2 +predResult = (R0i.w != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = int(-1) + R4i.w; +// 1 +PV1i.y = PV0i.z << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.z)); +// 2 +R0i.x = PV1i.y + 0x0000002a; +R0i.y = PV1i.y + 0x0000002d; +R0i.z = PV1i.y + 0x0000002c; +R0i.w = PV1i.y + 0x0000002b; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R3i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R4i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R0i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.y)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.z)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R5i.y; +// 6 +R5i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R6i.y; +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.x))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R6i.y)) + 1.0); +// 1 +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R11i.z)) + intBitsToFloat(R6i.y))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R9i.x) * intBitsToFloat(0x3a83126f)); +R0i.y = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3a83126f)); +R127i.z = floatBitsToInt(intBitsToFloat(R12i.w) + -(intBitsToFloat(R9i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R1i.x = floatBitsToInt((intBitsToFloat(R9i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +PS0i = R1i.x; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R1i.y = floatBitsToInt((intBitsToFloat(R9i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R126i.z = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R2i.w = 0x3f800000; +R3i.w = floatBitsToInt(-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = R3i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(R9i.y))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R0i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R13i.y) + 1.0)); +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), intBitsToFloat(0xbf7d70a4))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) / 2.0); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40200001)); +R127i.y = clampFI32(R127i.y); +PS1i = R127i.y; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd)); +R123i.y = floatBitsToInt((-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +PV0i.y = R123i.y; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R0i.z = clampFI32(R0i.z); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS0i)) + uf_blockPS6[27].w)/2.0); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R127i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +R127i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV1i.w))); +PV0i.x = R127i.x; +R2i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(0xbe593484))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(R10i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.z)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +R125i.z = floatBitsToInt(exp2(intBitsToFloat(R126i.w))); +PS1i = R125i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + 1.0)); +PS0i = R2i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R3i.x; +// 11 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R11i.y)) + intBitsToFloat(R127i.z))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.z))); +R1i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(R125i.z))) + uf_blockPS6[27].z)); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R9i.w)) + intBitsToFloat(R127i.x))); +R3i.z = floatBitsToInt(exp2(intBitsToFloat(R125i.w))); +PS1i = R3i.z; +} +if( activeMaskStackC[1] == true ) { +R0i.x = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); +R5i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R1i.xy),0.0).xyz); +R2i.xyz = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R2i.xy)).xyz); +R3i.w = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R3i.xy),intBitsToFloat(R3i.w)).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R11i.x)) + intBitsToFloat(R4i.x))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R1i.w))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R0i.w))); +PV0i.z = R126i.z; +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R1i.w))); +tempResultf = log2(intBitsToFloat(R0i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R1i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + uf_blockPS10[1].z); +R127i.x = clampFI32(R127i.x); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.w),intBitsToFloat(R17i.z)) + intBitsToFloat(R10i.w))); +R6i.y = clampFI32(R6i.y); +R2i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x41c80000) + intBitsToFloat(R15i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS1i))); +R125i.w = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +PS0i = R125i.w; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 4 +R123i.y = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS1i)) + 1.0)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), uf_blockPS6[16].w)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +R6i.w = 0; +PS0i = R6i.w; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.z)),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV0i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +PV1i.z = R127i.z; +R4i.w = 0x3f800000; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R5i.w) + -(intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[30].w)); +// 7 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R16i.z)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.w))); +PV1i.w = R1i.w; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS10[3].z,intBitsToFloat(PV1i.y)) + uf_blockPS10[1].y)); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),-(intBitsToFloat(PV1i.w))) + intBitsToFloat(R126i.z))); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.y))); +// 9 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.x))); +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R2i.z)) + uf_blockPS6[52].x); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +// 2 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[13].w)); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R3i.w)) + intBitsToFloat(R3i.w))); +PV0i.z = R123i.z; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV0i.x))); +R6i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +PS1i = R6i.z; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +// 8 +R4i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R4i.x; +R4i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.y = R4i.y; +R4i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.z = R4i.z; +// 9 +R1i.xyz = ivec3(PV0i.x,PV0i.y,PV0i.z); +R1i.w = R4i.w; +// 10 +R0i.xyz = ivec3(R6i.x,R6i.y,R6i.z); +R0i.w = R6i.w; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/808ba0411f6f526e_0000007ff9249a49_ps.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/808ba0411f6f526e_0000007ff9249a49_ps.txt new file mode 100644 index 00000000..9d137fd0 --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/808ba0411f6f526e_0000007ff9249a49_ps.txt @@ -0,0 +1,723 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader a73d770e3204e2e6 +UNIFORM_BUFFER_LAYOUT(33, 1, 10) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 11) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 12) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2DArray textureUnitPS6; +TEXTURE_LAYOUT(9, 1, 6) uniform sampler2D textureUnitPS9; +TEXTURE_LAYOUT(12, 1, 7) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(13, 1, 8) uniform sampler2D textureUnitPS13; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem5; +layout(location = 3) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +#ifdef VULKAN +layout(set = 1, binding = 9) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem5); +R3i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R6i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.zw)).xyzw); +R3i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.zw)).w); +R7i.xy = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R0i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +R5i.x = floatBitsToInt((intBitsToFloat(R6i.x) * 2.0 + -(1.0))); +PS0i = R5i.x; +// 1 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R1i.y; +R8i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PV1i.z = R8i.z; +R124i.w = floatBitsToInt((intBitsToFloat(R6i.y) * 2.0 + -(1.0))); +R124i.z = floatBitsToInt((intBitsToFloat(R6i.z) * 2.0 + -(1.0))); +PS1i = R124i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), -(intBitsToFloat(R127i.w)))); +PS0i = R127i.y; +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(R127i.w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), -(intBitsToFloat(R127i.z)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(R127i.z)))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), -(intBitsToFloat(R127i.w)))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +backupReg0i = R127i.z; +R125i.x = floatBitsToInt(intBitsToFloat(R3i.z) * intBitsToFloat(0x437f0000)); +R125i.y = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R127i.y)); +R127i.z = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.w)); +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R126i.w; +// 5 +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R124i.w),intBitsToFloat(R124i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R124i.w),intBitsToFloat(R124i.z),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(R127i.x)); +PS1i = R127i.y; +// 6 +backupReg0i = R126i.z; +R127i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R126i.y)); +PV0i.x = R127i.x; +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R126i.w))); +PV0i.y = R8i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(R127i.w)); +PV0i.z = R126i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = R125i.w; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R126i.w))); +PS0i = R8i.x; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[44].x)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.w))); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PS1i = R2i.w; +// 8 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[44].y) + intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[43].x)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R126i.w))); +R126i.w = floatBitsToInt(-(intBitsToFloat(R8i.z)) * intBitsToFloat(0x3d4ccccd)); +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x))); +PS0i = R0i.x; +// 9 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.y))); +R0i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R125i.y)) + intBitsToFloat(R127i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[45].x)); +R5i.w = 0x3f800000; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R127i.z)) + intBitsToFloat(R125i.z))); +PS1i = R0i.z; +// 10 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[45].y) + intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), -(intBitsToFloat(PS1i)))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),uf_blockPS6[44].z) + intBitsToFloat(backupReg0i))); +R9i.x = 0; +PS0i = R9i.x; +// 11 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg1i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),intBitsToFloat(PV0i.y),-0.0),vec4(-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R0i.w = tempi.x; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),uf_blockPS6[43].z) + intBitsToFloat(R126i.x))); +PS1i = R125i.w; +// 12 +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),uf_blockPS6[45].z) + intBitsToFloat(R127i.x))); +R10i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(R127i.w)); +R9i.w = R7i.x; +R9i.w = clampFI32(R9i.w); +PS0i = int(intBitsToFloat(R125i.x)); +// 13 +backupReg0i = R126i.w; +R10i.x = floatBitsToInt(uf_blockPS1[0].y); +R2i.y = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R126i.w))); +R2i.y = clampFI32(R2i.y); +R127i.z = PS0i & 0x0000001c; +R126i.w = PS0i & 0x00000002; +R7i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(backupReg0i))); +R7i.w = clampFI32(R7i.w); +PS1i = R7i.w; +// 14 +R9i.y = floatBitsToInt(uf_blockPS1[1].y); +R11i.z = floatBitsToInt(uf_blockPS1[2].y); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(R124i.x))); +// 15 +R11i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R125i.w)); +R10i.y = R10i.z; +R12i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R125i.y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R2i.w)); +R3i.z = floatBitsToInt(tempResultf); +PS0i = R3i.z; +// 17 +PS1i = floatBitsToInt(float(R127i.z)); +// 18 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3d124925)); +PS0i = floatBitsToInt(float(R126i.w)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 19 +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PS0i))) + intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R0i.w)); +R4i.z = floatBitsToInt(tempResultf); +PS1i = R4i.z; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R12i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PV0i.x = R12i.x; +R11i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +PV0i.y = R11i.y; +R127i.z = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R124i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +R1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PV1i.z = R1i.z; +R0i.w = 0; +PV1i.w = R0i.w; +R3i.x = PV0i.x; +PS1i = R3i.x; +// 2 +backupReg0i = R2i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV1i.z))); +R2i.y = PV1i.z; +PV0i.y = R2i.y; +R6i.z = 0; +PV0i.z = R6i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(PV1i.w)))); +R7i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R127i.z)); +R7i.z = clampFI32(R7i.z); +PS0i = R7i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.z),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R11i.y)) + intBitsToFloat(PV0i.x))); +PS1i = R122i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R3i.y),intBitsToFloat(R2i.z),intBitsToFloat(R126i.w)),vec4(-(intBitsToFloat(R12i.x)),-(intBitsToFloat(R11i.y)),-(intBitsToFloat(R1i.z)),1.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = tempi.x; +R8i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R12i.x)) + intBitsToFloat(PS1i))); +PS0i = R8i.w; +// 5 +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R3i.z))); +// 7 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R124i.w))); +// 8 +predResult = (1.0 > intBitsToFloat(R7i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = ((-(intBitsToFloat(R8i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.x) * 1.5); +R127i.z = ((-(intBitsToFloat(R8i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.y) * 1.5); +PS0i = floatBitsToInt(intBitsToFloat(R2i.z) * 1.5); +// 1 +backupReg0i = R0i.w; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y))); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(R4i.z)) + intBitsToFloat(PS0i))); +PV1i.z = R2i.z; +PV1i.w = PV0i.x & int(1); +PS1i = ((intBitsToFloat(0x3eb33333) > intBitsToFloat(backupReg0i))?int(0xFFFFFFFF):int(0x0)); +// 2 +R3i.x = floatBitsToInt((intBitsToFloat(R5i.z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +R3i.y = PV1i.w - R127i.z; +PV0i.y = R3i.y; +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS1[17].y) + 1.0)); +R3i.w = ((PS1i == 0)?(0x3f800000):(0)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +// 3 +PV1i.x = PV0i.y << 0x00000002; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 4 +R0i.x = PV1i.x + 0x0000002d; +R0i.y = PV1i.x + 0x0000002b; +R0i.z = PV1i.x + 0x0000002c; +R0i.w = PV1i.x + 0x0000002a; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(PS1i))); +PS0i = R122i.x; +// 5 +tempResultf = 1.0 / sqrt(intBitsToFloat(PS0i)); +R2i.w = floatBitsToInt(tempResultf); +PS1i = R2i.w; +} +if( activeMaskStackC[2] == true ) { +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R2i.w))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R2i.w))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +PV0i.z = R127i.z; +PS0i = floatBitsToInt(float(R3i.y)); +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R11i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.z = floatBitsToInt(roundEven(intBitsToFloat(PS0i))); +PS1i = R2i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R11i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +PV0i.w = R123i.w; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3b449ba7)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.w))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3b449ba7)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3b449ba7)); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.z))); +// 5 +backupReg0i = R127i.z; +backupReg1i = R127i.w; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R8i.z))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.w = R127i.w; +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R5i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R6i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R4i.x))); +// 7 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.x)); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R126i.w; +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R2i.x; +// 12 +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R126i.w))); +R2i.w = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV1i.z)); +R2i.w = clampFI32(R2i.w); +} +if( activeMaskStackC[2] == true ) { +R2i.y = floatBitsToInt(textureShadow_1(textureUnitPS6, vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0); +// 1 +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R7i.w)) + intBitsToFloat(R2i.y))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R11i.x) * intBitsToFloat(0x3a83126f)); +R0i.y = floatBitsToInt(intBitsToFloat(R12i.z) * intBitsToFloat(0x3a83126f)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R8i.w) + -(intBitsToFloat(R7i.x))); +R1i.x = floatBitsToInt((intBitsToFloat(R11i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +PS0i = R1i.x; +// 1 +R127i.x = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R1i.z = floatBitsToInt((intBitsToFloat(R12i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R0i.w = 0x3f800000; +R3i.w = floatBitsToInt(-(intBitsToFloat(R8i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = R3i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R7i.x))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R4i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R7i.y) + 1.0)); +tempResultf = log2(intBitsToFloat(PV1i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(max(-(intBitsToFloat(PV0i.y)), intBitsToFloat(0xbf7d70a4))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS0i))); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x40200001)); +R127i.w = clampFI32(R127i.w); +PS1i = R127i.w; +// 4 +R5i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R5i.x = clampFI32(R5i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd)); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((-(intBitsToFloat(R8i.z)) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + uf_blockPS6[27].w)/2.0); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R127i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(0xbe593484))); +PV0i.y = R123i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.5); +R2i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV1i.y))); +PV0i.w = R2i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(R8i.y))); +R0i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +R126i.x = floatBitsToInt(exp2(intBitsToFloat(R126i.z))); +PS1i = R126i.x; +// 8 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.y),intBitsToFloat(R12i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + 1.0)); +PS0i = R2i.x; +// 9 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.y),intBitsToFloat(R12i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R127i.z; +// 10 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.y),intBitsToFloat(R12i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R3i.x; +// 11 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R9i.z)) + intBitsToFloat(R127i.y))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.z))); +R0i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(R126i.x))) + uf_blockPS6[27].z)); +R6i.x = floatBitsToInt(exp2(intBitsToFloat(R127i.x))); +PS1i = R6i.x; +} +if( activeMaskStackC[1] == true ) { +R1i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); +R1i.xyz = floatBitsToInt(textureLod(textureUnitPS13, intBitsToFloat(R1i.xz),0.0).xyz); +R2i.xyz = floatBitsToInt(texture(textureUnitPS9, intBitsToFloat(R2i.xz)).xyz); +R3i.x = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R3i.xy),intBitsToFloat(R3i.w)).x); +} +// export +passPixelColor2 = vec4(intBitsToFloat(R9i.x), intBitsToFloat(R9i.x), intBitsToFloat(R9i.x), intBitsToFloat(R9i.x)); +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R8i.x)) + intBitsToFloat(R4i.x))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R1i.w) * 2.0 + -(1.0))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(R4i.w))); +PV0i.z = R126i.z; +R8i.w = 0; +R7i.w = 0x3f800000; +PS0i = R7i.w; +// 1 +backupReg0i = R3i.x; +R3i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x41c80000) + intBitsToFloat(R10i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R9i.w)) + intBitsToFloat(R2i.w))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + uf_blockPS10[1].z); +R127i.w = clampFI32(R127i.w); +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +backupReg0i = R2i.x; +backupReg1i = R2i.y; +backupReg2i = R2i.z; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.y))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS1i))); +tempResultf = log2(intBitsToFloat(R5i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), uf_blockPS10[3].z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), uf_blockPS6[42].z)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[42].y) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), uf_blockPS6[16].w)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.x)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 6 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockPS6[30].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),uf_blockPS6[42].x) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 7 +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R4i.w))); +PV1i.y = R3i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +// 8 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +PV0i.x = R127i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.z))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R126i.z))); +PS0i = R2i.w; +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + -(intBitsToFloat(PV0i.x))); +// 10 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R7i.z)) + intBitsToFloat(R127i.x))); +PV0i.z = R123i.z; +// 11 +R8i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + uf_blockPS10[1].y); +R8i.x = clampFI32(R8i.x); +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.w = floatBitsToInt(-(intBitsToFloat(R3i.x)) + uf_blockPS6[52].x); +// 1 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.z = clampFI32(R123i.z); +PV1i.z = R123i.z; +// 2 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockPS6[13].w)); +// 3 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R4i.w))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R1i.y)) + intBitsToFloat(R1i.y))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.y))); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.x))); +R8i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PS1i = R8i.z; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +// 8 +R7i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R7i.x; +R7i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.y))); +PV0i.y = R7i.y; +R7i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = R7i.z; +// 9 +R1i.xyz = ivec3(PV0i.x,PV0i.y,PV0i.z); +R1i.w = R7i.w; +// 10 +R0i.xyz = ivec3(R8i.x,R8i.y,R8i.z); +R0i.w = R8i.w; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/88133ee405eaae28_000003c000009269_ps.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/88133ee405eaae28_000003c000009269_ps.txt new file mode 100644 index 00000000..3c70ffe8 --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/88133ee405eaae28_000003c000009269_ps.txt @@ -0,0 +1,797 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader ffe0e8c84f6e8da9 +UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArray textureUnitPS8; +TEXTURE_LAYOUT(15, 1, 5) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_5(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.z = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.zw)).x); +R6i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).xw); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.z)) + uf_blockPS1[14].x)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.x)) + uf_blockPS1[14].x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0))); +PS0i = R127i.x; +// 1 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 2.0 + -(1.0))); +PS1i = R125i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R127i.y)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R127i.y)))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.z)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.z)))); +PS0i = R126i.z; +// 3 +R125i.x = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R124i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.x)); +R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.w)); +PS1i = R126i.y; +// 4 +backupReg0i = R126i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R126i.x = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(backupReg0i)); +PS0i = R126i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +R126i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R127i.y)); +PS1i = R126i.w; +// 6 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[43].x)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R126i.x))); +R125i.y = floatBitsToInt(sqrt(intBitsToFloat(backupReg0i))); +PS0i = R125i.y; +// 7 +backupReg0i = R127i.z; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[45].x)); +R124i.y = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000)); +R127i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0))); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R125i.z; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS1[18].y, uf_blockPS1[18].z)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PS0i = R9i.z; +// 9 +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R126i.z))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R125i.x)) + intBitsToFloat(R127i.y))); +R126i.z = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[45].y) + intBitsToFloat(R124i.x))); +PV1i.w = R123i.w; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.z))); +PS1i = R126i.w; +// 10 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(R4i.w))); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.w))); +PV0i.z = R1i.z; +R125i.w = R8i.x; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.z = R7i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +PS0i = R124i.z; +// 11 +R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R2i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R2i.x = clampFI32(R2i.x); +PS1i = R2i.x; +// 12 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), -(intBitsToFloat(R126i.z)))); +PV0i.x = R125i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0xbb6fe5d7)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3ca30589)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3ca30589)); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0xbb6fe5d7)); +PS0i = R126i.z; +// 13 +R10i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R126i.y)); +R3i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y)); +R1i.w = 0x3f800000; +R4i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.z))); +PS1i = R4i.x; +// 14 +R3i.x = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R126i.z))); +R2i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R127i.y))); +R11i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R126i.x)); +R10i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R10i.w = clampFI32(R10i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y)); +// 15 +backupReg0i = R124i.y; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PS0i))); +PV1i.y = R124i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(backupReg0i)); +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = PS1i & int(1); +// 17 +R11i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.x))); +R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.y))); +R11i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R11i.w = clampFI32(R11i.w); +R8i.y = ((PS0i == 0)?(0):(0x3f800000)); +PS1i = R8i.y; +// 18 +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +R2i.w = floatBitsToInt(tempResultf); +PS0i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0); +R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R9i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS0i = R9i.x; +// 1 +R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +R12i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x)); +R12i.w = clampFI32(R12i.w); +R7i.w = 0; +PS1i = R7i.w; +// 2 +predResult = (1.0 > intBitsToFloat(R10i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R12i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R4i.x)); +R12i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R3i.y)); +R13i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R4i.x))); +PS0i = R13i.x; +// 1 +R14i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R3i.x)); +R13i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R3i.y))); +R14i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R2i.y)); +PS1i = R14i.y; +// 2 +R15i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R3i.x))); +R15i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R2i.y))); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R7i.y) * 1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.x) * 1.5); +PV0i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R9i.z) * 1.5); +// 1 +backupReg0i = R1i.x; +backupReg1i = R1i.z; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = PV0i.w & int(1); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(R2i.z) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R2i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R2i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R2i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R13i.w = PV1i.y - R127i.x; +PV0i.w = R13i.w; +PS0i = floatBitsToInt(uf_blockPS6[53].y * uf_fragCoordScale.y); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 3 +R6i.x = floatBitsToInt(uf_blockPS6[53].x * uf_fragCoordScale.x); +R6i.x = floatBitsToInt(intBitsToFloat(R6i.x) / 2.0); +PV1i.y = PV0i.w << 0x00000002; +R6i.z = floatBitsToInt(-(intBitsToFloat(PS0i))); +R2i.w = PS0i; +PS1i = floatBitsToInt(float(PV0i.w)); +// 4 +R0i.x = PV1i.y + 0x0000002b; +R0i.y = PV1i.y + 0x0000002d; +R0i.z = PV1i.y + 0x0000002a; +R0i.w = PV1i.y + 0x0000002c; +R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R7i.z; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.y = tempi.x; +R8i.z = PS0i; +PS1i = R8i.z; +} +if( activeMaskStackC[2] == true ) { +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.z)),vec4(-(intBitsToFloat(R9i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R10i.z)),-(intBitsToFloat(R7i.w))))); +R126i.x = clampFI32(R126i.x); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.y)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R6i.x))); +R1i.z = R7i.z; +PS1i = R1i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.z = R7i.z; +PS0i = R9i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R2i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R2i.z))); +// 5 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV0i.y))); +// 6 +backupReg0i = R6i.y; +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R7i.x))); +PV0i.x = R16i.x; +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R12i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R4i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R5i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.w)); +R127i.z = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +PS1i = R126i.z; +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +// 13 +R7i.x = floatBitsToInt((uf_blockPS6[53].x * uf_fragCoordScale.x * 0.5 + intBitsToFloat(PV0i.z))); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R127i.y = clampFI32(R127i.y); +PV1i.y = R127i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R126i.z))); +PV1i.w = R127i.w; +R8i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R6i.x)); +PS1i = R8i.x; +// 14 +R1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.w)); +R7i.y = floatBitsToInt((uf_blockPS6[53].y * uf_fragCoordScale.y * 0.5 + intBitsToFloat(PV1i.w))); +R7i.w = PV1i.y; +R8i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R6i.z)); +PS0i = R8i.y; +// 15 +R9i.x = floatBitsToInt((-(uf_blockPS6[53].x) * uf_fragCoordScale.x * 0.5 + intBitsToFloat(R127i.z))); +R1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R2i.w)); +R8i.w = R127i.y; +R1i.w = R127i.y; +PS1i = R1i.w; +// 16 +R9i.y = floatBitsToInt((-(uf_blockPS6[53].y) * uf_fragCoordScale.y * 0.5 + intBitsToFloat(R127i.w))); +R9i.w = R127i.y; +} +if( activeMaskStackC[2] == true ) { +R7i.z = floatBitsToInt(textureShadow_1(textureUnitPS8, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +R8i.y = floatBitsToInt(textureShadow_2(textureUnitPS8, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R1i.x = floatBitsToInt(textureShadow_3(textureUnitPS8, vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)))); +R9i.w = floatBitsToInt(textureShadow_4(textureUnitPS8, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(R8i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 1 +R123i.z = floatBitsToInt((intBitsToFloat(R1i.x) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 2 +R5i.w = floatBitsToInt((intBitsToFloat(R9i.w) * 0.5 + intBitsToFloat(PV1i.z))/2.0); +PV0i.w = R5i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R0i.y = ((R13i.w > 0)?(PV1i.x):(0)); +// 5 +predResult = (R0i.y != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R13i.w; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R4i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R4i.z; +} +if( activeMaskStackC[3] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R2i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R1i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R3i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R4i.y; +// 6 +R4i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R4i.w = clampFI32(R4i.w); +} +if( activeMaskStackC[3] == true ) { +R4i.z = floatBitsToInt(textureShadow_5(textureUnitPS8, vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R5i.w; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R4i.z))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R14i.xy)).x); +R0i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R15i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R12i.xy)).x); +R1i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R13i.xy)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(0x3f7eb852)); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x41a00000)); +R124i.z = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0); +R127i.w = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x3f555555)); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(R0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f8ba8d6)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fbc4580)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.y)) + 1.0)); +R127i.x = clampFI32(R127i.x); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + 0.5)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.y)) + 0.5)); +R125i.z = clampFI32(R125i.z); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i)); +PV0i.w = R126i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.x)) + 1.0)); +R125i.w = clampFI32(R125i.w); +PS0i = R125i.w; +// 3 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + 0.5)); +R126i.x = clampFI32(R126i.x); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + 0.5)); +R124i.w = clampFI32(R124i.w); +PV1i.w = R124i.w; +R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R126i.z)) + 1.0)); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 4 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.x))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + 0.5)); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.w)) + 0.5)); +PV0i.w = R127i.w; +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + 1.0)); +R125i.y = clampFI32(R125i.y); +PS0i = R125i.y; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) + -(intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PS0i)) + 0.5)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.z) + -(intBitsToFloat(PV0i.w))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R0i.w)) + 0.5)); +PV1i.w = R126i.w; +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R10i.w)) + intBitsToFloat(R5i.w))); +PS1i = R3i.w; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e35e743)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e35e743)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 9 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0xbedd476b)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c00000)); +PV1i.x = clampFI32(PV1i.x); +// 12 +R1i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R3i.w = R1i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R10i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R11i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R10i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R11i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.z = R1i.w; +PS0i = R2i.z; +// 1 +R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R11i.w))) + intBitsToFloat(R1i.y))); +PS0i = R2i.y; +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R12i.w)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +// 5 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockPS10[3].z) + uf_blockPS10[1].y)); +R2i.x = clampFI32(R2i.x); +} +// export +passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/9c0b7031078fba88_0000007800001269_ps.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/9c0b7031078fba88_0000007800001269_ps.txt new file mode 100644 index 00000000..647e9e27 --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/9c0b7031078fba88_0000007800001269_ps.txt @@ -0,0 +1,590 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader b8a18eeb20759bfd +UNIFORM_BUFFER_LAYOUT(33, 1, 6) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 7) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 8) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(5, 1, 2) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(7, 1, 3) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(12, 1, 4) uniform sampler2D textureUnitPS12; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 5) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_5(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R4i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R4i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).w); +} +if( activeMaskStackC[1] == true ) { +// 0 +R127i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R4i.x)) + uf_blockPS1[14].x)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R4i.w)) + uf_blockPS1[14].x)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R4i.z)) + uf_blockPS1[14].x)); +PV0i.w = R127i.w; +R124i.x = floatBitsToInt((intBitsToFloat(R5i.x) * 2.0 + -(1.0))); +PS0i = R124i.x; +// 1 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +R0i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), -(intBitsToFloat(PV0i.w)))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), -(intBitsToFloat(PV0i.w)))); +PS1i = R127i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.x)))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.x)))); +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.w)); +PS0i = R126i.x; +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.w)); +PV1i.x = R127i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.z)); +PV1i.y = R126i.y; +R127i.zwy = floatBitsToInt(vec3(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R0i.z)),-(intBitsToFloat(R0i.z))) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.z))); +PV1i.z = R127i.z; +PV1i.w = R127i.w; +PS1i = R127i.y; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +R125i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R5i.z) * 2.0 + -(1.0))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.x))); +PS0i = R125i.x; +// 5 +backupReg0i = R127i.y; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(0x437f0000)); +R126i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x437f0000)); +PV1i.w = floatBitsToInt(uf_blockPS6[53].z * intBitsToFloat(0x3d4ccccd)); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.x))); +PS1i = R2i.y; +// 6 +R12i.x = floatBitsToInt((-(intBitsToFloat(R0i.z)) * intBitsToFloat(0x3d4ccccd) + -(intBitsToFloat(PV1i.w)))); +R12i.x = clampFI32(R12i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R125i.z))); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(R125i.x))); +R0i.w = 0x3f800000; +R2i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.z)), uf_blockPS1[17].y)); +PS0i = R2i.z; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R125i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +PS1i = int(intBitsToFloat(R127i.y)); +// 8 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R2i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(R1i.z)),-0.0),vec4(-(intBitsToFloat(R2i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(R1i.z)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = PS1i & int(1); +// 9 +R5i.z = ((PS0i == 0)?(0):(0x3f800000)); +PS1i = int(intBitsToFloat(R126i.z)); +// 10 +R125i.x = PS1i & 0x00000002; +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.w)); +PS0i = floatBitsToInt(tempResultf); +// 11 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i))); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y)); +R1i.w = floatBitsToInt(tempResultf); +PS1i = R1i.w; +// 12 +R4i.w = floatBitsToInt(float(R125i.x)); +R4i.w = floatBitsToInt(intBitsToFloat(R4i.w) / 2.0); +PS0i = R4i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R5i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +// 1 +R4i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +R9i.w = 0; +// 2 +predResult = (1.0 > intBitsToFloat(R12i.x)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R9i.x) * 1.5); +PV0i.y = floatBitsToInt(intBitsToFloat(R10i.y) * 1.5); +R127i.z = ((-(intBitsToFloat(R0i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = ((-(intBitsToFloat(R0i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R10i.z) * 1.5); +// 1 +backupReg0i = R2i.x; +backupReg1i = R2i.z; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = PV0i.w & int(1); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.y))); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),intBitsToFloat(R1i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(backupReg1i) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R4i.x = PV1i.y - R127i.z; +PV0i.x = R4i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.x))); +R3i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R3i.w = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +PS0i = R4i.y; +// 3 +backupReg0i = R4i.w; +backupReg1i = R0i.z; +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.y))); +R3i.y = floatBitsToInt(uf_blockPS6[53].y); +R3i.y = floatBitsToInt(intBitsToFloat(R3i.y) / 2.0); +PV1i.z = PV0i.x << 0x00000002; +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg1i))); +R127i.y = floatBitsToInt(float(PV0i.x)); +PS1i = R127i.y; +// 4 +R1i.x = PV1i.z + 0x0000002b; +R1i.y = PV1i.z + 0x0000002a; +R1i.z = PV1i.z + 0x0000002d; +R1i.w = PV1i.z + 0x0000002c; +R5i.w = floatBitsToInt(uf_blockPS6[53].x); +R5i.w = floatBitsToInt(intBitsToFloat(R5i.w) / 2.0); +PS0i = R5i.w; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.y = tempi.x; +R9i.z = floatBitsToInt(roundEven(intBitsToFloat(R127i.y))); +PS1i = R9i.z; +} +if( activeMaskStackC[2] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockPS1[R1i.z].xyzw); +R7i.xyzw = floatBitsToInt(uf_blockPS1[R1i.w].xyzw); +R8i.xyzw = floatBitsToInt(uf_blockPS1[R1i.y].xyzw); +R1i.xyzw = floatBitsToInt(uf_blockPS1[R1i.x].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.z)),vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R4i.z)),-(intBitsToFloat(R9i.w))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R2i.y)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R3i.y))); +R2i.z = R9i.z; +PS1i = R2i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R9i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(R5i.w))); +PS0i = R125i.y; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R126i.x = R3i.y; +PS1i = R126i.x; +// 4 +backupReg0i = R126i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R4i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(backupReg0i))); +R10i.z = R9i.z; +PS0i = R10i.z; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV0i.w))); +R11i.z = R9i.z; +// 6 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R5i.y))); +PV0i.x = R5i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(R3i.x))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R4i.w))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R7i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R6i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R1i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R126i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +backupReg0i = R0i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R8i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R7i.z)) + intBitsToFloat(R127i.y))); +PV0i.w = R123i.w; +// 11 +backupReg0i = R0i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV0i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R1i.z)) + intBitsToFloat(R126i.y))); +PV1i.w = R123i.w; +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.w)); +// 13 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.y))); +PV1i.w = R126i.w; +R9i.x = floatBitsToInt((uf_blockPS6[53].x * 0.5 + intBitsToFloat(PV0i.y))); +PS1i = R9i.x; +// 14 +R2i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R5i.w)); +R9i.y = floatBitsToInt((uf_blockPS6[53].y * 0.5 + intBitsToFloat(PV1i.w))); +R9i.w = PV1i.x; +R2i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.w)); +PS0i = R2i.y; +// 15 +R10i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R125i.y)); +R10i.y = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R126i.x)); +R2i.w = R127i.x; +R10i.w = R127i.x; +PS1i = R10i.w; +// 16 +R11i.x = floatBitsToInt((-(uf_blockPS6[53].x) * 0.5 + intBitsToFloat(R127i.y))); +R11i.y = floatBitsToInt((-(uf_blockPS6[53].y) * 0.5 + intBitsToFloat(R126i.w))); +R11i.w = R127i.x; +} +if( activeMaskStackC[2] == true ) { +R9i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +R2i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)))); +R10i.w = floatBitsToInt(textureShadow_3(textureUnitPS7, vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.w)))); +R11i.z = floatBitsToInt(textureShadow_4(textureUnitPS7, vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z),intBitsToFloat(R11i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R2i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R10i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +// 2 +R0i.w = floatBitsToInt((intBitsToFloat(R11i.z) * 0.5 + intBitsToFloat(PV1i.y))/2.0); +PV0i.w = R0i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R1i.z = ((R4i.x > 0)?(PV1i.x):(0)); +// 5 +predResult = (R1i.z != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R4i.x; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R1i.x = PV1i.w + 0x0000002c; +R1i.y = PV1i.w + 0x0000002a; +R1i.z = PV1i.w + 0x0000002b; +R1i.w = PV1i.w + 0x0000002d; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R1i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R1i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R1i.y].xyzw); +R1i.xyzw = floatBitsToInt(uf_blockPS1[R1i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R3i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R2i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R4i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R1i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R5i.y; +// 6 +R5i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.y = floatBitsToInt(textureShadow_5(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.w; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.y))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R0i.w)) + 1.0); +// 1 +backupReg0i = R0i.w; +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R12i.x)) + intBitsToFloat(backupReg0i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +R0i.y = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R0i.xy)).y); +} +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),uf_blockPS10[3].z) + uf_blockPS10[1].y)); +R0i.x = clampFI32(R0i.x); +R0i.z = 0x3f800000; +} +// export +passPixelColor5 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.z)); +} diff --git a/src/BreathOfTheWild/!Override/AmdIntelShadows/rules.txt b/src/BreathOfTheWild/!Override/AmdIntelShadows/rules.txt new file mode 100644 index 00000000..b6b032f0 --- /dev/null +++ b/src/BreathOfTheWild/!Override/AmdIntelShadows/rules.txt @@ -0,0 +1,7 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Shadows Workaround (for older Cemu versions) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds for OpenGL/AMD and Intel: Shadows (for older Cemu versions)" +description = Only enable this pack IF you have issues.|Reduces the severity of the bugged shadows on Intel and AMD GPUs with some combinations of Cemu versions and some driver versions.||Made by ethrillo and Cypher. +version = 6 +rendererFilter = opengl \ No newline at end of file diff --git a/src/BreathOfTheWild/!Override/IntelShadows/09085793b5a9f364_00001ffe492e9249_ps.txt b/src/BreathOfTheWild/!Override/IntelShadows/09085793b5a9f364_00001ffe492e9249_ps.txt new file mode 100644 index 00000000..9703bd52 --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/09085793b5a9f364_00001ffe492e9249_ps.txt @@ -0,0 +1,1168 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader d2cb8f8abc8a00bc +UNIFORM_BUFFER_LAYOUT(33, 1, 12) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 13) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 14) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 4) uniform samplerCubeArray textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 5) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(10, 1, 6) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(14, 1, 8) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 9) uniform sampler2D textureUnitPS15; +TEXTURE_LAYOUT(16, 1, 10) uniform sampler2D textureUnitPS16; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem5; +layout(location = 3) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +#ifdef VULKAN +layout(set = 1, binding = 11) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_5(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex6 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem5); +R3i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.zw)).xyzw); +R13i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((intBitsToFloat(R3i.x) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R3i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R124i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 2.0 + -(1.0))); +PS0i = R124i.z; +// 1 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R9i.x; +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x437f0000)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +PS1i = R127i.z; +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[45].x)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), -(intBitsToFloat(PS1i)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), -(intBitsToFloat(PS1i)))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[43].x)); +PS0i = int(intBitsToFloat(PV1i.w)); +// 3 +PV1i.x = PS0i & int(1); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[45].y) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R4i.w = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y)); +PS1i = R4i.w; +// 4 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.z))); +R3i.y = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(R126i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R8i.w = ((PV1i.x == 0)?(0):(0x3f800000)); +R3i.x = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV1i.w)); +PS0i = R3i.x; +// 5 +R15i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(PV0i.z)); +PV1i.x = R15i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd)); +R0i.z = floatBitsToInt((-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R0i.z = clampFI32(R0i.z); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), uf_blockPS6[44].x)); +R5i.w = 0x3f800000; +PS1i = R5i.w; +// 6 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS6[39].z) + -(uf_blockPS6[39].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R124i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R12i.z))); +R12i.w = R13i.x; +R12i.w = clampFI32(R12i.w); +R13i.w = floatBitsToInt((-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3c23d70a) + -(0.5))); +R13i.w = clampFI32(R13i.w); +PS0i = R13i.w; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(PV0i.y),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[44].y) + intBitsToFloat(R127i.w))); +PS1i = R122i.x; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[44].z) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R126i.z))); +PV0i.y = R123i.y; +R13i.z = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.y))); +R13i.z = clampFI32(R13i.z); +R6i.w = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.y))); +R6i.w = clampFI32(R6i.w); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 9 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R14i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(PV0i.x)); +PS1i = R14i.z; +// 10 +R12i.x = floatBitsToInt(uf_blockPS1[0].y); +R14i.y = PS1i; +PV0i.y = R14i.y; +R15i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R127i.x)); +PV0i.z = R15i.z; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +// 11 +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),uf_blockPS6[39].z) + -(uf_blockPS6[39].y))); +R3i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + uf_blockPS6[39].w); +R0i.w = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +PS1i = R0i.w; +} +if( activeMaskStackC[1] == true ) { +R0i.y = floatBitsToInt(textureLod(textureUnitPS11, intBitsToFloat(R0i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.w; +R13i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockPS1[11].x,uf_blockPS1[11].y,uf_blockPS1[11].z,0.0))); +PV0i.x = R13i.x; +PV0i.y = R13i.x; +PV0i.z = R13i.x; +PV0i.w = R13i.x; +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(backupReg0i))); +PS0i = R14i.x; +// 1 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockPS1[12].x,uf_blockPS1[12].y,uf_blockPS1[12].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R15i.y = tempi.x; +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(backupReg0i))); +PS1i = R16i.y; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.x) * 2.0 + -(1.0))); +PV0i.y = R123i.y; +R16i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R0i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS1i)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(PV0i.x)))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), -(intBitsToFloat(PV0i.x)))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),intBitsToFloat(PV0i.y)) + intBitsToFloat(R3i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.w)); +R4i.y = floatBitsToInt(tempResultf); +PS1i = R4i.y; +// 4 +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x3fa66666)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV1i.x)); +PV0i.y = R126i.y; +R125i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV1i.w)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(PV1i.y)); +PV0i.w = R127i.w; +R2i.y = floatBitsToInt(intBitsToFloat(R0i.z) + uf_blockPS10[3].y); +PS0i = R2i.y; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(uf_blockPS10[2].z + 1.0); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV0i.w))); +R17i.y = floatBitsToInt(uf_blockPS1[1].y); +PS1i = R17i.y; +// 6 +backupReg0i = R3i.y; +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV1i.x))); +PV0i.x = R0i.x; +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(R4i.w)) + intBitsToFloat(PV1i.y))); +PV0i.y = R3i.y; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PV0i.z = R0i.z; +R0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y)); +R18i.y = floatBitsToInt(-(intBitsToFloat(R6i.w)) + intBitsToFloat(PV1i.z)); +R18i.y = clampFI32(R18i.y); +PS0i = R18i.y; +// 7 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R17i.z = floatBitsToInt(uf_blockPS1[2].y); +PS1i = R17i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockPS1[13].x,uf_blockPS1[13].y,uf_blockPS1[13].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R18i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R2i.w = floatBitsToInt(tempResultf); +PS0i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[39].w),intBitsToFloat(R0i.y)) + intBitsToFloat(R2i.x))); +PV0i.w = R123i.w; +// 1 +R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R126i.y = clampFI32(R126i.y); +PV1i.y = R126i.y; +// 2 +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +// 4 +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.w = R127i.w; +// 5 +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +// 6 +R14i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(R127i.w))); +R14i.w = clampFI32(R14i.w); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R10i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PV0i.x = R10i.x; +R10i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +PV0i.y = R10i.y; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.x = R123i.x; +R4i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PV1i.z = R4i.z; +R9i.w = 0; +R2i.x = PV0i.x; +PS1i = R2i.x; +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(PV1i.z))); +R0i.y = PV1i.z; +PV0i.y = R0i.y; +R2i.z = 0; +PV0i.z = R2i.z; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R16i.z),intBitsToFloat(R16i.z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R4i.y))); +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R16i.y),intBitsToFloat(R127i.x),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R15i.w = tempi.x; +R19i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +PS0i = R19i.y; +// 5 +predResult = (1.0 > intBitsToFloat(R13i.z)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.x) * 1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) * 1.5); +PV0i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R10i.z) * 1.5); +// 1 +backupReg0i = R0i.z; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.z = PV0i.w & int(1); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(R0i.w) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R3i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.y = PV1i.z - R127i.x; +PV0i.y = R4i.y; +R2i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.w = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(uf_blockPS6[53].y); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 3 +R4i.x = PS0i; +R3i.y = floatBitsToInt(uf_blockPS6[53].x); +R3i.y = floatBitsToInt(intBitsToFloat(R3i.y) / 2.0); +R3i.z = floatBitsToInt(-(intBitsToFloat(PS0i))); +PV1i.w = PV0i.y << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.y)); +// 4 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R8i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R8i.z; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R3i.w),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R3i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.w = tempi.x; +R9i.z = PS0i; +PS1i = R9i.z; +} +if( activeMaskStackC[2] == true ) { +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R7i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.z)),vec4(-(intBitsToFloat(R10i.x)),-(intBitsToFloat(R10i.y)),-(intBitsToFloat(R4i.z)),-(intBitsToFloat(R9i.w))))); +R126i.x = clampFI32(R126i.x); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R2i.w)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R3i.y))); +R10i.z = R8i.z; +PS1i = R10i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R11i.z = R8i.z; +PS0i = R11i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R4i.w))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R2i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PV0i.w))); +// 6 +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R9i.x))); +PV0i.x = R16i.x; +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(R8i.y))); +R19i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(R12i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R6i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R7i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R5i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R7i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.x)); +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV0i.x)); +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R126i.z; +// 12 +backupReg0i = R0i.w; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); +// 13 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R126i.z))); +PV1i.x = R126i.x; +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R126i.w = clampFI32(R126i.w); +PV1i.w = R126i.w; +R8i.x = floatBitsToInt((uf_blockPS6[53].x * 0.5 + intBitsToFloat(PV0i.y))); +PS1i = R8i.x; +// 14 +R9i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R3i.y)); +R8i.y = floatBitsToInt((uf_blockPS6[53].y * 0.5 + intBitsToFloat(PV1i.x))); +R8i.w = PV1i.w; +R9i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R3i.z)); +PS0i = R9i.y; +// 15 +R10i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R127i.w)); +R10i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(R4i.x)); +R9i.w = R126i.w; +R10i.w = R126i.w; +PS1i = R10i.w; +// 16 +R11i.x = floatBitsToInt((-(uf_blockPS6[53].x) * 0.5 + intBitsToFloat(R127i.y))); +R11i.y = floatBitsToInt((-(uf_blockPS6[53].y) * 0.5 + intBitsToFloat(R126i.x))); +R11i.w = R126i.w; +} +if( activeMaskStackC[2] == true ) { +R8i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R9i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +R10i.w = floatBitsToInt(textureShadow_3(textureUnitPS7, vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.w)))); +R11i.z = floatBitsToInt(textureShadow_4(textureUnitPS7, vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z),intBitsToFloat(R11i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R9i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R10i.w) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +// 2 +R6i.w = floatBitsToInt((intBitsToFloat(R11i.z) * 0.5 + intBitsToFloat(PV1i.y))/2.0); +PV0i.w = R6i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R0i.w = ((R4i.y > 0)?(PV1i.x):(0)); +// 5 +predResult = (R0i.w != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R4i.y; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002a; +R0i.z = PV1i.w + 0x0000002b; +R0i.w = PV1i.w + 0x0000002d; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R3i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R2i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R4i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R5i.y; +// 6 +R5i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.y = floatBitsToInt(textureShadow_5(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R6i.w; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.y))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0); +// 1 +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R13i.z)) + intBitsToFloat(R6i.w))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R2i.x = floatBitsToInt(intBitsToFloat(R15i.x) * intBitsToFloat(0x3a83126f)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R0i.z = floatBitsToInt(-(intBitsToFloat(R18i.z))); +PV0i.z = R0i.z; +R0i.w = 0x40400000; +R2i.y = floatBitsToInt(intBitsToFloat(R15i.z) * intBitsToFloat(0x3a83126f)); +PS0i = R2i.y; +// 1 +redcCUBE(vec4(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z),intBitsToFloat(R13i.x),intBitsToFloat(R15i.y)),vec4(intBitsToFloat(R15i.y),intBitsToFloat(R13i.x),intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +R126i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PS1i = R126i.x; +// 2 +R3i.x = floatBitsToInt((intBitsToFloat(R15i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +PV0i.y = floatBitsToInt(intBitsToFloat(R15i.w) + -(intBitsToFloat(R19i.y))); +R0i.z = PV1i.w; +R3i.w = floatBitsToInt((intBitsToFloat(R15i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 3 +backupReg0i = R127i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(R19i.y))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R126i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.w = floatBitsToInt(tempResultf); +PS1i = R127i.w; +// 4 +R0i.x = PV1i.w; +R0i.y = PV1i.z; +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), intBitsToFloat(0xbf7d70a4))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.w = 0x3f800000; +PS0i = R2i.w; +// 5 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PV1i.x = R127i.x; +R5i.y = 0; +R6i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3ba3d70a)); +R123i.w = floatBitsToInt((-(intBitsToFloat(R15i.y)) * 0.5 + 0.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 6 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x40200000)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + uf_blockPS6[27].w)/2.0); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3daaaaab)); +R4i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(0xbe593484))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.w))); +// 8 +backupReg0i = R127i.w; +R8i.x = floatBitsToInt((intBitsToFloat(R14i.w) * intBitsToFloat(0xbdcccccd) + intBitsToFloat(0x3dcccccd))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(0x3fc90da4))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(backupReg0i))); +tempResultf = log2(intBitsToFloat(PV1i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.y = floatBitsToInt(tempResultf); +PS0i = R127i.y; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R14i.y),intBitsToFloat(R15i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),-(intBitsToFloat(PV0i.y))) + 1.0)); +PS1i = R4i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R14i.y),intBitsToFloat(R15i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R14i.y),intBitsToFloat(R15i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R6i.x; +// 12 +R7i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(R127i.y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +R2i.z = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R13i.y) + 1.0)); +R2i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R4i.w = floatBitsToInt(exp2(intBitsToFloat(R127i.w))); +PS0i = R4i.w; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS6, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex6),intBitsToFloat(R0i.w)).xyz); +R0i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).x); +R3i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R3i.xw),0.0).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R4i.xy)).xyz); +R5i.xyz = floatBitsToInt(texture(textureUnitPS16, intBitsToFloat(R5i.xy)).xyz); +R6i.x = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R6i.xy),intBitsToFloat(R6i.z)).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +R123i.x = floatBitsToInt((intBitsToFloat(R0i.w) * 2.0 + -(1.0))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(min(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R127i.z = clampFI32(R127i.z); +PV0i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.z))); +R126i.w = floatBitsToInt(exp2(intBitsToFloat(R7i.x))); +PS0i = R126i.w; +// 1 +R125i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.w) * intBitsToFloat(0x40200001)); +R126i.y = clampFI32(R126i.y); +PV1i.y = R126i.y; +R124i.z = floatBitsToInt(max(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.w))); +PV1i.z = R124i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x41c80000) + intBitsToFloat(R14i.z))); +PV1i.w = R123i.w; +R126i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(R4i.w))) + uf_blockPS6[27].z)); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.z; +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3dcccccd)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x2edbe6ff)); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + uf_blockPS6[52].x); +R127i.w = floatBitsToInt((-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +tempResultf = log2(intBitsToFloat(backupReg0i)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R125i.z = floatBitsToInt(tempResultf); +PS0i = R125i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R17i.y),intBitsToFloat(R17i.z),-0.0),vec4(intBitsToFloat(R14i.x),intBitsToFloat(R16i.y),intBitsToFloat(R16i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 4 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R2i.z))); +PV0i.x = R124i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R127i.y = clampFI32(R127i.y); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R127i.z = clampFI32(R127i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.x)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(R125i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(0x2edbe6ff)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R8i.x)); +R127i.w = clampFI32(R127i.w); +R125i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R125i.y; +// 6 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 7 +backupReg0i = R126i.y; +backupReg1i = R127i.w; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), uf_blockPS6[13].w)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(R124i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS0i)) + 1.0)); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R127i.z))); +tempResultf = log2(intBitsToFloat(backupReg1i)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R2i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.x))); +R127i.y = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +PS0i = R127i.y; +// 9 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockPS6[30].w)); +R124i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R125i.x))); +R125i.z = R1i.x; +R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); +R125i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.x))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 10 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R2i.z))); +PV0i.x = R0i.x; +R0i.y = floatBitsToInt(intBitsToFloat(R0i.z) + -(intBitsToFloat(R125i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R126i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.x))); +// 11 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.y))); +PV1i.x = R126i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), uf_blockPS6[16].w)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.w),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.z))); +PS1i = R127i.y; +// 12 +backupReg0i = R126i.y; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.x = R1i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.y))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.w))); +PV0i.z = R0i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R124i.z))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R12i.w)) + intBitsToFloat(R127i.w))); +PS0i = R125i.x; +// 13 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R124i.y)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R5i.w) + -(intBitsToFloat(R126i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 14 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(R126i.y))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(R126i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(R126i.y))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +PS0i = R125i.z; +// 15 +backupReg0i = R4i.x; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R18i.y)) + intBitsToFloat(R126i.z))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R126i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R125i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R125i.x))); +PS1i = R126i.y; +// 16 +backupReg0i = R127i.x; +backupReg1i = R124i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(R127i.z)) + intBitsToFloat(backupReg0i))); +R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + -(intBitsToFloat(R125i.z))); +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(R127i.z)) + intBitsToFloat(backupReg1i))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(R0i.x))) + intBitsToFloat(R124i.x))); +PS0i = R127i.z; +// 17 +backupReg0i = R5i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R5i.x) + -(intBitsToFloat(R124i.y))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), uf_blockPS6[1].w)); +R5i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.y))); +R126i.w = floatBitsToInt(uf_blockPS6[1].x + -(1.0)); +R124i.x = floatBitsToInt(uf_blockPS6[1].y + -(1.0)); +PS1i = R124i.x; +// 18 +backupReg0i = R127i.x; +backupReg1i = R126i.y; +backupReg2i = R127i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(backupReg0i))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + intBitsToFloat(R127i.w))); +PV0i.w = floatBitsToInt(uf_blockPS6[1].z + -(1.0)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R13i.w)) + intBitsToFloat(R124i.y))); +PS0i = R127i.y; +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R13i.w)) + intBitsToFloat(R125i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(R5i.y)) + 1.0)); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R5i.y)) + 1.0)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R13i.w)) + intBitsToFloat(R125i.y))); +PV1i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R5i.y)) + 1.0)); +PS1i = R122i.x; +// 20 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.z))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.y))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +R3i.w = 0; +R2i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R0i.x)) + intBitsToFloat(R126i.y))); +PS0i = R2i.x; +// 21 +R2i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R0i.x)) + intBitsToFloat(R127i.x))); +R2i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R0i.x)) + intBitsToFloat(R127i.z))); +R5i.w = 0x3f800000; +R3i.y = R14i.w; +PS1i = R3i.y; +// 22 +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(R1i.x)) + intBitsToFloat(R1i.x))); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS10[3].z,intBitsToFloat(R4i.x)) + uf_blockPS10[1].y)); +R126i.w = clampFI32(R126i.w); +// 1 +PV1i.y = floatBitsToInt(intBitsToFloat(R6i.x) + uf_blockPS10[1].z); +PV1i.y = clampFI32(PV1i.y); +// 2 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R126i.w))); +// 3 +R6i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R6i.w = R5i.w; +// 4 +R5i.xyz = ivec3(R2i.x,R2i.y,R2i.z); +R5i.w = R2i.w; +// 5 +R4i.xyz = ivec3(R3i.x,R3i.y,R3i.z); +R4i.w = R3i.w; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +passPixelColor1 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); +passPixelColor2 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); +} diff --git a/src/BreathOfTheWild/!Override/IntelShadows/45e72a252caba763_000003c000009269_ps.txt b/src/BreathOfTheWild/!Override/IntelShadows/45e72a252caba763_000003c000009269_ps.txt new file mode 100644 index 00000000..34d87e8c --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/45e72a252caba763_000003c000009269_ps.txt @@ -0,0 +1,581 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader cbbcf83b05c6d921 +UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(14, 1, 5) uniform sampler2D textureUnitPS14; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.z = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.zw)).x); +R6i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R2i.z = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).w); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R4i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R124i.y = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0))); +R4i.z = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R3i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PS0i = R3i.z; +// 1 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +R9i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R9i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(PV1i.z)))); +PS0i = R126i.w; +// 3 +backupReg0i = R127i.z; +backupReg1i = R127i.w; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.w)))); +R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(backupReg0i)))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(backupReg1i)))); +R125i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i))); +PS1i = R125i.z; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.z = tempi.x; +R126i.y = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x437f0000)); +PS0i = R126i.y; +// 5 +R126i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R127i.z)); +R125i.y = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(R126i.w)); +R127i.z = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(R127i.x)); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R127i.y)); +PV1i.w = R126i.w; +R125i.x = floatBitsToInt(sqrt(intBitsToFloat(R126i.z))); +PS1i = R125i.x; +// 6 +R127i.x = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R125i.z)); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R127i.w)); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockPS6[43].x)); +R125i.w = floatBitsToInt(sqrt(intBitsToFloat(R124i.z))); +PS0i = R125i.w; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockPS6[45].x)); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.x))); +R127i.w = int(intBitsToFloat(R126i.y)); +PS1i = R127i.w; +// 8 +backupReg0i = R126i.x; +R126i.x = PS1i & 0x0000001c; +R0i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.z))); +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockPS6[45].y) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.w))); +PS0i = R0i.x; +// 9 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),uf_blockPS6[43].z) + intBitsToFloat(R124i.z))); +R127i.y = floatBitsToInt(-(intBitsToFloat(R9i.z)) * intBitsToFloat(0x3d4ccccd)); +PV1i.y = R127i.y; +R127i.z = R127i.w & 0x00000002; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),uf_blockPS6[45].z) + intBitsToFloat(PV0i.w))); +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 10 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +backupReg1i = R0i.z; +backupReg1i = R0i.z; +R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R0i.x)),-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),-0.0),vec4(-(intBitsToFloat(R0i.x)),-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),0.0))); +PV0i.x = R124i.x; +PV0i.y = R124i.x; +PV0i.z = R124i.x; +PV0i.w = R124i.x; +R1i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV1i.y))); +R1i.x = clampFI32(R1i.x); +PS0i = R1i.x; +// 11 +R9i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R127i.x)); +R10i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R127i.w)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R125i.x)); +// 12 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS1i))); +PV0i.x = R2i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PS1i))); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +R11i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.y))); +R11i.w = clampFI32(R11i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +// 13 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PS0i))); +R125i.w = PV0i.x; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.z = PV0i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +PS1i = R124i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(float(R126i.x)); +// 15 +backupReg0i = R127i.y; +R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R127i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3d124925)); +R10i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R10i.w = clampFI32(R10i.w); +R9i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(backupReg0i))); +PS1i = R9i.y; +// 16 +PS0i = floatBitsToInt(float(R127i.z)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 17 +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(PS0i))) + intBitsToFloat(R127i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +R2i.z = floatBitsToInt(tempResultf); +PS1i = R2i.z; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R7i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +R6i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +PV0i.z = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R8i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PV1i.z = R8i.z; +R1i.w = 0; +PV1i.w = R1i.w; +R9i.w = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.z)); +R9i.w = clampFI32(R9i.w); +PS1i = R9i.w; +// 2 +R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.z)),vec4(-(intBitsToFloat(R7i.x)),-(intBitsToFloat(R6i.y)),-(intBitsToFloat(PV1i.z)),-(intBitsToFloat(PV1i.w))))); +PV0i.x = R1i.x; +PV0i.y = R1i.x; +PV0i.z = R1i.x; +PV0i.w = R1i.x; +// 3 +predResult = (1.0 > intBitsToFloat(R11i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = ((-(intBitsToFloat(R9i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +R127i.y = ((-(intBitsToFloat(R9i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.z = floatBitsToInt(intBitsToFloat(R2i.x) * 1.5); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.y) * 1.5); +PS0i = floatBitsToInt(intBitsToFloat(R1i.z) * 1.5); +// 1 +backupReg0i = R2i.z; +backupReg1i = R1i.x; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.z))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PS0i))); +PV1i.w = PV0i.x & int(1); +PS1i = ((intBitsToFloat(0x3eb33333) > intBitsToFloat(backupReg1i))?int(0xFFFFFFFF):int(0x0)); +// 2 +R2i.x = floatBitsToInt((intBitsToFloat(R0i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.z)),uf_blockPS1[17].y) + 1.0)); +PV0i.z = PV1i.w - R127i.y; +R1i.w = ((PS1i == 0)?(0x3f800000):(0)); +R2i.w = 0x3f000000; +PS0i = R2i.w; +// 3 +PV1i.x = PV0i.z << 0x00000002; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.z))); +R127i.w = floatBitsToInt(float(PV0i.z)); +PS1i = R127i.w; +// 4 +R0i.x = PV1i.x + 0x0000002d; +R0i.y = PV1i.x + 0x0000002c; +R0i.z = PV1i.x + 0x0000002b; +R0i.w = PV1i.x + 0x0000002a; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.y))); +PS0i = R122i.x; +// 5 +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(PS0i))); +R6i.z = floatBitsToInt(roundEven(intBitsToFloat(R127i.w))); +PS1i = R6i.z; +} +if( activeMaskStackC[2] == true ) { +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.y = floatBitsToInt(uf_blockPS6[53].y); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) / 2.0); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(uf_blockPS6[53].x); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.z)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R7i.z = R6i.z; +PS1i = R7i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(R126i.z))); +PS0i = R125i.y; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R8i.z = R6i.z; +PS1i = R8i.z; +// 4 +backupReg0i = R126i.y; +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3b449ba7)); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3b449ba7)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba7)); +R126i.x = backupReg0i; +PS0i = R126i.x; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.y))); +R1i.z = R6i.z; +// 6 +backupReg0i = R127i.w; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R9i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R6i.x))); +PV0i.w = R127i.w; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R4i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R5i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R3i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R5i.z)) + intBitsToFloat(R126i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R0i.z)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.x)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +// 13 +R127i.x = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x)); +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R6i.y = floatBitsToInt((uf_blockPS6[53].y * 0.5 + intBitsToFloat(PV0i.y))); +R6i.x = floatBitsToInt((uf_blockPS6[53].x * 0.5 + intBitsToFloat(PV0i.z))); +PS1i = R6i.x; +// 14 +R7i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); +R7i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R126i.w)); +R6i.w = PV1i.x; +R7i.w = PV1i.x; +PS0i = R7i.w; +// 15 +R8i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R125i.y)); +R8i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R126i.x)); +R8i.w = R127i.x; +R1i.x = floatBitsToInt((-(uf_blockPS6[53].x) * 0.5 + intBitsToFloat(R127i.z))); +PS1i = R1i.x; +// 16 +R1i.y = floatBitsToInt((-(uf_blockPS6[53].y) * 0.5 + intBitsToFloat(R127i.y))); +R1i.w = R127i.x; +} +if( activeMaskStackC[2] == true ) { +R6i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R6i.z),intBitsToFloat(R6i.w)))); +R7i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +R8i.w = floatBitsToInt(textureShadow_3(textureUnitPS7, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R1i.z = floatBitsToInt(textureShadow_4(textureUnitPS7, vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(R7i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +// 1 +R123i.z = floatBitsToInt((intBitsToFloat(R8i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +// 2 +R127i.y = floatBitsToInt((intBitsToFloat(R1i.z) * 0.5 + intBitsToFloat(PV1i.z))/2.0); +PV0i.y = R127i.y; +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 4 +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R11i.w)) + intBitsToFloat(R127i.y))); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R0i.w = R2i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R9i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R10i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R9i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R10i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.z = R2i.w; +PS0i = R2i.z; +// 1 +R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS14, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R10i.w))) + intBitsToFloat(R1i.y))); +PS0i = R2i.y; +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R9i.w)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +// 5 +R2i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + uf_blockPS10[1].y); +R2i.x = clampFI32(R2i.x); +} +// export +passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/!Override/IntelShadows/59cba7eb9a9c1df6_00000007f924d249_ps.txt b/src/BreathOfTheWild/!Override/IntelShadows/59cba7eb9a9c1df6_00000007f924d249_ps.txt new file mode 100644 index 00000000..209a9cad --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/59cba7eb9a9c1df6_00000007f924d249_ps.txt @@ -0,0 +1,848 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 9c98a67271f8cc75 +UNIFORM_BUFFER_LAYOUT(33, 1, 10) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 11) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 12) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(10, 1, 5) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 6) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(14, 1, 7) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 8) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem5; +layout(location = 3) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +#ifdef VULKAN +layout(set = 1, binding = 9) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem5); +R3i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.zw)).xyzw); +R13i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +PV0i.y = R127i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +R5i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 2.0 + -(1.0))); +PS0i = R5i.x; +// 1 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.z)))); +PV1i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.z)))); +R1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), -(intBitsToFloat(PV0i.y)))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), -(intBitsToFloat(PV0i.y)))); +PS1i = R125i.w; +// 2 +R127i.x = floatBitsToInt(-(intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[43].x)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[45].x)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(R127i.w)))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), -(intBitsToFloat(R127i.w)))); +PS0i = R127i.y; +// 3 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[45].y) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R126i.w)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +R126i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R125i.w)); +PS1i = R126i.x; +// 4 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(R1i.z)) + intBitsToFloat(backupReg0i)); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),uf_blockPS6[43].z) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R127i.z = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.y)); +PS0i = R127i.z; +// 5 +R9i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(PV0i.w)); +PV1i.x = R9i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[44].x)); +R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.z)) + intBitsToFloat(R127i.w)); +PV1i.z = R126i.z; +R4i.w = floatBitsToInt((intBitsToFloat(R3i.y) * 2.0 + -(1.0))); +R5i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 2.0 + -(1.0))); +PS1i = R5i.z; +// 6 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS6[39].z) + -(uf_blockPS6[39].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R125i.z))); +R2i.y = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x437f0000)); +PS0i = R2i.y; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[44].y) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R0i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.w))); +R4i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +R5i.w = 0x3f800000; +R4i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); +PS1i = R4i.x; +// 8 +R2i.x = floatBitsToInt((-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R2i.x = clampFI32(R2i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); +R0i.z = floatBitsToInt(-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3d4ccccd)); +PV0i.z = R0i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),uf_blockPS6[44].z) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +R10i.x = floatBitsToInt(uf_blockPS1[0].y); +PS0i = R10i.x; +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.z))); +R15i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(PV0i.w)); +PV1i.z = R15i.z; +R0i.w = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV0i.z))); +R0i.w = clampFI32(R0i.w); +R9i.w = R13i.x; +R9i.w = clampFI32(R9i.w); +PS1i = R9i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R12i.y = PV1i.z; +PV0i.y = R12i.y; +R9i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R125i.y)); +PV0i.z = R9i.z; +R6i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R1i.z)), uf_blockPS1[17].y)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R4i.w)) + intBitsToFloat(PV1i.y))); +PS0i = R122i.x; +// 11 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R5i.x)) + intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),uf_blockPS6[39].z) + -(uf_blockPS6[39].y))); +R2i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + uf_blockPS6[39].w); +R3i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R4i.z)), -(intBitsToFloat(R4i.z)))); +R2i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +R3i.z = floatBitsToInt(textureLod(textureUnitPS11, intBitsToFloat(R3i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),-(intBitsToFloat(R0i.y))) + intBitsToFloat(R3i.w))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt(uf_blockPS10[2].z + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[39].w),intBitsToFloat(R3i.z)) + intBitsToFloat(R2i.z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R2i.w)); +// 1 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +PV1i.y = R11i.y; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R127i.z = clampFI32(R127i.z); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),-(intBitsToFloat(R4i.x))) + intBitsToFloat(PV0i.x))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PS1i = R10i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.y = R123i.y; +R16i.z = floatBitsToInt(-(intBitsToFloat(R0i.w)) + intBitsToFloat(R125i.y)); +R16i.z = clampFI32(R16i.z); +R11i.z = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R0i.z))); +R11i.z = clampFI32(R11i.z); +PS0i = R11i.z; +// 3 +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R17i.z = floatBitsToInt(intBitsToFloat(R2i.x) + uf_blockPS10[3].y); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +R0i.z = floatBitsToInt(tempResultf); +PS1i = R0i.z; +// 4 +R10i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R10i.w; +PS0i = int(intBitsToFloat(R2i.y)); +// 5 +PV1i.w = PS0i & int(1); +R11i.w = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PS1i = R11i.w; +// 6 +R12i.z = ((PV1i.w == 0)?(0):(0x3f800000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(R0i.x)); +PS0i = floatBitsToInt(tempResultf); +// 7 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS0i))); +R4i.w = floatBitsToInt(uf_blockPS10[2].w); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.w)); +R2i.w = floatBitsToInt(tempResultf); +PS1i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R5i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, intBitsToFloat(R4i.w))); +PV0i.x = R5i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, intBitsToFloat(R4i.w))); +PV0i.y = R5i.y; +R14i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, intBitsToFloat(R4i.w))); +PV0i.z = R14i.z; +R0i.w = 0; +// 1 +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +R2i.y = PV0i.z; +PV1i.y = R2i.y; +R2i.z = 0; +PV1i.z = R2i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PV0i.z))); +R0i.x = PV0i.x; +PS1i = R0i.x; +// 2 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.z),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(PS1i),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.w))); +PS0i = R122i.x; +// 3 +R10i.y = floatBitsToInt(uf_blockPS1[1].y); +R18i.z = floatBitsToInt(uf_blockPS1[2].y); +R12i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R5i.x)) + intBitsToFloat(PS0i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.x)); +PS1i = floatBitsToInt(tempResultf); +// 4 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R0i.z))); +// 5 +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R126i.x))); +// 6 +predResult = (1.0 > intBitsToFloat(R11i.z)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R3i.x) * 1.5); +R127i.y = ((-(intBitsToFloat(R1i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.z = ((-(intBitsToFloat(R1i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.y) * 1.5); +PS0i = floatBitsToInt(intBitsToFloat(R13i.z) * 1.5); +// 1 +backupReg0i = R2i.w; +PV1i.x = PV0i.z & int(1); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.w))); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PS0i))); +PV1i.w = R2i.w; +R122i.x = floatBitsToInt((intBitsToFloat(R6i.w) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R2i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R3i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R5i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.w = PV1i.x - R127i.y; +PV0i.w = R4i.w; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +// 3 +PV1i.x = PV0i.w << 0x00000002; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(R13i.z))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), -(intBitsToFloat(R0i.w)))); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 4 +R0i.x = PV1i.x + 0x0000002d; +R0i.y = PV1i.x + 0x0000002b; +R0i.z = PV1i.x + 0x0000002c; +R0i.w = PV1i.x + 0x0000002a; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PS1i))); +PS0i = R122i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R127i.y),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R3i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PS0i)); +R3i.w = floatBitsToInt(tempResultf); +PS1i = R3i.w; +} +if( activeMaskStackC[2] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R7i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R8i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R3i.w))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R3i.w))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R3i.w))); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.x)),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.x))); +PV0i.w = R123i.w; +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(R4i.y))); +PS0i = R126i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = tempi.x; +R126i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R1i.x))); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.y))); +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R18i.z)),intBitsToFloat(R3i.z)) + intBitsToFloat(R13i.z))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0)); +R127i.y = floatBitsToInt(float(R4i.w)); +PS0i = R127i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R13i.z),intBitsToFloat(R4i.z)),vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R5i.y)),-(intBitsToFloat(R14i.z)),1.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.x))); +PS1i = R124i.y; +// 4 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((intBitsToFloat(R126i.w) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R1i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R14i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(R127i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.z))); +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(R127i.y))); +PS0i = R5i.z; +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R3i.y))); +R123i.w = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R1i.z))); +PV1i.w = R123i.w; +// 6 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R126i.z))); +PV0i.x = R1i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R127i.x))); +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R7i.x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R6i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R7i.z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R124i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R8i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV1i.x)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) + intBitsToFloat(PV0i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.w; +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R5i.x; +// 13 +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.w))); +R5i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[2] == true ) { +R6i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.x = ((1.0 > intBitsToFloat(R6i.y))?int(0xFFFFFFFF):int(0x0)); +// 1 +R0i.w = ((R4i.w > 0)?(PV0i.x):(0)); +// 2 +predResult = (R0i.w != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = int(-1) + R4i.w; +// 1 +PV1i.y = PV0i.z << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.z)); +// 2 +R0i.x = PV1i.y + 0x0000002a; +R0i.y = PV1i.y + 0x0000002d; +R0i.z = PV1i.y + 0x0000002c; +R0i.w = PV1i.y + 0x0000002b; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R3i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R4i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R0i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.y)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.z)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R5i.y; +// 6 +R5i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R6i.y; +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.x))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R6i.y)) + 1.0); +// 1 +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R11i.z)) + intBitsToFloat(R6i.y))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R9i.x) * intBitsToFloat(0x3a83126f)); +R0i.y = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3a83126f)); +R127i.z = floatBitsToInt(intBitsToFloat(R12i.w) + -(intBitsToFloat(R9i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R1i.x = floatBitsToInt((intBitsToFloat(R9i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +PS0i = R1i.x; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R1i.y = floatBitsToInt((intBitsToFloat(R9i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R126i.z = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R2i.w = 0x3f800000; +R3i.w = floatBitsToInt(-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = R3i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(R9i.y))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R0i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R13i.y) + 1.0)); +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), intBitsToFloat(0xbf7d70a4))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) / 2.0); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40200001)); +R127i.y = clampFI32(R127i.y); +PS1i = R127i.y; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd)); +R123i.y = floatBitsToInt((-(intBitsToFloat(R1i.z)) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +PV0i.y = R123i.y; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R0i.z = clampFI32(R0i.z); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS0i)) + uf_blockPS6[27].w)/2.0); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R127i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +R127i.x = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV1i.w))); +PV0i.x = R127i.x; +R2i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(0xbe593484))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(R10i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.z)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +R125i.z = floatBitsToInt(exp2(intBitsToFloat(R126i.w))); +PS1i = R125i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + 1.0)); +PS0i = R2i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R2i.w)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R3i.x; +// 11 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R11i.y)) + intBitsToFloat(R127i.z))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.z))); +R1i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(R125i.z))) + uf_blockPS6[27].z)); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R9i.w)) + intBitsToFloat(R127i.x))); +R3i.z = floatBitsToInt(exp2(intBitsToFloat(R125i.w))); +PS1i = R3i.z; +} +if( activeMaskStackC[1] == true ) { +R0i.x = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); +R5i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R1i.xy),0.0).xyz); +R2i.xyz = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R2i.xy)).xyz); +R3i.w = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R3i.xy),intBitsToFloat(R3i.w)).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R11i.x)) + intBitsToFloat(R4i.x))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R1i.w))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R0i.w))); +PV0i.z = R126i.z; +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R1i.w))); +tempResultf = log2(intBitsToFloat(R0i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R1i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + uf_blockPS10[1].z); +R127i.x = clampFI32(R127i.x); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.w),intBitsToFloat(R17i.z)) + intBitsToFloat(R10i.w))); +R6i.y = clampFI32(R6i.y); +R2i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x41c80000) + intBitsToFloat(R15i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS1i))); +R125i.w = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +PS0i = R125i.w; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 4 +R123i.y = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS1i)) + 1.0)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), uf_blockPS6[16].w)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +R6i.w = 0; +PS0i = R6i.w; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.z)),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV0i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +PV1i.z = R127i.z; +R4i.w = 0x3f800000; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R5i.w) + -(intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[30].w)); +// 7 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R16i.z)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.w))); +PV1i.w = R1i.w; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS10[3].z,intBitsToFloat(PV1i.y)) + uf_blockPS10[1].y)); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),-(intBitsToFloat(PV1i.w))) + intBitsToFloat(R126i.z))); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.y))); +// 9 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.x))); +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R2i.z)) + uf_blockPS6[52].x); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +// 2 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[13].w)); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R3i.w)) + intBitsToFloat(R3i.w))); +PV0i.z = R123i.z; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV0i.x))); +R6i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +PS1i = R6i.z; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +// 8 +R4i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R4i.x; +R4i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.y = R4i.y; +R4i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.z = R4i.z; +// 9 +R1i.xyz = ivec3(PV0i.x,PV0i.y,PV0i.z); +R1i.w = R4i.w; +// 10 +R0i.xyz = ivec3(R6i.x,R6i.y,R6i.z); +R0i.w = R6i.w; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/!Override/IntelShadows/808ba0411f6f526e_0000007ff9249a49_ps.txt b/src/BreathOfTheWild/!Override/IntelShadows/808ba0411f6f526e_0000007ff9249a49_ps.txt new file mode 100644 index 00000000..9d137fd0 --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/808ba0411f6f526e_0000007ff9249a49_ps.txt @@ -0,0 +1,723 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader a73d770e3204e2e6 +UNIFORM_BUFFER_LAYOUT(33, 1, 10) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 11) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 12) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2DArray textureUnitPS6; +TEXTURE_LAYOUT(9, 1, 6) uniform sampler2D textureUnitPS9; +TEXTURE_LAYOUT(12, 1, 7) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(13, 1, 8) uniform sampler2D textureUnitPS13; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem5; +layout(location = 3) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +#ifdef VULKAN +layout(set = 1, binding = 9) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem5); +R3i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R6i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.zw)).xyzw); +R3i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.zw)).w); +R7i.xy = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R0i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.x)) + uf_blockPS1[14].x)); +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R5i.z)) + uf_blockPS1[14].x)); +R5i.x = floatBitsToInt((intBitsToFloat(R6i.x) * 2.0 + -(1.0))); +PS0i = R5i.x; +// 1 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R1i.y; +R8i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PV1i.z = R8i.z; +R124i.w = floatBitsToInt((intBitsToFloat(R6i.y) * 2.0 + -(1.0))); +R124i.z = floatBitsToInt((intBitsToFloat(R6i.z) * 2.0 + -(1.0))); +PS1i = R124i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), -(intBitsToFloat(R127i.w)))); +PS0i = R127i.y; +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(R127i.w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), -(intBitsToFloat(R127i.z)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(R127i.z)))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), -(intBitsToFloat(R127i.w)))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +backupReg0i = R127i.z; +R125i.x = floatBitsToInt(intBitsToFloat(R3i.z) * intBitsToFloat(0x437f0000)); +R125i.y = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R127i.y)); +R127i.z = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.w)); +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R126i.w; +// 5 +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R124i.w),intBitsToFloat(R124i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R124i.w),intBitsToFloat(R124i.z),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(R127i.x)); +PS1i = R127i.y; +// 6 +backupReg0i = R126i.z; +R127i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R126i.y)); +PV0i.x = R127i.x; +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R126i.w))); +PV0i.y = R8i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(R127i.w)); +PV0i.z = R126i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = R125i.w; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R126i.w))); +PS0i = R8i.x; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[44].x)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.w))); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PS1i = R2i.w; +// 8 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[44].y) + intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[43].x)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R126i.w))); +R126i.w = floatBitsToInt(-(intBitsToFloat(R8i.z)) * intBitsToFloat(0x3d4ccccd)); +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x))); +PS0i = R0i.x; +// 9 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.y))); +R0i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R125i.y)) + intBitsToFloat(R127i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS6[45].x)); +R5i.w = 0x3f800000; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R127i.z)) + intBitsToFloat(R125i.z))); +PS1i = R0i.z; +// 10 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[45].y) + intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), -(intBitsToFloat(PS1i)))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),uf_blockPS6[44].z) + intBitsToFloat(backupReg0i))); +R9i.x = 0; +PS0i = R9i.x; +// 11 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg1i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),intBitsToFloat(PV0i.y),-0.0),vec4(-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(backupReg1i)),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R0i.w = tempi.x; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),uf_blockPS6[43].z) + intBitsToFloat(R126i.x))); +PS1i = R125i.w; +// 12 +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),uf_blockPS6[45].z) + intBitsToFloat(R127i.x))); +R10i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(R127i.w)); +R9i.w = R7i.x; +R9i.w = clampFI32(R9i.w); +PS0i = int(intBitsToFloat(R125i.x)); +// 13 +backupReg0i = R126i.w; +R10i.x = floatBitsToInt(uf_blockPS1[0].y); +R2i.y = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R126i.w))); +R2i.y = clampFI32(R2i.y); +R127i.z = PS0i & 0x0000001c; +R126i.w = PS0i & 0x00000002; +R7i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(backupReg0i))); +R7i.w = clampFI32(R7i.w); +PS1i = R7i.w; +// 14 +R9i.y = floatBitsToInt(uf_blockPS1[1].y); +R11i.z = floatBitsToInt(uf_blockPS1[2].y); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(R124i.x))); +// 15 +R11i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R125i.w)); +R10i.y = R10i.z; +R12i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R125i.y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R2i.w)); +R3i.z = floatBitsToInt(tempResultf); +PS0i = R3i.z; +// 17 +PS1i = floatBitsToInt(float(R127i.z)); +// 18 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3d124925)); +PS0i = floatBitsToInt(float(R126i.w)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 19 +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PS0i))) + intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R0i.w)); +R4i.z = floatBitsToInt(tempResultf); +PS1i = R4i.z; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R12i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PV0i.x = R12i.x; +R11i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +PV0i.y = R11i.y; +R127i.z = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R124i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +R1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PV1i.z = R1i.z; +R0i.w = 0; +PV1i.w = R0i.w; +R3i.x = PV0i.x; +PS1i = R3i.x; +// 2 +backupReg0i = R2i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV1i.z))); +R2i.y = PV1i.z; +PV0i.y = R2i.y; +R6i.z = 0; +PV0i.z = R6i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), -(intBitsToFloat(PV1i.w)))); +R7i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R127i.z)); +R7i.z = clampFI32(R7i.z); +PS0i = R7i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.z),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R11i.y)) + intBitsToFloat(PV0i.x))); +PS1i = R122i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R3i.y),intBitsToFloat(R2i.z),intBitsToFloat(R126i.w)),vec4(-(intBitsToFloat(R12i.x)),-(intBitsToFloat(R11i.y)),-(intBitsToFloat(R1i.z)),1.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = tempi.x; +R8i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R12i.x)) + intBitsToFloat(PS1i))); +PS0i = R8i.w; +// 5 +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R3i.z))); +// 7 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R124i.w))); +// 8 +predResult = (1.0 > intBitsToFloat(R7i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = ((-(intBitsToFloat(R8i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.x) * 1.5); +R127i.z = ((-(intBitsToFloat(R8i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.y) * 1.5); +PS0i = floatBitsToInt(intBitsToFloat(R2i.z) * 1.5); +// 1 +backupReg0i = R0i.w; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y))); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(R4i.z)) + intBitsToFloat(PS0i))); +PV1i.z = R2i.z; +PV1i.w = PV0i.x & int(1); +PS1i = ((intBitsToFloat(0x3eb33333) > intBitsToFloat(backupReg0i))?int(0xFFFFFFFF):int(0x0)); +// 2 +R3i.x = floatBitsToInt((intBitsToFloat(R5i.z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +R3i.y = PV1i.w - R127i.z; +PV0i.y = R3i.y; +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS1[17].y) + 1.0)); +R3i.w = ((PS1i == 0)?(0x3f800000):(0)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +// 3 +PV1i.x = PV0i.y << 0x00000002; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 4 +R0i.x = PV1i.x + 0x0000002d; +R0i.y = PV1i.x + 0x0000002b; +R0i.z = PV1i.x + 0x0000002c; +R0i.w = PV1i.x + 0x0000002a; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(PS1i))); +PS0i = R122i.x; +// 5 +tempResultf = 1.0 / sqrt(intBitsToFloat(PS0i)); +R2i.w = floatBitsToInt(tempResultf); +PS1i = R2i.w; +} +if( activeMaskStackC[2] == true ) { +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R2i.w))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R2i.w))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +PV0i.z = R127i.z; +PS0i = floatBitsToInt(float(R3i.y)); +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R11i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.z = floatBitsToInt(roundEven(intBitsToFloat(PS0i))); +PS1i = R2i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R11i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +PV0i.w = R123i.w; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3b449ba7)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.w))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3b449ba7)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3b449ba7)); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.z))); +// 5 +backupReg0i = R127i.z; +backupReg1i = R127i.w; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R8i.z))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.w = R127i.w; +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R5i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R6i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R4i.x))); +// 7 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R0i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.x)); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R126i.w; +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R2i.x; +// 12 +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R126i.w))); +R2i.w = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV1i.z)); +R2i.w = clampFI32(R2i.w); +} +if( activeMaskStackC[2] == true ) { +R2i.y = floatBitsToInt(textureShadow_1(textureUnitPS6, vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0); +// 1 +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R7i.w)) + intBitsToFloat(R2i.y))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R11i.x) * intBitsToFloat(0x3a83126f)); +R0i.y = floatBitsToInt(intBitsToFloat(R12i.z) * intBitsToFloat(0x3a83126f)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R8i.w) + -(intBitsToFloat(R7i.x))); +R1i.x = floatBitsToInt((intBitsToFloat(R11i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +PS0i = R1i.x; +// 1 +R127i.x = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R1i.z = floatBitsToInt((intBitsToFloat(R12i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R0i.w = 0x3f800000; +R3i.w = floatBitsToInt(-(intBitsToFloat(R8i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = R3i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R7i.x))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R4i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R7i.y) + 1.0)); +tempResultf = log2(intBitsToFloat(PV1i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(max(-(intBitsToFloat(PV0i.y)), intBitsToFloat(0xbf7d70a4))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS0i))); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x40200001)); +R127i.w = clampFI32(R127i.w); +PS1i = R127i.w; +// 4 +R5i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R5i.x = clampFI32(R5i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd)); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((-(intBitsToFloat(R8i.z)) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + uf_blockPS6[27].w)/2.0); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R127i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(0xbe593484))); +PV0i.y = R123i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.5); +R2i.w = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV1i.y))); +PV0i.w = R2i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(R8i.y))); +R0i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +R126i.x = floatBitsToInt(exp2(intBitsToFloat(R126i.z))); +PS1i = R126i.x; +// 8 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.y),intBitsToFloat(R12i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + 1.0)); +PS0i = R2i.x; +// 9 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.y),intBitsToFloat(R12i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R127i.z; +// 10 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R10i.y),intBitsToFloat(R12i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R3i.x; +// 11 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R9i.z)) + intBitsToFloat(R127i.y))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.z))); +R0i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(R126i.x))) + uf_blockPS6[27].z)); +R6i.x = floatBitsToInt(exp2(intBitsToFloat(R127i.x))); +PS1i = R6i.x; +} +if( activeMaskStackC[1] == true ) { +R1i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); +R1i.xyz = floatBitsToInt(textureLod(textureUnitPS13, intBitsToFloat(R1i.xz),0.0).xyz); +R2i.xyz = floatBitsToInt(texture(textureUnitPS9, intBitsToFloat(R2i.xz)).xyz); +R3i.x = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R3i.xy),intBitsToFloat(R3i.w)).x); +} +// export +passPixelColor2 = vec4(intBitsToFloat(R9i.x), intBitsToFloat(R9i.x), intBitsToFloat(R9i.x), intBitsToFloat(R9i.x)); +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R8i.x)) + intBitsToFloat(R4i.x))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R1i.w) * 2.0 + -(1.0))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(R4i.w))); +PV0i.z = R126i.z; +R8i.w = 0; +R7i.w = 0x3f800000; +PS0i = R7i.w; +// 1 +backupReg0i = R3i.x; +R3i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x41c80000) + intBitsToFloat(R10i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R9i.w)) + intBitsToFloat(R2i.w))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + uf_blockPS10[1].z); +R127i.w = clampFI32(R127i.w); +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +backupReg0i = R2i.x; +backupReg1i = R2i.y; +backupReg2i = R2i.z; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.y))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS1i))); +tempResultf = log2(intBitsToFloat(R5i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), uf_blockPS10[3].z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), uf_blockPS6[42].z)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),uf_blockPS6[42].y) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), uf_blockPS6[16].w)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.x)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 6 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockPS6[30].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),uf_blockPS6[42].x) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 7 +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R4i.w))); +PV1i.y = R3i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +// 8 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +PV0i.x = R127i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.z))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R126i.z))); +PS0i = R2i.w; +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + -(intBitsToFloat(PV0i.x))); +// 10 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R7i.z)) + intBitsToFloat(R127i.x))); +PV0i.z = R123i.z; +// 11 +R8i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + uf_blockPS10[1].y); +R8i.x = clampFI32(R8i.x); +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.w = floatBitsToInt(-(intBitsToFloat(R3i.x)) + uf_blockPS6[52].x); +// 1 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.z = clampFI32(R123i.z); +PV1i.z = R123i.z; +// 2 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockPS6[13].w)); +// 3 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R4i.w))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R1i.y)) + intBitsToFloat(R1i.y))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.y))); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.x))); +R8i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PS1i = R8i.z; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +// 8 +R7i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R7i.x; +R7i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.y))); +PV0i.y = R7i.y; +R7i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = R7i.z; +// 9 +R1i.xyz = ivec3(PV0i.x,PV0i.y,PV0i.z); +R1i.w = R7i.w; +// 10 +R0i.xyz = ivec3(R8i.x,R8i.y,R8i.z); +R0i.w = R8i.w; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/!Override/IntelShadows/88133ee405eaae28_000003c000009269_ps.txt b/src/BreathOfTheWild/!Override/IntelShadows/88133ee405eaae28_000003c000009269_ps.txt new file mode 100644 index 00000000..3c70ffe8 --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/88133ee405eaae28_000003c000009269_ps.txt @@ -0,0 +1,797 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader ffe0e8c84f6e8da9 +UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArray textureUnitPS8; +TEXTURE_LAYOUT(15, 1, 5) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_5(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.z = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.zw)).x); +R6i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).xw); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.z)) + uf_blockPS1[14].x)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.x)) + uf_blockPS1[14].x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0))); +PS0i = R127i.x; +// 1 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 2.0 + -(1.0))); +PS1i = R125i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R127i.y)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R127i.y)))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.z)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.z)))); +PS0i = R126i.z; +// 3 +R125i.x = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R124i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.x)); +R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.w)); +PS1i = R126i.y; +// 4 +backupReg0i = R126i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R126i.x = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(backupReg0i)); +PS0i = R126i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +R126i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R127i.y)); +PS1i = R126i.w; +// 6 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[43].x)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R126i.x))); +R125i.y = floatBitsToInt(sqrt(intBitsToFloat(backupReg0i))); +PS0i = R125i.y; +// 7 +backupReg0i = R127i.z; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[45].x)); +R124i.y = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000)); +R127i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0))); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R125i.z; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS1[18].y, uf_blockPS1[18].z)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PS0i = R9i.z; +// 9 +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R126i.z))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R125i.x)) + intBitsToFloat(R127i.y))); +R126i.z = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[45].y) + intBitsToFloat(R124i.x))); +PV1i.w = R123i.w; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.z))); +PS1i = R126i.w; +// 10 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(R4i.w))); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.w))); +PV0i.z = R1i.z; +R125i.w = R8i.x; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.z = R7i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +PS0i = R124i.z; +// 11 +R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R2i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R2i.x = clampFI32(R2i.x); +PS1i = R2i.x; +// 12 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), -(intBitsToFloat(R126i.z)))); +PV0i.x = R125i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0xbb6fe5d7)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3ca30589)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3ca30589)); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0xbb6fe5d7)); +PS0i = R126i.z; +// 13 +R10i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R126i.y)); +R3i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y)); +R1i.w = 0x3f800000; +R4i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.z))); +PS1i = R4i.x; +// 14 +R3i.x = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R126i.z))); +R2i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R127i.y))); +R11i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R126i.x)); +R10i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R10i.w = clampFI32(R10i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y)); +// 15 +backupReg0i = R124i.y; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PS0i))); +PV1i.y = R124i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(backupReg0i)); +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = PS1i & int(1); +// 17 +R11i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.x))); +R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.y))); +R11i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R11i.w = clampFI32(R11i.w); +R8i.y = ((PS0i == 0)?(0):(0x3f800000)); +PS1i = R8i.y; +// 18 +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +R2i.w = floatBitsToInt(tempResultf); +PS0i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0); +R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R9i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS0i = R9i.x; +// 1 +R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +R12i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x)); +R12i.w = clampFI32(R12i.w); +R7i.w = 0; +PS1i = R7i.w; +// 2 +predResult = (1.0 > intBitsToFloat(R10i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R12i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R4i.x)); +R12i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R3i.y)); +R13i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R4i.x))); +PS0i = R13i.x; +// 1 +R14i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R3i.x)); +R13i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R3i.y))); +R14i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R2i.y)); +PS1i = R14i.y; +// 2 +R15i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R3i.x))); +R15i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R2i.y))); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R7i.y) * 1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.x) * 1.5); +PV0i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R9i.z) * 1.5); +// 1 +backupReg0i = R1i.x; +backupReg1i = R1i.z; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = PV0i.w & int(1); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(R2i.z) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R2i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R2i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R2i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R13i.w = PV1i.y - R127i.x; +PV0i.w = R13i.w; +PS0i = floatBitsToInt(uf_blockPS6[53].y * uf_fragCoordScale.y); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 3 +R6i.x = floatBitsToInt(uf_blockPS6[53].x * uf_fragCoordScale.x); +R6i.x = floatBitsToInt(intBitsToFloat(R6i.x) / 2.0); +PV1i.y = PV0i.w << 0x00000002; +R6i.z = floatBitsToInt(-(intBitsToFloat(PS0i))); +R2i.w = PS0i; +PS1i = floatBitsToInt(float(PV0i.w)); +// 4 +R0i.x = PV1i.y + 0x0000002b; +R0i.y = PV1i.y + 0x0000002d; +R0i.z = PV1i.y + 0x0000002a; +R0i.w = PV1i.y + 0x0000002c; +R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R7i.z; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.y = tempi.x; +R8i.z = PS0i; +PS1i = R8i.z; +} +if( activeMaskStackC[2] == true ) { +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.z)),vec4(-(intBitsToFloat(R9i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R10i.z)),-(intBitsToFloat(R7i.w))))); +R126i.x = clampFI32(R126i.x); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.y)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R6i.x))); +R1i.z = R7i.z; +PS1i = R1i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.z = R7i.z; +PS0i = R9i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R2i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R2i.z))); +// 5 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV0i.y))); +// 6 +backupReg0i = R6i.y; +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R7i.x))); +PV0i.x = R16i.x; +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R12i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R4i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R5i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.w)); +R127i.z = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +PS1i = R126i.z; +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +// 13 +R7i.x = floatBitsToInt((uf_blockPS6[53].x * uf_fragCoordScale.x * 0.5 + intBitsToFloat(PV0i.z))); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R127i.y = clampFI32(R127i.y); +PV1i.y = R127i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R126i.z))); +PV1i.w = R127i.w; +R8i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R6i.x)); +PS1i = R8i.x; +// 14 +R1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.w)); +R7i.y = floatBitsToInt((uf_blockPS6[53].y * uf_fragCoordScale.y * 0.5 + intBitsToFloat(PV1i.w))); +R7i.w = PV1i.y; +R8i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R6i.z)); +PS0i = R8i.y; +// 15 +R9i.x = floatBitsToInt((-(uf_blockPS6[53].x) * uf_fragCoordScale.x * 0.5 + intBitsToFloat(R127i.z))); +R1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R2i.w)); +R8i.w = R127i.y; +R1i.w = R127i.y; +PS1i = R1i.w; +// 16 +R9i.y = floatBitsToInt((-(uf_blockPS6[53].y) * uf_fragCoordScale.y * 0.5 + intBitsToFloat(R127i.w))); +R9i.w = R127i.y; +} +if( activeMaskStackC[2] == true ) { +R7i.z = floatBitsToInt(textureShadow_1(textureUnitPS8, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +R8i.y = floatBitsToInt(textureShadow_2(textureUnitPS8, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R1i.x = floatBitsToInt(textureShadow_3(textureUnitPS8, vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)))); +R9i.w = floatBitsToInt(textureShadow_4(textureUnitPS8, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(R8i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 1 +R123i.z = floatBitsToInt((intBitsToFloat(R1i.x) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 2 +R5i.w = floatBitsToInt((intBitsToFloat(R9i.w) * 0.5 + intBitsToFloat(PV1i.z))/2.0); +PV0i.w = R5i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R0i.y = ((R13i.w > 0)?(PV1i.x):(0)); +// 5 +predResult = (R0i.y != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R13i.w; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R4i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R4i.z; +} +if( activeMaskStackC[3] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R2i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R1i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R3i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R4i.y; +// 6 +R4i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R4i.w = clampFI32(R4i.w); +} +if( activeMaskStackC[3] == true ) { +R4i.z = floatBitsToInt(textureShadow_5(textureUnitPS8, vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R5i.w; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R4i.z))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R14i.xy)).x); +R0i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R15i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R12i.xy)).x); +R1i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R13i.xy)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(0x3f7eb852)); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x41a00000)); +R124i.z = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0); +R127i.w = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x3f555555)); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(R0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f8ba8d6)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fbc4580)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.y)) + 1.0)); +R127i.x = clampFI32(R127i.x); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + 0.5)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.y)) + 0.5)); +R125i.z = clampFI32(R125i.z); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i)); +PV0i.w = R126i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.x)) + 1.0)); +R125i.w = clampFI32(R125i.w); +PS0i = R125i.w; +// 3 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + 0.5)); +R126i.x = clampFI32(R126i.x); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + 0.5)); +R124i.w = clampFI32(R124i.w); +PV1i.w = R124i.w; +R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R126i.z)) + 1.0)); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 4 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.x))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + 0.5)); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.w)) + 0.5)); +PV0i.w = R127i.w; +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + 1.0)); +R125i.y = clampFI32(R125i.y); +PS0i = R125i.y; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) + -(intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PS0i)) + 0.5)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.z) + -(intBitsToFloat(PV0i.w))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R0i.w)) + 0.5)); +PV1i.w = R126i.w; +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R10i.w)) + intBitsToFloat(R5i.w))); +PS1i = R3i.w; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e35e743)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e35e743)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 9 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0xbedd476b)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c00000)); +PV1i.x = clampFI32(PV1i.x); +// 12 +R1i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R3i.w = R1i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R10i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R11i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R10i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R11i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.z = R1i.w; +PS0i = R2i.z; +// 1 +R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R11i.w))) + intBitsToFloat(R1i.y))); +PS0i = R2i.y; +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R12i.w)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +// 5 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockPS10[3].z) + uf_blockPS10[1].y)); +R2i.x = clampFI32(R2i.x); +} +// export +passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/!Override/IntelShadows/9c0b7031078fba88_0000007800001269_ps.txt b/src/BreathOfTheWild/!Override/IntelShadows/9c0b7031078fba88_0000007800001269_ps.txt new file mode 100644 index 00000000..647e9e27 --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/9c0b7031078fba88_0000007800001269_ps.txt @@ -0,0 +1,590 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader b8a18eeb20759bfd +UNIFORM_BUFFER_LAYOUT(33, 1, 6) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 7) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 8) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(5, 1, 2) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(7, 1, 3) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(12, 1, 4) uniform sampler2D textureUnitPS12; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 5) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +float textureShadow_1(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_2(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_3(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_4(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +float textureShadow_5(sampler2DArray s, vec4 coord) { +vec4 v; +vec2 texSize = vec2(textureSize(s,0).xy); +vec2 texSizeR = vec2(1.0) / texSize; +vec2 texCoordFract = mod(coord.xy,texSizeR); +vec2 texCoordBase = coord.xy - texCoordFract + texSizeR/2.0; +texCoordFract /= texSizeR; +v.x = texture(s, vec3(texCoordBase+vec2(0.0,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.y = texture(s, vec3(texCoordBase+vec2(texSizeR.x,0.0), coord.z)).x >= coord.w?1.0:0.0; +v.z = texture(s, vec3(texCoordBase+vec2(0.0,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +v.w = texture(s, vec3(texCoordBase+vec2(texSizeR.x,texSizeR.y), coord.z)).x >= coord.w?1.0:0.0; +float r = mix(mix(v.x, v.y, texCoordFract.x) , mix(v.z, v.w, texCoordFract.x) , texCoordFract.y); +return r; +} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R4i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R4i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).x); +R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).w); +} +if( activeMaskStackC[1] == true ) { +// 0 +R127i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R4i.x)) + uf_blockPS1[14].x)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R4i.w)) + uf_blockPS1[14].x)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R4i.z)) + uf_blockPS1[14].x)); +PV0i.w = R127i.w; +R124i.x = floatBitsToInt((intBitsToFloat(R5i.x) * 2.0 + -(1.0))); +PS0i = R124i.x; +// 1 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +R0i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), -(intBitsToFloat(PV0i.w)))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), -(intBitsToFloat(PV0i.w)))); +PS1i = R127i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.x)))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.x)))); +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.w)); +PS0i = R126i.x; +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.w)); +PV1i.x = R127i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.z)); +PV1i.y = R126i.y; +R127i.zwy = floatBitsToInt(vec3(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R0i.z)),-(intBitsToFloat(R0i.z))) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.z))); +PV1i.z = R127i.z; +PV1i.w = R127i.w; +PS1i = R127i.y; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +R125i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R5i.z) * 2.0 + -(1.0))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.x))); +PS0i = R125i.x; +// 5 +backupReg0i = R127i.y; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(0x437f0000)); +R126i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x437f0000)); +PV1i.w = floatBitsToInt(uf_blockPS6[53].z * intBitsToFloat(0x3d4ccccd)); +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.x))); +PS1i = R2i.y; +// 6 +R12i.x = floatBitsToInt((-(intBitsToFloat(R0i.z)) * intBitsToFloat(0x3d4ccccd) + -(intBitsToFloat(PV1i.w)))); +R12i.x = clampFI32(R12i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R125i.z))); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(R125i.x))); +R0i.w = 0x3f800000; +R2i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.z)), uf_blockPS1[17].y)); +PS0i = R2i.z; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R125i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +PS1i = int(intBitsToFloat(R127i.y)); +// 8 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R2i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(R1i.z)),-0.0),vec4(-(intBitsToFloat(R2i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(R1i.z)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = PS1i & int(1); +// 9 +R5i.z = ((PS0i == 0)?(0):(0x3f800000)); +PS1i = int(intBitsToFloat(R126i.z)); +// 10 +R125i.x = PS1i & 0x00000002; +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.w)); +PS0i = floatBitsToInt(tempResultf); +// 11 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i))); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y)); +R1i.w = floatBitsToInt(tempResultf); +PS1i = R1i.w; +// 12 +R4i.w = floatBitsToInt(float(R125i.x)); +R4i.w = floatBitsToInt(intBitsToFloat(R4i.w) / 2.0); +PS0i = R4i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R5i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +// 1 +R4i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +R9i.w = 0; +// 2 +predResult = (1.0 > intBitsToFloat(R12i.x)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R9i.x) * 1.5); +PV0i.y = floatBitsToInt(intBitsToFloat(R10i.y) * 1.5); +R127i.z = ((-(intBitsToFloat(R0i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = ((-(intBitsToFloat(R0i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R10i.z) * 1.5); +// 1 +backupReg0i = R2i.x; +backupReg1i = R2i.z; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = PV0i.w & int(1); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.y))); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),intBitsToFloat(R1i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(backupReg1i) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R4i.x = PV1i.y - R127i.z; +PV0i.x = R4i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.x))); +R3i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R3i.w = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R4i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +PS0i = R4i.y; +// 3 +backupReg0i = R4i.w; +backupReg1i = R0i.z; +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.y))); +R3i.y = floatBitsToInt(uf_blockPS6[53].y); +R3i.y = floatBitsToInt(intBitsToFloat(R3i.y) / 2.0); +PV1i.z = PV0i.x << 0x00000002; +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg1i))); +R127i.y = floatBitsToInt(float(PV0i.x)); +PS1i = R127i.y; +// 4 +R1i.x = PV1i.z + 0x0000002b; +R1i.y = PV1i.z + 0x0000002a; +R1i.z = PV1i.z + 0x0000002d; +R1i.w = PV1i.z + 0x0000002c; +R5i.w = floatBitsToInt(uf_blockPS6[53].x); +R5i.w = floatBitsToInt(intBitsToFloat(R5i.w) / 2.0); +PS0i = R5i.w; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.y = tempi.x; +R9i.z = floatBitsToInt(roundEven(intBitsToFloat(R127i.y))); +PS1i = R9i.z; +} +if( activeMaskStackC[2] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockPS1[R1i.z].xyzw); +R7i.xyzw = floatBitsToInt(uf_blockPS1[R1i.w].xyzw); +R8i.xyzw = floatBitsToInt(uf_blockPS1[R1i.y].xyzw); +R1i.xyzw = floatBitsToInt(uf_blockPS1[R1i.x].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.z)),vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R4i.z)),-(intBitsToFloat(R9i.w))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R2i.y)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R3i.y))); +R2i.z = R9i.z; +PS1i = R2i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R9i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(R5i.w))); +PS0i = R125i.y; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R126i.x = R3i.y; +PS1i = R126i.x; +// 4 +backupReg0i = R126i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R4i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(backupReg0i))); +R10i.z = R9i.z; +PS0i = R10i.z; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV0i.w))); +R11i.z = R9i.z; +// 6 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R5i.y))); +PV0i.x = R5i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(R3i.x))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R4i.w))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R7i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R6i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R1i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R126i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +backupReg0i = R0i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R8i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R7i.z)) + intBitsToFloat(R127i.y))); +PV0i.w = R123i.w; +// 11 +backupReg0i = R0i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV0i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R1i.z)) + intBitsToFloat(R126i.y))); +PV1i.w = R123i.w; +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.w)); +// 13 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.y))); +PV1i.w = R126i.w; +R9i.x = floatBitsToInt((uf_blockPS6[53].x * 0.5 + intBitsToFloat(PV0i.y))); +PS1i = R9i.x; +// 14 +R2i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R5i.w)); +R9i.y = floatBitsToInt((uf_blockPS6[53].y * 0.5 + intBitsToFloat(PV1i.w))); +R9i.w = PV1i.x; +R2i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.w)); +PS0i = R2i.y; +// 15 +R10i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R125i.y)); +R10i.y = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R126i.x)); +R2i.w = R127i.x; +R10i.w = R127i.x; +PS1i = R10i.w; +// 16 +R11i.x = floatBitsToInt((-(uf_blockPS6[53].x) * 0.5 + intBitsToFloat(R127i.y))); +R11i.y = floatBitsToInt((-(uf_blockPS6[53].y) * 0.5 + intBitsToFloat(R126i.w))); +R11i.w = R127i.x; +} +if( activeMaskStackC[2] == true ) { +R9i.y = floatBitsToInt(textureShadow_1(textureUnitPS7, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +R2i.x = floatBitsToInt(textureShadow_2(textureUnitPS7, vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)))); +R10i.w = floatBitsToInt(textureShadow_3(textureUnitPS7, vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.w)))); +R11i.z = floatBitsToInt(textureShadow_4(textureUnitPS7, vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z),intBitsToFloat(R11i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R2i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R10i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +// 2 +R0i.w = floatBitsToInt((intBitsToFloat(R11i.z) * 0.5 + intBitsToFloat(PV1i.y))/2.0); +PV0i.w = R0i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R1i.z = ((R4i.x > 0)?(PV1i.x):(0)); +// 5 +predResult = (R1i.z != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R4i.x; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R1i.x = PV1i.w + 0x0000002c; +R1i.y = PV1i.w + 0x0000002a; +R1i.z = PV1i.w + 0x0000002b; +R1i.w = PV1i.w + 0x0000002d; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R1i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R1i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R1i.y].xyzw); +R1i.xyzw = floatBitsToInt(uf_blockPS1[R1i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R3i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R2i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R4i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R1i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R5i.y; +// 6 +R5i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.y = floatBitsToInt(textureShadow_5(textureUnitPS7, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.w; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.y))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R0i.w)) + 1.0); +// 1 +backupReg0i = R0i.w; +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R12i.x)) + intBitsToFloat(backupReg0i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +R0i.y = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R0i.xy)).y); +} +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),uf_blockPS10[3].z) + uf_blockPS10[1].y)); +R0i.x = clampFI32(R0i.x); +R0i.z = 0x3f800000; +} +// export +passPixelColor5 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.z)); +} diff --git a/src/BreathOfTheWild/!Override/IntelShadows/rules.txt b/src/BreathOfTheWild/!Override/IntelShadows/rules.txt new file mode 100644 index 00000000..6ee305d1 --- /dev/null +++ b/src/BreathOfTheWild/!Override/IntelShadows/rules.txt @@ -0,0 +1,8 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Shadows for Intel GPUs (Vulkan) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/Shadows for Intel GPUs (Vulkan)" +description = Reduces the severity of the bugged shadows on Intel integrated GPUs when using Vulkan.||Made by ethrillo and Cypher. +vendorFilter = intel +rendererFilter = vulkan +version = 6 diff --git a/src/BreathOfTheWild/Cheats/ArrowDrawSpeed/patch_ArrowDrawSpeed.asm b/src/BreathOfTheWild/Cheats/ArrowDrawSpeed/patch_ArrowDrawSpeed.asm new file mode 100644 index 00000000..66c7a5af --- /dev/null +++ b/src/BreathOfTheWild/Cheats/ArrowDrawSpeed/patch_ArrowDrawSpeed.asm @@ -0,0 +1,17 @@ +[BotW_ArrowDrawSpeed_V208] +moduleMatches = 0x6267BFD0 + +0x100C0150 = drawSpeedValue: +0x100C0150 = .float $multiplier + +0x024A0164 = lfs f0, drawSpeedValue@l(r10) +0x024A019C = lfs f0, drawSpeedValue@l(r10) + + +[BotW_ArrowDrawSpeed_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x100c5040 = float3: + +0x0249FDC0 = lfs f0, float3@l(r10) +0x0249FDF8 = lfs f0, float3@l(r10) diff --git a/src/BreathOfTheWild/Cheats/ArrowDrawSpeed/rules.txt b/src/BreathOfTheWild/Cheats/ArrowDrawSpeed/rules.txt new file mode 100644 index 00000000..974ab6da --- /dev/null +++ b/src/BreathOfTheWild/Cheats/ArrowDrawSpeed/rules.txt @@ -0,0 +1,59 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Arrow Draw Speed +path = "The Legend of Zelda: Breath of the Wild/Cheats/Arrow Draw Speed" +description = Changes the speed that arrows are drawn at.||Made by C313571N and Xalphenos. +version = 6 + +[Default] +$multiplier = 1 + +[Preset] +category = Draw Speed +name = Disable Bow +$multiplier = 0.0 + +[Preset] +category = Draw Speed +name = 0.5x +$multiplier = 0.5 + +[Preset] +category = Draw Speed +name = 0.75x +$multiplier = 0.75 + +[Preset] +category = Draw Speed +default = 1 +name = 1x (Default) + +[Preset] +category = Draw Speed +name = 1.5x +$multiplier = 1.5 + +[Preset] +category = Draw Speed +name = 2x +$multiplier = 2.0 + +[Preset] +category = Draw Speed +name = 3x +$multiplier = 3.0 + +[Preset] +category = Draw Speed +name = 10x +$multiplier = 10.0 + +[Preset] +category = Draw Speed +name = 20x +$multiplier = 20.0 + +[Preset] +category = Draw Speed +name = 40x +$multiplier = 40.0 \ No newline at end of file diff --git a/src/BreathOfTheWild/Cheats/Durability/patch_Durability.asm b/src/BreathOfTheWild/Cheats/Durability/patch_Durability.asm new file mode 100644 index 00000000..f4f4695b --- /dev/null +++ b/src/BreathOfTheWild/Cheats/Durability/patch_Durability.asm @@ -0,0 +1,10 @@ +[BotW_Durability_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + +_modifierValue: +.float $multiplier + +0x024ACBF0 = lis r3, _modifierValue@ha +0x024ACBF4 = lfs f31, _modifierValue@l(r3) diff --git a/src/BreathOfTheWild/Cheats/Durability/rules.txt b/src/BreathOfTheWild/Cheats/Durability/rules.txt new file mode 100644 index 00000000..f58d8d13 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/Durability/rules.txt @@ -0,0 +1,54 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Durability +path = "The Legend of Zelda: Breath of the Wild/Cheats/Durability" +description = Modifies the weapons, bows and shields durability (except burn damage and throwing weapons).||Made by Nopt. +version = 6 + +[Default] +$multiplier = 1 + +[Preset] +category = Durability Modifier +name = One Hit +$multiplier = 1000 + +[Preset] +category = Durability Modifier +name = x1 (Default) +default = 1 + +[Preset] +category = Durability Modifier +name = x1.5 +$multiplier = 1/1.5 + +[Preset] +category = Durability Modifier +name = x2 +$multiplier = 1/2 + +[Preset] +category = Durability Modifier +name = x3 +$multiplier = 1/3 + +[Preset] +category = Durability Modifier +name = x4 +$multiplier = 1/4 + +[Preset] +category = Durability Modifier +name = x5 +$multiplier = 1/5 + +[Preset] +category = Durability Modifier +name = x10 +$multiplier = 1/10 + +[Preset] +category = Durability Modifier +name = Unbreakable +$multiplier = 0 diff --git a/src/BreathOfTheWild/Cheats/InfiniteAmiibo/patch_InfiniteAmiibo.asm b/src/BreathOfTheWild/Cheats/InfiniteAmiibo/patch_InfiniteAmiibo.asm new file mode 100644 index 00000000..fe6a74af --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteAmiibo/patch_InfiniteAmiibo.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteAmiibo_V208] +moduleMatches = 0x6267BFD0 + +0x029E949C = mr r29, r11 + + +[BotW_InfiniteAmiibo_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x029E90F0 = mr r29, r11 diff --git a/src/BreathOfTheWild/Cheats/InfiniteAmiibo/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteAmiibo/rules.txt new file mode 100644 index 00000000..7a1d7a6b --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteAmiibo/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Amiibo +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Amiibo" +description = Removes the limit that only allows you to scan each amiibo per day.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteArrows/patch_InfiniteArrows.asm b/src/BreathOfTheWild/Cheats/InfiniteArrows/patch_InfiniteArrows.asm new file mode 100644 index 00000000..65a51cd3 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteArrows/patch_InfiniteArrows.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteArrows_V208] +moduleMatches = 0x6267BFD0 + +0x02EB6758 = nop + + +[BotW_InfiniteArrows_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02EB61BC = nop diff --git a/src/BreathOfTheWild/Cheats/InfiniteArrows/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteArrows/rules.txt new file mode 100644 index 00000000..a93aefc3 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteArrows/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Arrows +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Arrows" +description = Gives you infinite amounts of arrows.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteDaruk/patch_InfiniteDaruk.asm b/src/BreathOfTheWild/Cheats/InfiniteDaruk/patch_InfiniteDaruk.asm new file mode 100644 index 00000000..b7dedc6d --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteDaruk/patch_InfiniteDaruk.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteDaruk_V208] +moduleMatches = 0x6267BFD0 + +0x02D74498 = nop + + +[BotW_InfiniteDaruk_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02D73EFC = nop diff --git a/src/BreathOfTheWild/Cheats/InfiniteDaruk/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteDaruk/rules.txt new file mode 100644 index 00000000..64aff7d9 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteDaruk/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Daruk's Protection +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Daruk's Protection" +description = Lets you use Daruk's protection without a time limit.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteHearts/patch_InfiniteHearts.asm b/src/BreathOfTheWild/Cheats/InfiniteHearts/patch_InfiniteHearts.asm new file mode 100644 index 00000000..4668dc50 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteHearts/patch_InfiniteHearts.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteHearts_V208] +moduleMatches = 0x6267BFD0 + +0x02D452A4 = nop + + +[BotW_InfiniteHearts_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02D44D44 = nop diff --git a/src/BreathOfTheWild/Cheats/InfiniteHearts/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteHearts/rules.txt new file mode 100644 index 00000000..470a3b65 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteHearts/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Hearts +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Hearts" +description = Prevents you from taking any damage. Doesn't increase the amount of hearts you have so it doesn't affect your save file.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteMipha/patch_InfiniteMipha.asm b/src/BreathOfTheWild/Cheats/InfiniteMipha/patch_InfiniteMipha.asm new file mode 100644 index 00000000..de4e3976 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteMipha/patch_InfiniteMipha.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteMipha_V208] +moduleMatches = 0x6267BFD0 + +0x02D91DBC = fmuls f0, f13, f12 + + +[BotW_InfiniteMipha_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02D91820 = fmuls f0, f13, f12 diff --git a/src/BreathOfTheWild/Cheats/InfiniteMipha/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteMipha/rules.txt new file mode 100644 index 00000000..0b96e175 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteMipha/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Mipha's Grace +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Mipha's Grace" +description = Lets you use Mipha's Grace without a time limit.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteMotorcycleEnergy/patch_InfiniteMotorcycleEnergy.asm b/src/BreathOfTheWild/Cheats/InfiniteMotorcycleEnergy/patch_InfiniteMotorcycleEnergy.asm new file mode 100644 index 00000000..3a9e4f1f --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteMotorcycleEnergy/patch_InfiniteMotorcycleEnergy.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteMotorcycleEnergy_V208] +moduleMatches = 0x6267BFD0 + +0x020957DC = fmr f12, f0 + + +[BotW_InfiniteMotorcycleEnergy_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x0209583C = fmr f12, f0 diff --git a/src/BreathOfTheWild/Cheats/InfiniteMotorcycleEnergy/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteMotorcycleEnergy/rules.txt new file mode 100644 index 00000000..8aef979d --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteMotorcycleEnergy/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Motorcycle Energy +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Motorcycle Energy" +description = Gives you infinite energy for your motorcycle.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteRevali/patch_InfiniteRevali.asm b/src/BreathOfTheWild/Cheats/InfiniteRevali/patch_InfiniteRevali.asm new file mode 100644 index 00000000..58accf07 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteRevali/patch_InfiniteRevali.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteRevali_V208] +moduleMatches = 0x6267BFD0 + +0x02CE0328 = nop + + +[BotW_InfiniteRevali_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02CDFE0C = nop diff --git a/src/BreathOfTheWild/Cheats/InfiniteRevali/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteRevali/rules.txt new file mode 100644 index 00000000..8653d4f1 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteRevali/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Revali's Gale +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Revali's Gale" +description = Lets you use Revali's Gale without a time limit.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteStamina/patch_InfiniteStamina.asm b/src/BreathOfTheWild/Cheats/InfiniteStamina/patch_InfiniteStamina.asm new file mode 100644 index 00000000..76b87a65 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteStamina/patch_InfiniteStamina.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteStamina_V208] +moduleMatches = 0x6267BFD0 + +0x02D90CC0 = fmr f29, f1 + + +[BotW_InfiniteStamina_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02D90724 = fmr f29, f1 diff --git a/src/BreathOfTheWild/Cheats/InfiniteStamina/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteStamina/rules.txt new file mode 100644 index 00000000..d8c3f68d --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteStamina/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Stamina +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Stamina" +description = Gives you infinite stamina. Doesn't affect your save file.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/InfiniteUrbosa/patch_InfiniteUrbosa.asm b/src/BreathOfTheWild/Cheats/InfiniteUrbosa/patch_InfiniteUrbosa.asm new file mode 100644 index 00000000..6d159b5b --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteUrbosa/patch_InfiniteUrbosa.asm @@ -0,0 +1,10 @@ +[BotW_InfiniteUrbosa_V208] +moduleMatches = 0x6267BFD0 + +0x02D741C8 = nop + + +[BotW_InfiniteUrbosa_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +0x02D73C2C = nop diff --git a/src/BreathOfTheWild/Cheats/InfiniteUrbosa/rules.txt b/src/BreathOfTheWild/Cheats/InfiniteUrbosa/rules.txt new file mode 100644 index 00000000..8f99e886 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/InfiniteUrbosa/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Infinite Urbosa's Fury +path = "The Legend of Zelda: Breath of the Wild/Cheats/Infinite Urbosa's Fury" +description = Lets you use Urbosa's Fury without a time limit.||Made by C313571N and Xalphenos. +version = 6 diff --git a/src/BreathOfTheWild/Cheats/MotorcycleAllRegions/patch_MotorcycleAllRegions.asm b/src/BreathOfTheWild/Cheats/MotorcycleAllRegions/patch_MotorcycleAllRegions.asm new file mode 100644 index 00000000..f08394be --- /dev/null +++ b/src/BreathOfTheWild/Cheats/MotorcycleAllRegions/patch_MotorcycleAllRegions.asm @@ -0,0 +1,4 @@ +[BotW_MotorcycleAllRegions_V208] +moduleMatches = 0x6267BFD0 + +0x02A32A30 = li r3, 1 ; Spawn motorcycle anywhere, credits to Zeikken (converting to patches) and leoetlino (finding the value). diff --git a/src/BreathOfTheWild/Cheats/MotorcycleAllRegions/rules.txt b/src/BreathOfTheWild/Cheats/MotorcycleAllRegions/rules.txt new file mode 100644 index 00000000..828e3252 --- /dev/null +++ b/src/BreathOfTheWild/Cheats/MotorcycleAllRegions/rules.txt @@ -0,0 +1,6 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Spawn Motorcycle In All Regions +path = "The Legend of Zelda: Breath of the Wild/Cheats/Spawn Motorcycle In All Regions" +description = Allows you to spawn the motorcycle in all the regions (normally you can't in the Gerudo Desert and Eldin).||Made by Zeikken (porting) and leoetlino (original code). +version = 6 diff --git a/src/BreathOfTheWild/Enhancements/37040a485a29d54e_00000000000003c9_ps.txt b/src/BreathOfTheWild/Enhancements/37040a485a29d54e_00000000000003c9_ps.txt new file mode 100644 index 00000000..53964d07 --- /dev/null +++ b/src/BreathOfTheWild/Enhancements/37040a485a29d54e_00000000000003c9_ps.txt @@ -0,0 +1,1903 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader 37040a485a29d54e + +//########################################################## + +// Being below game update version 1.4.0 will give you double-vision with recent graphic packs. + +// Clarity GFX +// Credit to Jamie for main coding. +// Credit to Kiri coding & Reshade logic. +// Credit to Crementif for additional assistance. +// Credit to all other creators for their time in making alternative presets. + +// Shader dumped from Cemu 1.11.2 from BotW 1.4.0 +// Added Cemu 1.13.x Preset support +// v 2.3 Final + +//########################################################## + +#define Preset $preset + + // User Defined Preset 0 + // Bruz Preset 1 + // BSOD Gaming Preset 2 + // Jamie Preset 3 + // Contrasty Preset 4 + // The Complaining Gamer Preset 5 + // Filmic Preset Preset 6 + // CellHunter Preset 7 + // Serfrost Preset (Bright Display) 8 + // Serfrost Preset (Dim Display) 9 + // Serfrost Preset (Default) 10 + // ViskClarity Preset 11 + // Survival of the Wild Preset (Warmer) 12 + // Survival of the Wild Preset (Colder) 13 + +//########################################################## + +// THE WAY I'M TOGGLING THIS IS ***BAD*** + +#define disableClarity $disableClarity + +#if (disableClarity == 0) + +#if (Preset == 0) + +// User Defined, values to change are below. End before main presets. + +//########################################################## + +#define adjust_bloom 1 // 0: disable, 1: enable. + +//BloomFactor +const float bloomFactor = 0.020; // Default is 0.020 (rough estimate based on Switch) + +#define HDRpassing 0 // 0: disable, 1: enable. + +//Fake High Dynamic Range. +const float HDRPower = 1.00; // 0.0 to 8.0 Default 1.30. +const float radius1 = 1.00; // 0.0 to 8.0 Default 0.793 +const float radius2 = 0.80; // 0.0 to 8.0 Default 0.87 "Raising this seems to make the effect stronger and also brighter." + +#define lumapassing 0 // 0: disable, 1: enable. + +//LumaShapening +const float sharp_strength = 0.35; //[0.10 to 3.00] Strength of the sharpening Default is 0.65 +const float sharp_clamp = 0.85; //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035 + +//Advanced sharpening settings +const float offset_bias = 1.0; //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern. + +#define Tone_map 0 + + // 0: disable, -1 to 9: enable. + // -1: disable, loss of bright detail/color but keep [0,1] intact + // 0: (Wii U) BotW original + // Reshade ToneMap Option 1 + // linearToneMapping Option 2 + // simpleReinhardToneMapping Option 3 + // lumaBasedReinhardToneMapping Option 4 + // whitePreservingLumaBasedReinhardToneMapping Option 5 + // RomBinDaHouseToneMapping Option 6 + // filmicToneMapping Option 7 + // Uncharted2ToneMapping Option 8 + // ACES Filmic Option 9 + // Reshade ToneMap Controls / "Contrasty" Parameters + +const float Exposure = 1.17; // [0.0, 1.0+] Adjust exposure +const float Bleach = 0.4; // "More bleach means more contrasted and less colorful image" min -0.5 max 1.0 Default 0.0 +const float Gamma = 1.00; // "Adjust midtones. 1.000 is neutral. This setting does exactly the same as the one in Lift Gamma Gain, only with less control." +const float defog = 0.00; // Default is 0.0 //How much of the overall color you want removed form the values of FogColor. +vec3 FogColor = vec3(1.0, 1.0, 1.0); // Color you want to Add or Remove 0.25 would add .25 percent of that color 1.25 would remove .25 percent of the color." +const float sat = 0.000; // "Adjust saturation" min -1.0 max 1.0 Default 0.0 +const float crushContrast = 0.000; // 0.0 is neutral. Use small increments, loss of shadow detail + +#define post_process 0 + +//----------------"BotW original" vibrance adjust-------------// +const float satFactor = 0.25; // 0.18 is neutral. Experimental, adjust native saturation +//------------------------------------------------------------// + +#define blacknwhitepass 0 // 0: disable, 1: enable. +// Levels Control +const int BlackPoint = 16; // [0, 255] The black point is the new black - literally. Everything darker than this will become completely black +const int WhitePoint = 235; // [0, 255] The new white point. Everything brighter than this becomes completely white + +#define lggpass 0 // 0: disable, 1: enable. +//Lift Gamma Gain +vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust shadows for Red, Green and Blue. +vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust midtones for Red, Green and Blue +vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); // [0.000 to 2.000] Adjust highlights for Red, Green and Blue + // Note that a value of 1.0 is a neutral setting that leave the color unchanged. + +#define vibpass 0 // 0: disable, 1: enable. +//VibrancePass +const float Vibrance = 0.150; // Default [0.150] "Intelligently saturates (or desaturates if you use negative values) the pixels depending on their original saturation." +vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); // "A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others."; + +#define Tech 0 // 0: disable, 1: enable. +//Technicolor +const float Power = 4.0; // Min 0.0 Max 8.0 Default 4.0 +vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); +float Strength = 0.20; // Min 0.0 Max 1.0 Default 0.4 + +#define Techine 0 // 0: disable, 1: enable. +//Technicolor2 +const float Technicolor2_Red_Strength = 0.02; // "Higher means darker and more intense colors." Default 0.2 +const float Technicolor2_Green_Strength = 0.02; // "Higher means darker and more intense colors." Default 0.2 +const float Technicolor2_Blue_Strength = 0.02; // "Higher means darker and more intense colors." Default 0.2 +const float Technicolor2_Brightness = 1.00; // "Higher means brighter image." min 0.5 max 1.5 Default 1.0 +const float Technicolor2_Strength = 1.00; // [Default is 1.0] +const float Technicolor2_Saturation = 1.00; // Default is 1.0 min 0.0 max 1.5 "Additional saturation control since this effect tends to oversaturate the image." + +#define cmatrix 0 +//Color Matrix +vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); +vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); +vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); +float CM_Strength = 1.0; + +//Curves Contrast +#define CurvesPss 0 // 0: disable, 1: enable. +const float Contrast = 0.65; // Default 0.65 min -1.0 max = 1.0 "The amount of contrast you want." + +#define Filmicpass 0 // 0: disable, 1: enable. +//Filmic Pass +const float Filmic_Contrast = 1.0; // Default 1.0 min 0.5 max 2.0 +const float Filmic_Bleach = 0.0; // "More bleach means more contrasted and less colorful image" min -0.5 max 1.0 Default 0.0 +const float Saturation = -0.15; // min -1.0 max 1.0 Default -0.15 + +const float Filmic_Strength = 0.85; // "Strength of the color curve altering"; min 0.0 max 1.5 Default 0.85 +const float Fade = 0.4; // "Decreases contrast to imitate faded image" min 0.0 max 0.6 Default 0.4 +const float Linearization = 0.5; // min 0.5 max 2.0 Default 0.5 + +const float BaseCurve = 1.5; // min 0.0 max 2.0 Default 1.5 +const float BaseGamma = 1.00; // min 0.7 max 2.0 Default 1.0 +const float EffectGamma = 0.68; // min 0.0 max 2.0 Default 0.68 + +#define dpxpass 0 +//DPX +vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); +vec3 RGB_C = vec3(0.36, 0.36, 0.34); + +float DPX_Contrast = 0.1; +float DPX_Saturation = 3.0; +float Colorfulness = 2.5; + +float DPX_Strength = 0.20; + +//########################################################### + +//Do not edit under this line, unless explicitly desired. Keep backups! + +//########################################################### + +//Presets + +#elif (Preset == 1) //Bruz + + #define adjust_bloom 1 + const float bloomFactor = 0.30; + #define HDRpassing 0 + float HDRPower = 1.3; + float radius1 = 0.795; + float radius2 = 0.85; + #define lumapassing 0 + const float sharp_strength = 0.45; + const float sharp_clamp = 0.085; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.17; + const float Bleach = 0.4; + const float Gamma = 0.9; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.000; + const float crushContrast = 0.000; + #define post_process 1 + const float satFactor = 0.25; + #define blacknwhitepass 1 + const int BlackPoint = 0; + const int WhitePoint = 255; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); + #define vibpass 0 + const float Vibrance = 0.150; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 1 + const float Power = 8.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.3; + #define Techine 1 + float Technicolor2_Red_Strength = 0.05; + float Technicolor2_Green_Strength = 0.02; + float Technicolor2_Blue_Strength = 0.12; + float Technicolor2_Brightness = 0.4; + float Technicolor2_Strength = 3.0; + float Technicolor2_Saturation = 1.0; + #define cmatrix 7 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.65; + #define Filmicpass 1 + const float Filmic_Strength = 0.60; + const float Filmic_Contrast = 1.03; + const float Fade = 0.0; + const float Linearization = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.25; + const float BaseCurve = 1.5; + const float BaseGamma = 1.0; + const float EffectGamma = 0.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 2.5; + float DPX_Strength = 0.20; + +#elif (Preset == 2) //BSoD Gaming + + #define adjust_bloom 1 + const float bloomFactor = 0.010; + #define HDRpassing 1 + const float HDRPower = 1.085; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 1 + const float sharp_strength = 0.25; + const float sharp_clamp = 0.085; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 0.6; + const float Bleach = 0.3; + const float Gamma = 1.00; + const float defog = 0.004; + vec3 FogColor = vec3(1.0, 1.5, 1.7); + const float sat = 0.050; + const float crushContrast = 0.000; + #define post_process 0 + const float satFactor = 0.25; + #define blacknwhitepass 0 + const int BlackPoint = 8; + const int WhitePoint = 235; + #define lggpass 1 + vec3 RGB_Lift = vec3(0.994, 0.994, 0.994); + vec3 RGB_Gamma = vec3(1.0, 0.990, 1.0); + vec3 RGB_Gain = vec3(1.0, 0.990, 1.00); + #define vibpass 1 + const float Vibrance = 0.113; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 4.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.20; + #define Techine 0 + const float Technicolor2_Red_Strength = 0.000; + const float Technicolor2_Green_Strength = 0.000; + const float Technicolor2_Blue_Strength = 0.000; + const float Technicolor2_Brightness = 1.0; + const float Technicolor2_Strength = 0.40; + const float Technicolor2_Saturation = 0.70; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.65; + #define Filmicpass 1 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.15; + const float Filmic_Strength = 0.85; + const float Fade = 0.4; + const float Linearization = 0.5; + const float BaseCurve = 1.5; + const float BaseGamma = 0.7; + const float EffectGamma = 0.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 2.5; + float DPX_Strength = 0.20; + +#elif (Preset == 3) //Jamie + + #define adjust_bloom 1 + const float bloomFactor = 0.020; + #define HDRpassing 1 + const float HDRPower = 1.00; + const float radius1 = 1.00; + const float radius2 = 0.80; + #define lumapassing 1 + const float sharp_strength = 0.35; + const float sharp_clamp = 0.85; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.17; + const float Bleach = 0.4; + const float Gamma = 1.00; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.000; + const float crushContrast = 0.000; + #define post_process 1 + const float satFactor = 0.25; + #define blacknwhitepass 0 + const int BlackPoint = 16; + const int WhitePoint = 235; + #define lggpass 1 + vec3 RGB_Lift = vec3(0.980, 0.980, 0.980); + vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); + #define vibpass 0 + const float Vibrance = 0.150; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 4.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.20; + #define Techine 0 + const float Technicolor2_Red_Strength = 0.02; + const float Technicolor2_Green_Strength = 0.02; + const float Technicolor2_Blue_Strength = 0.02; + const float Technicolor2_Brightness = 1.00; + const float Technicolor2_Strength = 1.00; + const float Technicolor2_Saturation = 1.00; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.65; + #define Filmicpass 0 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.15; + const float Filmic_Strength = 0.85; + const float Fade = 0.4; + const float Linearization = 0.5; + const float BaseCurve = 1.5; + const float BaseGamma = 1.00; + const float EffectGamma = 0.68; + #define dpxpass 1 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 0.0; + float Colorfulness = 1.0; + float DPX_Strength = 0.20; + +#elif (Preset == 4) //Contrasty + + #define adjust_bloom 1 + const float bloomFactor = 0.020; + #define HDRpassing 0 + const float HDRPower = 1.00; + const float radius1 = 1.00; + const float radius2 = 0.80; + #define lumapassing 0 + const float sharp_strength = 0.35; + const float sharp_clamp = 0.85; + const float offset_bias = 1.0; + #define Tone_map 1 + const float Exposure = 1.17; + const float Bleach = 0.3; + const float Gamma = 0.810; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.000; + const float crushContrast = 0.000; + #define post_process 1 + const float satFactor = 0.25; + #define blacknwhitepass 0 + const int BlackPoint = 16; + const int WhitePoint = 235; + #define lggpass 0 + vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); + #define vibpass 0 + const float Vibrance = 0.150; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 4.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.20; + #define Techine 0 + const float Technicolor2_Red_Strength = 0.02; + const float Technicolor2_Green_Strength = 0.02; + const float Technicolor2_Blue_Strength = 0.02; + const float Technicolor2_Brightness = 1.00; + const float Technicolor2_Strength = 1.00; + const float Technicolor2_Saturation = 1.00; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 1 + const float Contrast = 0.65; + #define Filmicpass 0 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.15; + const float Filmic_Strength = 0.85; + const float Fade = 0.4; + const float Linearization = 0.5; + const float BaseCurve = 1.5; + const float BaseGamma = 1.00; + const float EffectGamma = 0.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 2.5; + float DPX_Strength = 0.20; + +#elif (Preset == 5) //The Complaining Gamer + + #define adjust_bloom 1 + const float bloomFactor = 0.33; + #define HDRpassing 1 + const float HDRPower = 1.020; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 1 + const float sharp_strength = 0.25; + const float sharp_clamp = 0.85; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.17; + const float Bleach = 0.4; + const float Gamma = 1.00; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.000; + const float crushContrast = 0.000; + #define post_process 0 + const float satFactor = 0.25; + #define blacknwhitepass 0 + const int BlackPoint = 16; + const int WhitePoint = 235; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gamma = vec3(0.600, 0.600, 0.600); + vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); + #define vibpass 1 + const float Vibrance = 0.150; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 4.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.20; + #define Techine 1 + const float Technicolor2_Red_Strength = 0.000; + const float Technicolor2_Green_Strength = 0.000; + const float Technicolor2_Blue_Strength = 0.000; + const float Technicolor2_Brightness = 1.0; + const float Technicolor2_Strength = 0.40; + const float Technicolor2_Saturation = 0.51; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 1 + const float Contrast = 0.65; + #define Filmicpass 0 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.15; + const float Filmic_Strength = 0.85; + const float Fade = 0.4; + const float Linearization = 0.5; + const float BaseCurve = 1.5; + const float BaseGamma = 1.00; + const float EffectGamma = 0.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 2.5; + float DPX_Strength = 0.20; + +#elif (Preset == 6) //Filmic + + #define adjust_bloom 1 + const float bloomFactor = 0.020; + #define HDRpassing 1 + const float HDRPower = 1.20; + const float radius1 = 1.00; + const float radius2 = 0.80; + #define lumapassing 1 + const float sharp_strength = 0.35; + const float sharp_clamp = 0.85; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.17; + const float Bleach = 0.4; + const float Gamma = 1.00; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.000; + const float crushContrast = 0.000; + #define post_process 1 + const float satFactor = 0.25; + #define blacknwhitepass 0 + const int BlackPoint = 16; + const int WhitePoint = 235; + #define lggpass 0 + vec3 RGB_Lift = vec3(0.990, 0.990, 0.990); + vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); + #define vibpass 1 + const float Vibrance = 0.150; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 4.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.20; + #define Techine 0 + const float Technicolor2_Red_Strength = 0.02; + const float Technicolor2_Green_Strength = 0.02; + const float Technicolor2_Blue_Strength = 0.02; + const float Technicolor2_Brightness = 1.00; + const float Technicolor2_Strength = 1.00; + const float Technicolor2_Saturation = 1.00; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 1 + const float Contrast = 0.65; + #define Filmicpass 1 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.15; + const float Filmic_Strength = 0.85; + const float Fade = 0.4; + const float Linearization = 0.5; + const float BaseCurve = 1.5; + const float BaseGamma = 1.00; + const float EffectGamma = 0.68; + #define dpxpass 1 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 2.0; + float Colorfulness = 1.5; + float DPX_Strength = 0.20; + +#elif (Preset == 7) //CellHunter + + #define adjust_bloom 1 + const float bloomFactor = 0.215; + #define HDRpassing 1 + const float HDRPower = 1.200; + const float radius1 = 1.050; + const float radius2 = 1.000; + #define lumapassing 0 + const float sharp_strength = 0.45; + const float sharp_clamp = 0.65; + const float offset_bias = 1.00; + #define Tone_map 0 + const float Exposure = 1.00; + const float Bleach = 0.0; + const float Gamma = 1.00; + const float defog = 0.003; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.000; + const float crushContrast = 0.000; + #define post_process 0 + const float satFactor = 0.05; + #define blacknwhitepass 0 + const int BlackPoint = 16; + const int WhitePoint = 215; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); + vec3 RGB_Gamma = vec3(1.000, 0.965, 1.010); + vec3 RGB_Gain = vec3(1.000, 0.975, 1.010); + #define vibpass 1 + const float Vibrance = 0.335; + vec3 VibranceRGBBalance = vec3(0.7, 0.9, 0.7); + #define Tech 0 + const float Power = 1.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.05; + #define Techine 1 + const float Technicolor2_Red_Strength = 0.10; + const float Technicolor2_Green_Strength = 0.15; + const float Technicolor2_Blue_Strength = 0.15; + const float Technicolor2_Brightness = 0.10; + const float Technicolor2_Strength = 1.00; + const float Technicolor2_Saturation = 0.80; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 1 + const float Contrast = 0.115; + #define Filmicpass 1 + const float Filmic_Contrast = 1.00; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.15; + const float Filmic_Strength = 0.60; + const float Fade = 0.05; + const float Linearization = 0.7; + const float BaseCurve = 0.7; + const float BaseGamma = 1.00; + const float EffectGamma = 1.75; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 2.5; + float DPX_Strength = 0.20; + +#elif (Preset == 8) //Serfrost (Bright Display) + + #define adjust_bloom 1 + const float bloomFactor = 0.40; + #define HDRpassing 1 + const float HDRPower = 1.20; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 0 + const float sharp_strength = 0.45; + const float sharp_clamp = 0.85; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.17; + const float Bleach = 0.0; + const float Gamma = 0.98; + const float defog = 1.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.00; + const float crushContrast = 0.00; + #define post_process 0 + const float satFactor = 0.07; + #define blacknwhitepass 1 + const int BlackPoint = 2; + const int WhitePoint = 300; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.027, 1.027, 1.027); + vec3 RGB_Gamma = vec3(0.83, 0.83, 0.83); + vec3 RGB_Gain = vec3(1.10, 1.10, 1.10); + #define vibpass 1 + const float Vibrance = 0.15; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 5.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.10; + #define Techine 1 + float Technicolor2_Red_Strength = -0.09; + float Technicolor2_Green_Strength = -0.09; + float Technicolor2_Blue_Strength = -0.00; + float Technicolor2_Brightness = 0.4; + float Technicolor2_Strength = 1.2; + float Technicolor2_Saturation = 1.1; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.0; + #define Filmicpass 1 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.17; + const float Filmic_Strength = 0.48; + const float Fade = 0.08; + const float Linearization = 1.0; + const float BaseCurve = 1.0; + const float BaseGamma = 1.0; + const float EffectGamma = 1.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 1.0; + float DPX_Strength = 0.20; + +#elif (Preset == 9) //Serfrost (Dim Display) + + #define adjust_bloom 1 + const float bloomFactor = 0.7; + #define HDRpassing 1 + const float HDRPower = 1.20; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 0 + const float sharp_strength = 0.45; + const float sharp_clamp = 0.85; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.17; + const float Bleach = 0.0; + const float Gamma = 1.05; + const float defog = 1.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.0; + const float crushContrast = 0.00; + #define post_process 0 + const float satFactor = 0.07; + #define blacknwhitepass 1 + const int BlackPoint = 1; + const int WhitePoint = 235; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.027, 1.027, 1.027); + vec3 RGB_Gamma = vec3(0.83, 0.83, 0.83); + vec3 RGB_Gain = vec3(1.10, 1.10, 1.10); + #define vibpass 1 + const float Vibrance = 0.45; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 0 + const float Power = 5.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.10; + #define Techine 1 + float Technicolor2_Red_Strength = -0.09; + float Technicolor2_Green_Strength = -0.09; + float Technicolor2_Blue_Strength = -0.00; + float Technicolor2_Brightness = 0.4; + float Technicolor2_Strength = 1.2; + float Technicolor2_Saturation = 1.15; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.0; + #define Filmicpass 1 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.17; + const float Filmic_Strength = 0.48; + const float Fade = 0.08; + const float Linearization = 1.0; + const float BaseCurve = 1.0; + const float BaseGamma = 1.0; + const float EffectGamma = 1.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 1.0; + float DPX_Strength = 0.20; + +#elif (Preset == 10) //Serfrost (Other) + + #define adjust_bloom 1 + const float bloomFactor = 0.3; + #define HDRpassing 1 + const float HDRPower = 1.15; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 1 + const float sharp_strength = 0.45; + const float sharp_clamp = 0.085; + const float offset_bias = 1.0; + #define Tone_map 8 + const float Exposure = 1.10; + const float Bleach = 0.1; + const float Gamma = 1.0; + const float defog = 0.0; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.0; + const float crushContrast = 0.00; + #define post_process 0 + const float satFactor = 0.07; + #define blacknwhitepass 1 + const int BlackPoint = 5; + const int WhitePoint = 210; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.027, 1.027, 1.027); + vec3 RGB_Gamma = vec3(0.83, 0.83, 0.83); + vec3 RGB_Gain = vec3(1.10, 1.10, 1.10); + #define vibpass 1 + const float Vibrance = 0.45; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.3); + #define Tech 1 + const float Power = 6.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.3; + #define Techine 1 + float Technicolor2_Red_Strength = -0.12; + float Technicolor2_Green_Strength = -0.25; + float Technicolor2_Blue_Strength = -0.15; + float Technicolor2_Brightness = 0.4; + float Technicolor2_Strength = 1.0; + float Technicolor2_Saturation = 0.90; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.5; + #define Filmicpass 1 + const float Filmic_Contrast = 1.03; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.35; + const float Filmic_Strength = 0.60; + const float Fade = 0.1; + const float Linearization = 1.0; + const float BaseCurve = 1.5; + const float BaseGamma = 1.0; + const float EffectGamma = 0.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.1; + float DPX_Saturation = 3.0; + float Colorfulness = 1.0; + float DPX_Strength = 0.20; + +#elif (Preset == 11) //ViskClarity + + #define adjust_bloom 1 + const float bloomFactor = 4.050; + #define HDRpassing 1 + const float HDRPower = 1.3; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 1 + const float sharp_strength = 0.50; + const float sharp_clamp = 0.085; + const float offset_bias = 0.0; + #define Tone_map 8 + const float Exposure = 0.6; + const float Bleach = 0.2; + const float Gamma = 1.00; + const float defog = 0.004; + vec3 FogColor = vec3(1.0, 1.5, 1.7); + const float sat = 0.050; + const float crushContrast = 0.000; + #define post_process 0 + const float satFactor = 0; + #define blacknwhitepass 1 + const int BlackPoint = 2; + const int WhitePoint = 285; + #define lggpass 1 + vec3 RGB_Lift = vec3(0.994, 0.994, 0.994); + vec3 RGB_Gamma = vec3(1.0, 0.990, 1.0); + vec3 RGB_Gain = vec3(1.0, 0.990, 1.00); + #define vibpass 1 + const float Vibrance = 0.500; + vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); + #define Tech 1 + const float Power = 4.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.20; + #define Techine 1 + const float Technicolor2_Red_Strength = 0.000; + const float Technicolor2_Green_Strength = 0.000; + const float Technicolor2_Blue_Strength = 0.000; + const float Technicolor2_Brightness = 0.0; + const float Technicolor2_Strength = 0.40; + const float Technicolor2_Saturation = 1.00; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 1 + const float Contrast = -0.35; + #define Filmicpass 1 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = 0; + const float Filmic_Strength = 0.85; + const float Fade = 0.1; + const float Linearization = 0.5; + const float BaseCurve = 1.5; + const float BaseGamma = 0.7; + const float EffectGamma = 0.65; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 1.5; + float DPX_Saturation = 0.8; + float Colorfulness = 0.8; + float DPX_Strength = 0.50; + +#elif (Preset == 12) //Survival of the Wild (Warmer) + + #define adjust_bloom 1 + const float bloomFactor = 0.75; + #define HDRpassing 1 + const float HDRPower = 1.20; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 1 + const float sharp_strength = 0.15; + const float sharp_clamp = 0.35; + const float offset_bias = 0.1; + #define Tone_map 0 + const float Exposure = 1.17; + const float Bleach = 0.0; + const float Gamma = 0.97; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.0; + const float crushContrast = 0.00; + #define post_process 0 + const float satFactor = 0.07; + #define blacknwhitepass 0 + const int BlackPoint = 0; + const int WhitePoint = 245; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.0, 1.0, 1.0); + vec3 RGB_Gamma = vec3(0.95, 0.95, 0.95); + vec3 RGB_Gain = vec3(1.0, 1.0, 1.0); + #define vibpass 1 + const float Vibrance = 3.0; + vec3 VibranceRGBBalance = vec3(0.102656, 0.050158, 0.102186); + #define Tech 0 + const float Power = 5.0; + vec3 RGBNegativeAmount = vec3(0.98, 0.98, 0.98); + float Strength = 0.10; + #define Techine 0 + float Technicolor2_Red_Strength = -0.10; + float Technicolor2_Green_Strength = -0.09; + float Technicolor2_Blue_Strength = 0.05; + float Technicolor2_Brightness = 0.5; + float Technicolor2_Strength = 1.2; + float Technicolor2_Saturation = 1.1; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 0 + const float Contrast = 0.25; + #define Filmicpass 0 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.17; + const float Filmic_Strength = 0.48; + const float Fade = 0.08; + const float Linearization = 1.0; + const float BaseCurve = 1.0; + const float BaseGamma = 1.0; + const float EffectGamma = 1.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.5; + float DPX_Saturation = 3.0; + float Colorfulness = 1.0; + float DPX_Strength = 0.10; + +#elif (Preset == 13) //Survival of the Wild (Colder) + + #define adjust_bloom 1 + const float bloomFactor = 0.75; + #define HDRpassing 0 + const float HDRPower = 1.20; + const float radius1 = 0.793; + const float radius2 = 0.87; + #define lumapassing 1 + const float sharp_strength = 0.22; + const float sharp_clamp = 0.35; + const float offset_bias = 0.05; + #define Tone_map 0 + const float Exposure = 1.17; + const float Bleach = 0.0; + const float Gamma = 0.97; + const float defog = 0.00; + vec3 FogColor = vec3(1.0, 1.0, 1.0); + const float sat = 0.0; + const float crushContrast = 0.00; + #define post_process 0 + const float satFactor = 0.07; + #define blacknwhitepass 0 + const int BlackPoint = 0; + const int WhitePoint = 245; + #define lggpass 1 + vec3 RGB_Lift = vec3(1.0, 1.0, 1.0); + vec3 RGB_Gamma = vec3(0.93, 0.93, 0.93); + vec3 RGB_Gain = vec3(1.0, 1.0, 1.0); + #define vibpass 1 + const float Vibrance = 2.0; + vec3 VibranceRGBBalance = vec3(0.142656, 0.000158, 0.172186); + #define Tech 0 + const float Power = 5.0; + vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); + float Strength = 0.10; + #define Techine 1 + float Technicolor2_Red_Strength = -0.10; + float Technicolor2_Green_Strength = -0.09; + float Technicolor2_Blue_Strength = 0.05; + float Technicolor2_Brightness = 0.30; + float Technicolor2_Strength = 1.2; + float Technicolor2_Saturation = 1.1; + #define cmatrix 0 + vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); + vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); + vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); + float CM_Strength = 1.0; + #define CurvesPss 1 + const float Contrast = 0.1; + #define Filmicpass 0 + const float Filmic_Contrast = 1.0; + const float Filmic_Bleach = 0.0; + const float Saturation = -0.17; + const float Filmic_Strength = 0.48; + const float Fade = 0.08; + const float Linearization = 1.0; + const float BaseCurve = 1.0; + const float BaseGamma = 1.0; + const float EffectGamma = 1.68; + #define dpxpass 0 + vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); + vec3 RGB_C = vec3(0.36, 0.36, 0.34); + float DPX_Contrast = 0.5; + float DPX_Saturation = 3.0; + float Colorfulness = 1.0; + float DPX_Strength = 0.10; + +#elif (Preset == 14) //Godot's Mexican Preset + +#define adjust_bloom 1 +const float bloomFactor = 0.684; +#define HDRpassing 1 +const float HDRPower = 0.80; +const float radius1 = 0.80; +const float radius2 = 1.10; +#define lumapassing 1 +const float sharp_strength = 0.23; +const float sharp_clamp = 0.035; +const float offset_bias = 1.0; +#define Tone_map 4 +const float Exposure = 0.69; +const float Bleach = 0.6; +const float Gamma = 1.00; +const float defog = 0; +vec3 FogColor = vec3(0, 0, 0); +const float sat = 0.000; +const float crushContrast = 0.000; +#define post_process 1 +const float satFactor = 0.16; +#define blacknwhitepass 1 +const int BlackPoint = 5; +const int WhitePoint = 167; +#define lggpass 0 +vec3 RGB_Lift = vec3(1.000, 1.000, 1.000); +vec3 RGB_Gamma = vec3(1.000, 1.000, 1.000); +vec3 RGB_Gain = vec3(1.000, 1.000, 1.000); +#define vibpass 0 +const float Vibrance = 0.150; +vec3 VibranceRGBBalance = vec3(1.0, 1.0, 1.0); +#define Tech 0 +const float Power = 4.0; +vec3 RGBNegativeAmount = vec3(0.88, 0.88, 0.88); +float Strength = 0.20; +#define Techine 0 +const float Technicolor2_Red_Strength = 0.02; +const float Technicolor2_Green_Strength = 0.02; +const float Technicolor2_Blue_Strength = 0.02; +const float Technicolor2_Brightness = 1.00; +const float Technicolor2_Strength = 1.00; +const float Technicolor2_Saturation = 1.00; +#define cmatrix 0 +vec3 ColorMatrix_Red = vec3(0.817, 0.183, 0.000); +vec3 ColorMatrix_Green = vec3(0.333, 0.667, 0.000); +vec3 ColorMatrix_Blue = vec3(0.000, 0.125, 0.875); +float CM_Strength = 1.0; +#define CurvesPss 1 // 0: disable, 1: enable. +const float Contrast = 0.92; +#define Filmicpass 1 +const float Filmic_Contrast = 0.8; +const float Filmic_Bleach = 0.0; +const float Saturation = -0.50; +const float Filmic_Strength = 0.3; +const float Fade = 0.0; +const float Linearization = 0.7; +const float BaseCurve = 1.5; +const float BaseGamma = 0.93; +const float EffectGamma = 0.69; +#define dpxpass 1 +vec3 RGB_Curve = vec3(8.0, 8.0, 8.0); +vec3 RGB_C = vec3(0.36, 0.36, 0.34); +float DPX_Contrast = 0.1; +float DPX_Saturation = 0.6; +float Colorfulness = 0.8; +float DPX_Strength = 0.10; + +#endif + +//########################################################### + +//Never touch anything below this line unless you plan to break and fix things. + +//########################################################### + +// Start of shader inputs/outputs, predetermined by Cemu. Do not touch + +#ifdef VULKAN + #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) + #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) + #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else + #define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) + #define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) + #define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif + +// uniform vars +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ + uniform ivec4 uf_remappedPS[1]; + uniform vec4 uf_fragCoordScale; +}; +#else + uniform ivec4 uf_remappedPS[1]; + uniform vec2 uf_fragCoordScale; +#endif + +// textures +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; // Bloom +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; // HDR LumaShapening + +// pixel shader inputs +layout(location = 0) in vec4 passParameterSem0; + +// color outputs +layout(location = 0) out vec4 passPixelColor0; + +// End of shader inputs/outputs + +//ToneMapping + +vec3 linearToneMapping(vec3 color) +{ + float exposure = 1.; + color = clamp(exposure * color, 0., 1.); + color = pow(color, vec3(1. / Gamma)); + return color; +} + +vec3 simpleReinhardToneMapping(vec3 color) +{ + float exposure = 1.5; + color *= exposure / (1. + color / exposure); + color = pow(color, vec3(1. / Gamma)); + return color; +} + +vec3 lumaBasedReinhardToneMapping(vec3 color) +{ + float luma = dot(color, vec3(0.2126, 0.7152, 0.0722)); + float toneMappedLuma = luma / (1. + luma); + color *= toneMappedLuma / luma; + color = pow(color, vec3(1. / Gamma)); + return color; +} + +vec3 whitePreservingLumaBasedReinhardToneMapping(vec3 color) +{ + float white = 2.; + float luma = dot(color, vec3(0.2126, 0.7152, 0.0722)); + float toneMappedLuma = luma * (1. + luma / (white*white)) / (1. + luma); + color *= toneMappedLuma / luma; + color = pow(color, vec3(1. / Gamma)); + return color; +} + +vec3 RomBinDaHouseToneMapping(vec3 color) +{ + color = exp(-1.0 / (2.72*color + 0.15)); + color = pow(color, vec3(1. / Gamma)); + return color; +} + +vec3 filmicToneMapping(vec3 color) +{ + color = max(vec3(0.), color - vec3(0.004)); + color = (color * (6.2 * color + .5)) / (color * (6.2 * color + 1.7) + 0.06); + return color; +} + +vec3 Uncharted2ToneMapping(vec3 color) +{ + float A = 0.15; + float B = 0.50; + float C = 0.10; + float D = 0.20; + float E = 0.02; + float F = 0.30; + float W = 11.2; + float exposure = 2.; + color *= exposure; + color = ((color * (A * color + C * B) + D * E) / (color * (A * color + B) + D * F)) - E / F; + float white = ((W * (A * W + C * B) + D * E) / (W * (A * W + B) + D * F)) - E / F; + color /= white; + color = pow(color, vec3(1. / Gamma)); + return color; +} + +vec3 ReshadeToneMap(vec3 inputColor) { + vec3 color = inputColor; + color = clamp(color - defog * FogColor * 2.55, 0.0, 1.0); // defog + color *= Exposure / (1.0 + color / Exposure); + color = pow(color, vec3(1. / Gamma)); // Gamma + + const vec3 coefLuma = vec3(0.2126, 0.7152, 0.0722); + float lum = dot(coefLuma, color); + + float L = clamp(10.0 * (lum - 0.45), 0.0, 1.0); + vec3 A2 = Bleach * color; + + vec3 result1 = 2.0f * color * lum; + vec3 result2 = 1.0f - 2.0f * (1.0f - lum) * (1.0f - color); + + vec3 newColor = mix(result1, result2, L); + vec3 mixRGB = A2 * newColor; + color += ((1.0f - A2) * mixRGB); + + vec3 middlegray = vec3(dot(color, vec3(1.0 / 3.0))); + vec3 diffcolor = color - middlegray; + + color = (color + diffcolor * sat) / (1 + (diffcolor * sat)); // saturation + + return color; +} + +float getL601(vec3 rgb) { + return dot(rgb, vec3(0.2989, 0.5866, 0.1145)); +} + +float getL709(vec3 rgb) { + return dot(rgb, vec3(0.2126, 0.7152, 0.0722)); +} + +vec3 BotWToneMap(vec3 color) { + float Lumn = getL601(color); + vec4 exptm = 1.0 - exp(-vec4(color, Lumn)); + vec3 cpre = exptm.w / Lumn * color; + vec3 colorldr = mix(cpre, exptm.rgb, vec3(pow(exptm.w, 2.0)));//refine + return colorldr; +} +vec3 ACESFilm(vec3 color) { + color *= Exposure; + float Lumn = getL709(color); + vec4 tm = vec4(color, Lumn); + tm = (tm*(2.51*tm + 0.03)) / (tm*(2.43*tm + 0.59) + 0.14); // tonemap + vec3 cpre = tm.w / Lumn * color; + vec3 colorldr = mix(cpre, tm.rgb, vec3(pow(tm.w, 2.0)));//refine + return colorldr; +} + +//Curves + +vec3 CurvesPass(vec3 inputColor) { + vec3 colorInput = inputColor; + float Contrast_blend = Contrast * 1.5; + vec3 x = colorInput.rgb; + x = x - 0.5; + x = ( x / (0.5 + abs(x)) ) + 0.5; + vec3 color = x; + colorInput.rgb = mix(colorInput.rgb, color, Contrast_blend); + return colorInput; +} + +//TECHNICOLOR2 + +vec3 Technicolor2(vec3 inputColor) { + vec3 color = inputColor; + vec3 Color_Strength = vec3(Technicolor2_Red_Strength, Technicolor2_Green_Strength, Technicolor2_Blue_Strength); + vec3 source = color; + vec3 temp = 1.0 - source; + vec3 target = temp.grg; + vec3 target2 = temp.bbr; + vec3 temp2 = source * target; + temp2 *= target2; + + temp = temp2 * Color_Strength; + temp2 *= Technicolor2_Brightness; + + target = temp.grg; + target2 = temp.bbr; + + temp = source - target; + temp += temp2; + temp2 = temp - target2; + + color = mix(source, temp2, Technicolor2_Strength); + + color = mix(vec3(dot(color, vec3(0.333))), color, Technicolor2_Saturation); + + return color; +} + +//Technicolor +vec3 TechnicolorPass(vec3 color) +{ + + const vec3 cyanfilter = vec3(0.0, 1.30, 1.0); + const vec3 magentafilter = vec3(1.0, 0.0, 1.05); + const vec3 yellowfilter = vec3(1.6, 1.6, 0.05); + const vec2 redorangefilter = vec2(1.05, 0.620); // RG_ + const vec2 greenfilter = vec2(0.30, 1.0); // RG_ + const vec2 magentafilter2 = magentafilter.rb; // R_B + + vec3 tcol = color.rgb; + + vec2 negative_mul_r = tcol.rg * (1.0 / (RGBNegativeAmount.r * Power)); + vec2 negative_mul_g = tcol.rg * (1.0 / (RGBNegativeAmount.g * Power)); + vec2 negative_mul_b = tcol.rb * (1.0 / (RGBNegativeAmount.b * Power)); + vec3 output_r = dot(redorangefilter, negative_mul_r).xxx + cyanfilter; + vec3 output_g = dot(greenfilter, negative_mul_g).xxx + magentafilter; + vec3 output_b = dot(magentafilter2, negative_mul_b).xxx + yellowfilter; + + return mix(tcol, output_r * output_g * output_b, Strength); +} + +//ColorMatrix +vec3 ColorMatrixPass(vec3 inputColor) +{ + vec3 color = inputColor; + + const mat3 ColorMatrix = mat3(ColorMatrix_Red, ColorMatrix_Green, ColorMatrix_Blue); + //color = mix(color, * (ColorMatrix, color), CM_Strength); + color *= mix(color, (ColorMatrix, color), CM_Strength); + return clamp(color, 0.0, 1.); +} + +//Contrasty + +vec3 BotWVibrance(vec3 color) { + float avg = (color.r + color.g + color.b) / 3.0; + float maxc = max(color.r, max(color.g, color.b)); + float w = 1.0 - pow(1.0 - 2.0 * avg, 2.0); + float weight = 1.0 + w * satFactor; + vec3 satcolor = mix(vec3(maxc), color, weight); + return satcolor; +} + +vec3 ReshadeVibrance(vec3 color) { + float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color + float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color + float luma = getL709(color); + float color_saturation = max_color - min_color; // The difference between the two is the saturation + vec3 coeffVibrance = VibranceRGBBalance * Vibrance; + color = mix(vec3(luma), color, 1.0 + (coeffVibrance * (1.0 - (sign(coeffVibrance) * color_saturation)))); + return color; +} + +vec3 Contrasty(vec3 fColour) { + fColour = max(vec3(0.0), fColour - vec3(crushContrast)); + fColour = clamp(Exposure * fColour, 0.0, 1.0); + fColour = pow(fColour, vec3(1.0 / Gamma)); + fColour = ReshadeVibrance(fColour); // reshade's identical, only a little stronger when at same setting + return fColour; +} + +//Levels + +vec3 LevelsPass(vec3 inputColor) { + float black_point_float = BlackPoint / 255.0; + float white_point_float = WhitePoint == BlackPoint ? (255.0 / 0.00025) : (255.0 / (WhitePoint - BlackPoint)); // Avoid division by zero if the white and black point are the same + + vec3 color = inputColor; + color = color * white_point_float - (black_point_float * white_point_float); + + return color; +} + +//FilmPass + +vec3 FilmPass(vec3 inputColor) { + vec3 B = inputColor.rgb; + vec3 G = B; + vec3 H = vec3(0.0); + + B = clamp(B, 0.0, 1.); + B = pow(vec3(B), vec3(Linearization)); + B = mix(H, B, Filmic_Contrast); + + vec3 LumCoeff = vec3(0.2126, 0.7152, 0.0722); + float A = dot(B.rgb, LumCoeff); + vec3 D = vec3(A); + + B = pow(B, 1.0 / vec3(BaseGamma)); + + float RedCurve = 1.0; + float GreenCurve = 1.0; + float BlueCurve = 1.0; + float a = RedCurve; + float b = GreenCurve; + float c = BlueCurve; + float d = BaseCurve; + + float y = 1.0 / (1.0 + exp(a / 2.0)); + float z = 1.0 / (1.0 + exp(b / 2.0)); + float w = 1.0 / (1.0 + exp(c / 2.0)); + float v = 1.0 / (1.0 + exp(d / 2.0)); + + vec3 C = B; + + D.r = (1.0 / (1.0 + exp(-a * (D.r - 0.5))) - y) / (1.0 - 2.0 * y); + D.g = (1.0 / (1.0 + exp(-b * (D.g - 0.5))) - z) / (1.0 - 2.0 * z); + D.b = (1.0 / (1.0 + exp(-c * (D.b - 0.5))) - w) / (1.0 - 2.0 * w); + + D = pow(D, 1.0 / vec3(EffectGamma)); + + vec3 Di = 1.0 - D; + + D = mix(D, Di, Filmic_Bleach); + float EffectGammaR = 1.0; + float EffectGammaG = 1.0; + float EffectGammaB = 1.0; + D.r = pow(abs(D.r), 1.0 / EffectGammaR); + D.g = pow(abs(D.g), 1.0 / EffectGammaG); + D.b = pow(abs(D.b), 1.0 / EffectGammaB); + + if (D.r < 0.5) + C.r = (2.0 * D.r - 1.0) * (B.r - B.r * B.r) + B.r; + else + C.r = (2.0 * D.r - 1.0) * (sqrt(B.r) - B.r) + B.r; + + if (D.g < 0.5) + C.g = (2.0 * D.g - 1.0) * (B.g - B.g * B.g) + B.g; + else + C.g = (2.0 * D.g - 1.0) * (sqrt(B.g) - B.g) + B.g; + + if (D.b < 0.5) + C.b = (2.0 * D.b - 1.0) * (B.b - B.b * B.b) + B.b; + else + C.b = (2.0 * D.b - 1.0) * (sqrt(B.b) - B.b) + B.b; + + vec3 F = mix(B, C, Filmic_Strength); + + F = (1.0 / (1.0 + exp(-d * (F - 0.5))) - v) / (1.0 - 2.0 * v); + + float r2R = 1.0 - Saturation; + float g2R = 0.0 + Saturation; + float b2R = 0.0 + Saturation; + + float r2G = 0.0 + Saturation; + float g2G = (1.0 - Fade) - Saturation; + float b2G = (0.0 + Fade) + Saturation; + + float r2B = 0.0 + Saturation; + float g2B = (0.0 + Fade) + Saturation; + float b2B = (1.0 - Fade) - Saturation; + + vec3 iF = F; + + F.r = (iF.r * r2R + iF.g * g2R + iF.b * b2R); + F.g = (iF.r * r2G + iF.g * g2G + iF.b * b2G); + F.b = (iF.r * r2B + iF.g * g2B + iF.b * b2B); + + float N = dot(F.rgb, LumCoeff); + vec3 Cn = F; + + if (N < 0.5) + Cn = (2.0 * N - 1.0) * (F - F * F) + F; + else + Cn = (2.0 * N - 1.0) * (sqrt(F) - F) + F; + + Cn = pow(max(Cn, 0), 1.0 / vec3(Linearization)); + + vec3 Fn = mix(B, Cn, Filmic_Strength); + return Fn; +} + +//DPX +const mat3 RGB = mat3( + 2.6714711726599600, -1.2672360578624100, -0.4109956021722270, + -1.0251070293466400, 1.9840911624108900, 0.0439502493584124, + 0.0610009456429445, -0.2236707508128630, 1.1590210416706100 +); +const mat3 XYZ = mat3( + 0.5003033835433160, 0.3380975732227390, 0.1645897795458570, + 0.2579688942747580, 0.6761952591447060, 0.0658358459823868, + 0.0234517888692628, 0.1126992737203000, 0.8668396731242010 +); +vec3 DPXPass(vec3 inputColor) +{ + vec3 color = inputColor; + + vec3 B = color; + B = B * (1.0 - DPX_Contrast) + (0.5 * DPX_Contrast); + vec3 Btemp = (1.0 / (1.0 + exp(RGB_Curve / 2.0))); + B = ((1.0 / (1.0 + exp(-RGB_Curve * (B - RGB_C)))) / (-2.0 * Btemp + 1.0)) + (-Btemp / (-2.0 * Btemp + 1.0)); + + float value = max(max(B.r, B.g), B.b); + vec3 Ztemp = B / value; + color = pow(abs(color), 1. / vec3(Colorfulness)); + + vec3 c0 = Ztemp * value; + c0 *= (XYZ, c0); + float luma = dot(c0, vec3(0.30, 0.59, 0.11)); + c0 = (1.0 - DPX_Saturation) * luma + DPX_Saturation * c0; + c0 *= (RGB, c0); + + return mix(color, c0, DPX_Strength); +} + +//Lift Gamma Gain + +vec3 LiftGammaGainPass(vec3 colorInput) +{ + // -- Get input -- + vec3 color = colorInput; + + // -- Lift -- + + color = color * (1.5 - 0.5 * RGB_Lift) + 0.5 * RGB_Lift - 0.5; + color = clamp(color, 0.0, 1.0); //isn't strictly necessary, but doesn't cost performance. + + // -- Gain -- + color *= RGB_Gain; + + // -- Gamma -- + color = pow(color, 1.0 / RGB_Gamma); //Gamma + + // -- Return output -- + return clamp(color, 0.0, 1.0); +} + +//VibrancePass +vec3 VibrancePass(vec3 color) { + + const vec3 coefLuma = vec3(0.2126, 0.7152, 0.0722); + float luma = dot(coefLuma, color); + + float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color + float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color + + float color_saturation = max_color - min_color; // The difference between the two is the saturation + + // Extrapolate between luma and original by 1 + (1-saturation) - current + vec3 coeffVibrance = VibranceRGBBalance * Vibrance; + + color = mix(vec3(luma), color, 1.0 + (coeffVibrance * (1.0 - (sign(coeffVibrance) * color_saturation)))); + + return color; +} + +//LumaShapening + +#define px (1.0/1280.0*uf_fragCoordScale.x) +#define py (1.0/720.0*uf_fragCoordScale.y) +#define CoefLuma vec3(0.2126, 0.7152, 0.0722) + +float lumasharping(sampler2D tex, vec2 pos) { + vec4 colorInput = texture(tex, pos); + + vec3 ori = colorInput.rgb; + + // -- Combining the strength and luma multipliers -- + vec3 sharp_strength_luma = (CoefLuma * sharp_strength); + + // -- Gaussian filter -- + // [ .25, .50, .25] [ 1 , 2 , 1 ] + // [ .50, 1, .50] = [ 2 , 4 , 2 ] + // [ .25, .50, .25] [ 1 , 2 , 1 ] + + vec3 blur_ori = texture(tex, pos + vec2(px, -py) * 0.5 * offset_bias).rgb; // South East + blur_ori += texture(tex, pos + vec2(-px, -py) * 0.5 * offset_bias).rgb; // South West + blur_ori += texture(tex, pos + vec2(px, py) * 0.5 * offset_bias).rgb; // North East + blur_ori += texture(tex, pos + vec2(-px, py) * 0.5 * offset_bias).rgb; // North West + + blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches + + // -- Calculate the sharpening -- + vec3 sharp = ori - blur_ori; //Subtracting the blurred image from the original image + + // -- Adjust strength of the sharpening and clamp it-- + vec4 sharp_strength_luma_clamp = vec4(sharp_strength_luma * (0.5 / sharp_clamp), 0.5); //Roll part of the clamp into the dot + + float sharp_luma = clamp((dot(vec4(sharp, 1.0), sharp_strength_luma_clamp)), 0.0, 1.0); //Calculate the luma, adjust the strength, scale up and clamp + sharp_luma = (sharp_clamp * 2.0) * sharp_luma - sharp_clamp; //scale down + + return sharp_luma; +} + +//Fake High Dynamic Range + +vec3 HDRPass(sampler2D tex, vec2 pos) { + vec3 color = texture(tex, pos).rgb; + + vec3 bloom_sum1 = texture(tex, pos + vec2(1.5, -1.5) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(-1.5, -1.5) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(1.5, 1.5) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(-1.5, 1.5) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(0.0, -2.5) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(0.0, 2.5) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(-2.5, 0.0) * radius1 * vec2(px, py)).rgb; + bloom_sum1 += texture(tex, pos + vec2(2.5, 0.0) * radius1 * vec2(px, py)).rgb; + + bloom_sum1 *= 0.005; + + vec3 bloom_sum2 = texture(tex, pos + vec2(1.5, -1.5) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(-1.5, -1.5) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(1.5, 1.5) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(-1.5, 1.5) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(0.0, -2.5) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(0.0, 2.5) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(-2.5, 0.0) * radius2 * vec2(px, py)).rgb; + bloom_sum2 += texture(tex, pos + vec2(2.5, 0.0) * radius2 * vec2(px, py)).rgb; + + bloom_sum2 *= 0.010; + + float dist = radius2 - radius1; + vec3 HDR = (color + (bloom_sum2 - bloom_sum1)) * dist; + + vec3 blend = HDR + color; + color = pow(abs(blend), vec3(abs(HDRPower))) + HDR; + + return color; +} + +void main() +{ + //Bloom + vec3 bloom = texture(textureUnitPS0, passParameterSem0.xy).xyz; +#if (adjust_bloom == 1) + bloom *= bloomFactor; +#endif + + //HDR and LumaShapening +#if (HDRpassing == 1) + passPixelColor0.xyz = HDRPass(textureUnitPS1, passParameterSem0.xy).xyz; +#endif +#if (HDRpassing == 0) + passPixelColor0.xyz = texture(textureUnitPS1, passParameterSem0.xy).xyz; +#endif +#if (lumapassing == 1) + float smask = lumasharping(textureUnitPS1, passParameterSem0.xy); + passPixelColor0.xyz += vec3(smask); +#endif + + // Do not edit this + vec3 color = (passPixelColor0.xyz); + color += bloom; + //++++++++++++++++++++++++++++++++++ + + // Tonemapping +#if (Tone_map == -1) + color = clamp(color*Exposure, 0.0, 1.0); +#elif (Tone_map == 0) + color = BotWToneMap(color); +#elif (Tone_map == 1) + color = ReshadeToneMap(color); +#elif (Tone_map == 2) + color = linearToneMapping(color); +#elif (Tone_map == 3) + color = simpleReinhardToneMapping(color); +#elif (Tone_map == 4) + color = lumaBasedReinhardToneMapping(color); +#elif (Tone_map == 5) + color = whitePreservingLumaBasedReinhardToneMapping(color); +#elif (Tone_map == 6) + color = RomBinDaHouseToneMapping(color); +#elif (Tone_map == 7) + color = filmicToneMapping(color); +#elif (Tone_map == 8) + color = Uncharted2ToneMapping(color); +#elif (tone_mapping == 9) + color = ACESFilm(color); +#endif + + // Levels Control if we tone map to 16-235 , 0 - 255 or usr defined range. +#if (blacknwhitepass == 1) + color = LevelsPass(color); +#endif + + // Color matrix +#if (cmatrix == 1) + color = ColorMatrixPass(color); +#endif + + + // Post Processing +#if (Tech == 1) + color = TechnicolorPass(color); +#endif +#if (Techine == 1) + color = Technicolor2(color); +#endif +#if (post_process == 0) + color = BotWVibrance(color); +#endif +#if (post_process == 1) + color = Contrasty(color); +#endif +#if (dpxpass == 1) + color = DPXPass(color); +#endif +#if (Filmicpass == 1) + color = FilmPass(color); +#endif +#if (lggpass == 1) + color = LiftGammaGainPass(color); +#endif +#if (CurvesPss == 1) + color = CurvesPass(color); +#endif +#if (vibpass == 1) + color = VibrancePass(color); +#endif + passPixelColor0 = vec4(color, passParameterSem0.w); +} + +#elif (disableClarity == 1) // I'M SORRY OKAY IT WORKS + +#extension GL_ARB_separate_shader_objects : enable +// shader 37040a485a29d54e +// Used for: Idk it's a host for clarity - Dumped with Cemu 1.20.1 + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[1]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[1]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz); +R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz); +// 0 +R126f.x = R1f.x + R0f.x; +PV0f.x = R126f.x; +R127f.y = R1f.y + R0f.y; +PV0f.y = R127f.y; +R126f.z = R1f.z + R0f.z; +PV0f.z = R126f.z; +R125f.w = 1.0; +// 1 +tempf.x = dot(vec4(PV0f.x,PV0f.y,PV0f.z,-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),intBitsToFloat(0x3dea4a8c),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +// 2 +R127f.x = -(R127f.y) * intBitsToFloat(0x3fb8aa3b); +PV0f.y = -(PV1f.x) * intBitsToFloat(0x3fb8aa3b); +R127f.z = -(R126f.x) * intBitsToFloat(0x3fb8aa3b); +R127f.w = -(R126f.z) * intBitsToFloat(0x3fb8aa3b); +R126f.w = 1.0 / PV1f.x; +PS0f = R126f.w; +// 3 +PS1f = exp2(PV0f.y); +// 4 +PV0f.x = -(PS1f) + 1.0; +PS0f = exp2(R127f.x); +// 5 +R127f.x = -(PS0f) + 1.0; +R126f.y = mul_nonIEEE(PV0f.x, PV0f.x); +PV1f.z = PV0f.x * R126f.w; +PS1f = exp2(R127f.w); +// 6 +backupReg0f = R126f.x; +backupReg1f = R127f.z; +R126f.x = mul_nonIEEE(backupReg0f, PV1f.z); +PV0f.y = -(PS1f) + 1.0; +R127f.z = mul_nonIEEE(R126f.z, PV1f.z); +PV0f.z = R127f.z; +R127f.w = mul_nonIEEE(R127f.y, PV1f.z); +PV0f.w = R127f.w; +PS0f = exp2(backupReg1f); +// 7 +PV1f.x = R127f.x + -(PV0f.w); +PV1f.y = PV0f.y + -(PV0f.z); +PV1f.w = -(PS0f) + 1.0; +// 8 +backupReg0f = R127f.z; +R127f.x = (mul_nonIEEE(PV1f.x,R126f.y) + R127f.w); +R127f.x = clamp(R127f.x, 0.0, 1.0); +PV0f.x = R127f.x; +PV0f.y = PV1f.w + -(R126f.x); +R127f.z = (mul_nonIEEE(PV1f.y,R126f.y) + backupReg0f); +R127f.z = clamp(R127f.z, 0.0, 1.0); +PV0f.z = R127f.z; +// 9 +backupReg0f = R126f.x; +R126f.x = (mul_nonIEEE(PV0f.y,R126f.y) + backupReg0f); +R126f.x = clamp(R126f.x, 0.0, 1.0); +PV1f.x = R126f.x; +PV1f.w = max(PV0f.x, PV0f.z); +// 10 +tempf.x = dot(vec4(PV1f.x,R127f.x,R127f.z,R125f.w),vec4(intBitsToFloat(0x3f2aaaab),intBitsToFloat(0x3f2aaaab),intBitsToFloat(0x3f2aaaab),-(1.0))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R126f.z = max(PV1f.x, PV1f.w); +PS0f = R126f.z; +// 11 +backupReg0f = R127f.x; +backupReg1f = R127f.z; +R127f.x = R126f.x + -(PS0f); +R123f.y = (mul_nonIEEE(-(PV0f.x),PV0f.x) + 1.0); +PV1f.y = R123f.y; +R127f.z = backupReg0f + -(PS0f); +R125f.w = backupReg1f + -(PS0f); +// 12 +R123f.x = (mul_nonIEEE(PV1f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[0].x)); +PV0f.x = R123f.x; +// 13 +R0f.x = (mul_nonIEEE(R127f.x,PV0f.x) + R126f.z); +R0f.y = (mul_nonIEEE(R127f.z,PV0f.x) + R126f.z); +R0f.z = (mul_nonIEEE(R125f.w,PV0f.x) + R126f.z); +// export +passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +} + +#endif diff --git a/src/BreathOfTheWild/Enhancements/8ff2cf86e789335f_00000003c9249749_ps.txt b/src/BreathOfTheWild/Enhancements/8ff2cf86e789335f_00000003c9249749_ps.txt new file mode 100644 index 00000000..ebfe059f --- /dev/null +++ b/src/BreathOfTheWild/Enhancements/8ff2cf86e789335f_00000003c9249749_ps.txt @@ -0,0 +1,692 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 8ff2cf86e789335f +// Used for: Shrine wall reflections - Dumped with Cemu 1.20.1 + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 10) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[10]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[10]; +uniform vec2 uf_fragCoordScale; +#endif + +#define reflExtra $reflExtra + +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 5) uniform sampler2D textureUnitPS8; +TEXTURE_LAYOUT(9, 1, 6) uniform samplerCubeArray textureUnitPS9; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2DArray textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex9 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem3); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem6); +R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R4i.zw)).xyzw); +R2i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw); +R6i.xyzw = floatBitsToInt(textureGather(textureUnitPS8, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw); +R8i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R4i.zw)).xyzw); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R127i.w; +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.x)); +PS0i = R127i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PS1i = R2i.z; +// 2 +R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(R127i.w)))); +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(R127i.w)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(uf_remappedPS[2].y))); +R125i.w = floatBitsToInt(max(intBitsToFloat(R127i.z), -(intBitsToFloat(R127i.z)))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R126i.y = floatBitsToInt(tempResultf); +PS0i = R126i.y; +// 3 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R4i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.y)); +R126i.w = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.z)); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +PS1i = R127i.w; +// 4 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +PS0i = R9i.x; +// 5 +backupReg0i = R127i.z; +backupReg0i = R127i.z; +R126i.x = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.w)); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(R0i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 6 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 7 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(PS0i))); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.y), intBitsToFloat(PS0i))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.x)); +R125i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.y)); +PS1i = R125i.x; +// 8 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(max(intBitsToFloat(R126i.w), -(intBitsToFloat(R126i.w)))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.w)); +R125i.z = floatBitsToInt(max(intBitsToFloat(R126i.x), -(intBitsToFloat(R126i.x)))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.z)); +PS0i = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 4.0); +// 9 +backupReg0i = R126i.z; +PV1i.x = floatBitsToInt(max(intBitsToFloat(R125i.x), -(intBitsToFloat(R125i.x)))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 4.0); +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 4.0); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.y))); +PS1i = R5i.z; +// 10 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(fract(intBitsToFloat(R3i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt(fract(intBitsToFloat(R3i.y))); +PS0i = R125i.x; +// 11 +R127i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV0i.w))); +PV1i.x = R127i.x; +R126i.y = R4i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.y)); +PV1i.z = R126i.z; +R127i.w = R4i.y; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +R125i.w = R5i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +PS1i = R125i.w; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R13i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +// 13 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R126i.y)) + intBitsToFloat(R2i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(backupReg0i))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(R13i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(R127i.z)); +PV1i.w = clampFI32(PV1i.w); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R9i.z))); +PS1i = R125i.z; +// 14 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(R1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R125i.x)); +PV0i.y = clampFI32(PV0i.y); +R11i.z = floatBitsToInt(roundEven(0.0)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.w)); +R10i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PS0i = R10i.w; +// 15 +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R0i.x))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R9i.y)) + intBitsToFloat(R1i.w))); +R1i.z = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(uf_remappedPS[3].x)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.y)); +R1i.y = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(uf_remappedPS[3].y)); +PS1i = R1i.y; +// 16 +R125i.x = floatBitsToInt(max(-(intBitsToFloat(R127i.y)), 0.0)); +R11i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R0i.y))); +R6i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(uf_remappedPS[3].z)); +R127i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(0x437f0000)); +R6i.y = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0); +PS0i = R6i.y; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.w = 0; +PS1i = R1i.w; +// 18 +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV0i.x = R124i.x; +PV0i.y = R124i.x; +PV0i.z = R124i.x; +PV0i.w = R124i.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +PS0i = R124i.z; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = tempi.x; +R4i.z = int(intBitsToFloat(R127i.w)); +PS1i = R4i.z; +// 20 +redcCUBE(vec4(intBitsToFloat(R124i.z),intBitsToFloat(R124i.z),intBitsToFloat(R124i.x),intBitsToFloat(PV1i.x)),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(R124i.x),intBitsToFloat(R124i.z),intBitsToFloat(R124i.z)),cubeMapSTM,cubeMapFaceId); +R0i.x = floatBitsToInt(cubeMapSTM.x); +R0i.y = floatBitsToInt(cubeMapSTM.y); +R0i.z = floatBitsToInt(cubeMapSTM.z); +R0i.w = cubeMapFaceId; +PV0i.x = R0i.x; +PV0i.y = R0i.y; +PV0i.z = R0i.z; +PV0i.w = R0i.w; +R2i.y = floatBitsToInt(min(intBitsToFloat(R125i.x), 1.0)); +PS0i = R2i.y; +// 21 +R3i.x = 0; +R3i.y = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000)); +R10i.z = PV0i.w; +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(R6i.y)) + intBitsToFloat(R6i.y))); +R3i.z = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); +PS1i = R3i.z; +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(uf_remappedPS[7].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R3i.z)) + 1.5)); +PV0i.y = R123i.y; +R124i.z = R4i.z & 0x000000fc; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R3i.z)) + 1.5)); +PV0i.w = R123i.w; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(uf_remappedPS[7].w))); +PS0i = R127i.y; +// 1 +R10i.x = PV0i.y; +R10i.y = PV0i.w; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(uf_remappedPS[7].w))); +R127i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(0x3c23d70a)); +R127i.w = clampFI32(R127i.w); +R126i.z = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R6i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.y = int(intBitsToFloat(R3i.y)); +PS0i = R124i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R127i.y)),-(intBitsToFloat(R125i.z)),-(intBitsToFloat(R3i.x))))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 4 +backupReg0i = R124i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PS1i))); +R127i.x = floatBitsToInt(float(backupReg0i)); +PS0i = R127i.x; +// 5 +backupReg0i = R126i.z; +backupReg0i = R126i.z; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.x = R124i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.y = R126i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt((intBitsToFloat(R6i.y) * 0.5 + 0.5)); +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i))); +PS1i = R125i.y; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),-(intBitsToFloat(R1i.w))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = R124i.y & int(1); +PS0i = R126i.x; +// 7 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R127i.y)),-(intBitsToFloat(R125i.z)),-0.0),vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R126i.z)),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 8 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +R125i.x = floatBitsToInt(intBitsToFloat(R125i.x) / 2.0); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PS1i)) + -(intBitsToFloat(PS1i)))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R3i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3b820821)); +PV0i.w = R3i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +PS0i = R122i.x; +// 9 +backupReg0i = R125i.y; +R127i.x = R126i.w; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +R126i.z = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +R7i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * 0.25 + 0.25)); +PS1i = R7i.y; +// 10 +R3i.x = R126i.w; +R3i.x = clampFI32(R3i.x); +R126i.y = ((R126i.x == 0)?(0):(0x3f800000)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.y) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R2i.y))); +PV0i.w = R123i.w; +R125i.z = floatBitsToInt((-(intBitsToFloat(R3i.w)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +PS0i = R125i.z; +// 11 +backupReg0i = R127i.y; +backupReg1i = R126i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +R126i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i)); +// 12 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R3i.x))); +PV0i.y = R123i.y; +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.w))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.x))); +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R3i.w)) + intBitsToFloat(R125i.z))); +PS0i = R127i.x; +// 13 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R3i.w)) + intBitsToFloat(R125i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R3i.w)) + intBitsToFloat(R125i.z))); +PV1i.w = R127i.w; +R125i.z = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +PS1i = R125i.z; +// 14 +backupReg0i = R126i.z; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R124i.x))) + intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),-(intBitsToFloat(R126i.w))) + intBitsToFloat(PV1i.w))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R127i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R7i.x = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS0i = R7i.x; +// 15 +backupReg0i = R127i.w; +backupReg0i = R127i.w; +backupReg1i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),-(intBitsToFloat(R124i.x))) + intBitsToFloat(R127i.x))); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R125i.z))); +R127i.z = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV0i.w)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R124i.x))) + intBitsToFloat(backupReg0i))); +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i)); +PS1i = R126i.y; +// 16 +backupReg0i = R126i.x; +backupReg1i = R126i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R127i.y)); +R2i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(backupReg0i)); +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R125i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R126i.z)); +R6i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(PV1i.x)); +PS0i = R6i.y; +// 17 +backupReg0i = R7i.x; +R7i.x = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(R127i.w)); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R125i.y))); +R3i.z = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R3i.z = clampFI32(R3i.z); +PV1i.w = floatBitsToInt(0.25 * intBitsToFloat(backupReg0i)); +R0i.w = floatBitsToInt((intBitsToFloat(R8i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 18 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.w))); +R6i.w = floatBitsToInt((intBitsToFloat(R8i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R6i.w = clampFI32(R6i.w); +PS0i = R4i.z & int(1); +// 19 +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z), intBitsToFloat(PV0i.x))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y), intBitsToFloat(PV0i.y))); +R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x), intBitsToFloat(PV0i.z))); +R8i.z = floatBitsToInt(float(PS0i)); +PS1i = R8i.z; +// 20 +R4i.x = R11i.x; +R4i.y = R11i.y; +R4i.z = floatBitsToInt(roundEven(1.0)); +R8i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R9i.xy)).x); +R13i.xzw = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R11i.xy)).xzw); +R0i.xyz = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z))).xyz); +R1i.xyzw = floatBitsToInt(textureLod(textureUnitPS2, intBitsToFloat(R11i.xy),0.0).xyzw); +R4i.xyz = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z))).xyz); + +#if (reflExtra == 0) // Normal Reflections + +R10i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R10i.xy),R10i.z),cubeMapArrayIndex9),intBitsToFloat(R10i.w)).xyz); + +#elif (reflExtra == 1) // Enhanced Reflections + +R10i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R10i.xy),R10i.z),cubeMapArrayIndex9),0.0).xyz); + +#endif + +R11i.xyz = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R11i.xy)).xyz); +// 0 +R123i.x = floatBitsToInt((intBitsToFloat(R13i.w) * 0.5 + 0.5)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),-(intBitsToFloat(R7i.y))) + intBitsToFloat(R13i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(R8i.w)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(R3i.x))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R7i.x)) + intBitsToFloat(R4i.z))); +PS0i = R127i.w; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(PV0i.x)); +PV1i.y = clampFI32(PV1i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R5i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R6i.x))); +PS1i = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV0i.y)); +// 2 +R126i.x = floatBitsToInt(-(intBitsToFloat(R12i.x)) + intBitsToFloat(PV1i.w)); +PV0i.x = R126i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(PV1i.z)); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x)); +R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),-(intBitsToFloat(R1i.w))) + intBitsToFloat(PS1i))); +PS0i = R125i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R13i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R126i.w))); +// 4 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R7i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(R13i.z))); +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R13i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R2i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(R4i.x))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R6i.y))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R7i.x))); +// 6 +backupReg0i = R127i.w; +backupReg1i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(R4i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(PS1i)) + intBitsToFloat(backupReg0i))); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(backupReg1i))); +PS0i = R4i.w; +// 7 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R3i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R8i.y; +backupReg1i = R5i.z; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.z))); +R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.w))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +// 9 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z), intBitsToFloat(PV0i.w))); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3ced9168)); +PV0i.y = clampFI32(PV0i.y); +// 11 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R6i.z)) + 1.0)); +PV1i.y = R123i.y; +// 12 +R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(R8i.w)) + intBitsToFloat(R0i.x))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z),intBitsToFloat(R8i.w)) + intBitsToFloat(R0i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(R8i.w)) + intBitsToFloat(R0i.y))); +PV0i.w = R123i.w; +// 1 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R10i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R10i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R10i.x))); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R6i.w))); +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.z = R123i.z; +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV1i.z)); +// 5 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R11i.x))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R11i.y))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R11i.z))); +// export +passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Enhancements/cb0e6e8cbec4502a_0000000000000079_ps.txt b/src/BreathOfTheWild/Enhancements/cb0e6e8cbec4502a_0000000000000079_ps.txt new file mode 100644 index 00000000..836356ee --- /dev/null +++ b/src/BreathOfTheWild/Enhancements/cb0e6e8cbec4502a_0000000000000079_ps.txt @@ -0,0 +1,65 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + + +// shader cb0e6e8cbec4502a +// Used for: 1 pass Battle, Camera and Scope Depth of Field Blur + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif + +#define disableDOF $disableDOF + +#if (disableDOF == 0) // Keep DOF Enabled + +int radius = int( roundEven(2.0/uf_fragCoordScale.y) ); +vec2 resolution = vec2( textureSize(textureUnitPS0,0) ); + +void main() { + vec2 center = ( passParameterSem3.xy + passParameterSem3.zw ) / 2.0 ; + vec3 result = vec3(0.0); + float count = 0.0; + for ( int x = 1-radius; x <= radius-1; x+=2 ) { + for ( int y = 1-radius; y <= radius-1; y+=2 ) { + if ( length(vec2(x, y)) <= radius ) { + result += texture( textureUnitPS0, center + vec2(x, y)/resolution ).xyz ; + count += 1.0; + } + } + } + passPixelColor0 = vec4( result / count, 0.0 ); +} + +#elif (disableDOF == 1) // Disable DOF + +void main() { + passPixelColor0 = texture(textureUnitPS0, passParameterSem3.xy); +} + +#endif diff --git a/src/BreathOfTheWild/Enhancements/how_to_make_your_own_preset.txt b/src/BreathOfTheWild/Enhancements/how_to_make_your_own_preset.txt new file mode 100644 index 00000000..b5a79470 --- /dev/null +++ b/src/BreathOfTheWild/Enhancements/how_to_make_your_own_preset.txt @@ -0,0 +1,53 @@ + + -- How to set up your own Clarity Preset -- + +=================================================================== + + Hey, it's Serfrost. I'm writing this out because it's come to our attention that no matter what we really do for presets, it won't really matter in the long run. Every user has a unique monitor / display they use with their PC, yeah? A lot of them are calibrated differently, and they often come with numerous presets that alter colors, brightness, contrast, you name it. Because of this, the presets that look good to me might not look good to you--the presets that look good to Jamie might not look good to you; you get the idea. So I'm writing this hoping you'll take the time to do a few short steps to get you on your way to making the game look the way YOU want it to look on YOUR display! + + Jamie has coded this faithfully and diligently, and he's added a lot of different functions that were previously unavailable with these newer updates. We hope you enjoy this and use it to it's fullest potential. + + This tutorial has been shortened by Slash in order to make use of the new graphic pack to its full potential. + +=================================================================== + + There are 6 steps total. Please read very carefully and with your full attention. As long as you do that, it's relatively just "point and click" and the rest is changing the numbers on your own and testing them to see what they do. + +=================================================================== + + +1) Open up Cemu that's at least version 1.13.0. + + +2) After Cemu opens itself, load the game and your save file. + + +3) Open up the graphic pack menu and select Clarity under Breath of the Wild. + + +4) Open up 37040a485a29d54e_00000000000003c9_ps.txt in the Clarity graphic pack folder. + + +5) You may now edit all the variables in realtime. To view your changes hit "Reload shaders" + + +===============\ + + Note: "Realtime", as in, you can view your changes by using the button. You do not have to stop the game, etc. + + Pro Tip: If time changes too fast for you, you can use Cemuhook's custom timer option (Debug > Custom Timer) to slow down time to 0.125x! + + MAKE SURE YOU CHECK VARIOUS AREAS IN THE GAME TO MAKE SURE YOUR COLOR / SHADOW BALANCING IS CORRECT. + +===============/ + + +6) When you have your variables for your preset where you want them, you don't have to do anything! The file with your preset is already saved. + + -- Make backups of files before making changes. Keep track of your work! -- + + === + + MAKE SURE YOU CHECK VARIOUS AREAS IN THE GAME TO MAKE SURE YOUR COLOR / SHADOW BALANCING IS CORRECT. + + === diff --git a/src/BreathOfTheWild/Enhancements/rules.txt b/src/BreathOfTheWild/Enhancements/rules.txt new file mode 100644 index 00000000..cab4e7ee --- /dev/null +++ b/src/BreathOfTheWild/Enhancements/rules.txt @@ -0,0 +1,156 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Enhancements +path = "The Legend of Zelda: Breath of the Wild/Enhancements" +description = Allows you to change post-processing effects and texture detail to enhance the picture.||Made by Kiri, Jamie, BSoD Gaming, M&&M and Pig. +version = 6 + +[Default] +$preset:int = 10 +$disableClarity:int = 0 +$disableDOF:int = 0 +$reflExtra:int = 0 +$advancedLOD = 0 +$lodBias = 0 +$anisotropy = 1 + +# Clarity Preset + +[Preset] +name = Disabled (Default) +category = Clarity +default = 1 +$disableClarity:int = 1 + +[Preset] +name = Serfrost's Preset (Recommended) +category = Clarity +$preset:int = 10 + +[Preset] +name = Serfrost's Preset (Dim Display) +category = Clarity +$preset:int = 9 + +[Preset] +name = Serfrost's Preset (Bright Display) +category = Clarity +$preset:int = 8 + +[Preset] +name = Bruz's Preset +category = Clarity +$preset:int = 1 + +[Preset] +name = CellHunter's Preset +category = Clarity +$preset:int = 7 + +[Preset] +name = Jamie's Preset +category = Clarity +$preset:int = 3 + +[Preset] +name = BSoD Gaming's Preset +category = Clarity +$preset:int = 2 + +[Preset] +name = The Complaining Gamer's Preset +category = Clarity +$preset:int = 5 + +[Preset] +name = ViskClarity Preset +category = Clarity +$preset:int = 11 + +[Preset] +name = Contrasty Preset +category = Clarity +$preset:int = 4 + +[Preset] +name = Filmic Preset +category = Clarity +$preset:int = 6 + +[Preset] +name = Silentverge's Survival of the Wild Preset (Warmer) +category = Clarity +$preset:int = 12 + +[Preset] +name = Silentverge's Survival of the Wild Preset (Colder) +category = Clarity +$preset:int = 13 + +[Preset] +name = Godot's Mexican Preset +category = Clarity +$preset:int = 14 + +[Preset] +name = User-Defined Preset +category = Clarity +$preset:int = 0 + +# Depth of Field + +[Preset] +name = Enabled +category = Depth Of Field +default = 1 + +[Preset] +name = Disabled (no performance gain) +category = Depth Of Field +$disableDOF:int = 1 + +# Enhanced Reflections + +[Preset] +name = Normal Reflections +category = Reflections +default = 1 + +[Preset] +name = Enhanced Reflections +category = Reflections +$reflExtra:int = 1 + +# Anisotropic Filtering + +[Preset] +name = Extreme (16x) +category = Anisotropic Filtering +$anisotropy = 16 + +[Preset] +name = Ultra (8x, Default) +category = Anisotropic Filtering +default = 1 +$anisotropy = 8 + +[Preset] +name = High (4x) +category = Anisotropic Filtering +$anisotropy = 4 + +[Preset] +name = Medium (2x) +category = Anisotropic Filtering +$anisotropy = 2 + +[Preset] +name = Low (1x) +category = Anisotropic Filtering +$anisotropy = 1 + + +[TextureRedefine] +tileModesExcluded = 0x001 # ignore cpu processed textures (ex. videos) +formatsExcluded = 0x001,0x005,0x007,0x019,0x01a,0x01f,0x122,0x41a,0x806,0x80e,0x816,0x820 # ignore viewports, cubemaps, and shadows +overwriteAnisotropy = $anisotropy diff --git a/src/BreathOfTheWild/Graphics/01ba1a725afa0b96_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/01ba1a725afa0b96_0000000000000000_vs.txt new file mode 100644 index 00000000..2784469b --- /dev/null +++ b/src/BreathOfTheWild/Graphics/01ba1a725afa0b96_0000000000000000_vs.txt @@ -0,0 +1,138 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#else +#define SET_POSITION(_v) gl_Position = _v +#endif +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + + +const float resScale = $height/720.0; + +// Night star (size) + +// shader 01ba1a725afa0b96 +UNIFORM_BUFFER_LAYOUT(1, 0, 0) uniform uniformBlockVS1 +{ +vec4 uf_blockVS1[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(2, 0, 1) uniform uniformBlockVS2 +{ +vec4 uf_blockVS2[1024]; +}; + + +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem1; +layout(location = 1) out vec4 passParameterSem2; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +// 0 +R1i.x = floatBitsToInt(uf_blockVS2[7].z); +R0i.z = R0i.x << int(1); +PV0i.z = R0i.z; +R0i.w = 0x3f800000; +// 1 +R0i.y = PV0i.z + int(1); +R3i.xyzw = floatBitsToInt(uf_blockVS1[R0i.z].xyzw); +R2i.xyzw = floatBitsToInt(uf_blockVS1[R0i.y].xyzw); +// export +gl_PointSize = intBitsToFloat(R1i.x) * resScale; +// 0 +backupReg0i = R0i.w; +backupReg1i = R2i.w; +R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS2[0].x,uf_blockVS2[0].y,uf_blockVS2[0].z,uf_blockVS2[0].w))); +PV0i.x = R1i.x; +PV0i.y = R1i.x; +PV0i.z = R1i.x; +PV0i.w = R1i.x; +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(backupReg1i))); +PS0i = R2i.w; +// 1 +backupReg0i = R0i.w; +backupReg1i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS2[1].x,uf_blockVS2[1].y,uf_blockVS2[1].z,uf_blockVS2[1].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.y = tempi.x; +R3i.w = floatBitsToInt(float(backupReg1i)); +PS1i = R3i.w; +// 2 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS2[2].x,uf_blockVS2[2].y,uf_blockVS2[2].z,uf_blockVS2[2].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.z = tempi.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R0i.w)),vec4(uf_blockVS2[3].x,uf_blockVS2[3].y,uf_blockVS2[3].z,uf_blockVS2[3].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.w = tempi.x; +// export +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w))); +// export +passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +// export +passParameterSem2 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/01bef64ec0cccd53_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/01bef64ec0cccd53_0000000000000000_vs.txt new file mode 100644 index 00000000..b5c9765b --- /dev/null +++ b/src/BreathOfTheWild/Graphics/01bef64ec0cccd53_0000000000000000_vs.txt @@ -0,0 +1,124 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 01bef64ec0cccd53 +// Used for: Fixing clouds in non-updated versions +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R0i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[0].z)/resXScale)); +R0i.y = floatBitsToInt(intBitsToFloat(R0i.y) / 2.0); +PS0i = R0i.y; +R3i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; +// export +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[0].w)/resYScale)); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +R0i.z = R0i.y; +R127i.w = floatBitsToInt(float(R3i.x)); +PS0i = R127i.w; +// 1 +R0i.w = PV0i.x; +R127i.z = floatBitsToInt(float(R3i.y)); +PS1i = R127i.z; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.w)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PV1i.x = R3i.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 4 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedVS[0].x)*resXScale) + 0.5)); +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); +PV0i.y = R3i.y; +// 5 +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedVS[0].y)*resYScale) + 0.5)); +// export +passParameterSem1 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.z)); +} diff --git a/src/BreathOfTheWild/Graphics/0b9b8f5dfa16ad58_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/0b9b8f5dfa16ad58_0000000000000000_vs.txt new file mode 100644 index 00000000..7ff090c4 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/0b9b8f5dfa16ad58_0000000000000000_vs.txt @@ -0,0 +1,135 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 0b9b8f5dfa16ad58 +// Used For: Horizontal Menu Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +R127f.x = (R1f.x > 0.0)?1.0:0.0; +R127f.x /= 2.0; +R127f.y = -(R1f.y); +PV0f.y = R127f.y; +R127f.z = (0.0 > R1f.x)?1.0:0.0; +R127f.z /= 2.0; +R127f.w = 1.0; +PV0f.w = R127f.w; +R126f.x = intBitsToFloat(uf_remappedVS[0].z) * (intBitsToFloat(0x3fae8a72)/resXScale); +PS0f = R126f.x; +// 1 +R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w))); +PV1f.x = R0f.x; +PV1f.y = R0f.x; +PV1f.z = R0f.x; +PV1f.w = R0f.x; +R126f.w = (PV0f.y > 0.0)?1.0:0.0; +R126f.w /= 2.0; +PS1f = R126f.w; +// 2 +backupReg0f = R127f.y; +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.y = tempf.x; +R127f.y = (0.0 > backupReg0f)?1.0:0.0; +R127f.y /= 2.0; +PS0f = R127f.y; +// 3 +backupReg0f = R127f.x; +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R0f.z = tempf.x; +R127f.x = backupReg0f + -(R127f.z); +PS1f = R127f.x; +// 4 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.w = tempf.x; +PS0f = R126f.w + -(R127f.y); +// 5 +PV1f.y = PS0f + 0.5; +PV1f.z = R127f.x + 0.5; +// 6 +R1f.x = PV1f.y; +R1f.y = PV1f.z + -(R126f.x); +R1f.z = PV1f.z + R126f.x; +R1f.w = PV1f.z; +// export +SET_POSITION(vec4(R0f.x, R0f.y, R0f.z, R0f.w)); +// export +passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} diff --git a/src/BreathOfTheWild/Graphics/0bcd653c18367d59_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/0bcd653c18367d59_0000000000000000_vs.txt new file mode 100644 index 00000000..e3480698 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/0bcd653c18367d59_0000000000000000_vs.txt @@ -0,0 +1,239 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 0bcd653c18367d59 +// Used for: Restoring the native BotW Anti-Aliasing implementation +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +// 0 +backupReg0i = R0i.x; +PV0i.x = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.y = 0x3f800000; +PV0i.z = 0x3f800000; +PV0i.w = 0x40400000; +R127i.z = 0xbf800000; +PS0i = R127i.z; +// 1 +R123i.x = ((PV0i.x == 0)?(PV0i.z):(0xc0400000)); +PV1i.x = R123i.x; +R123i.y = ((PV0i.x == 0)?(PV0i.w):(0xbf800000)); +PV1i.y = R123i.y; +R0i.z = 0; +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3b808081)); +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 2 +R2i.x = ((R0i.x == 0)?(R127i.z):(PV1i.y)); +PV0i.x = R2i.x; +R2i.y = ((R0i.x == 0)?(R127i.y):(PV1i.x)); +PV0i.y = R2i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(0.5)); +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +R0i.w = 0x3d2aaaab; +R0i.x = 0x3e000000; +PS0i = R0i.x; +// 3 +R5i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PV1i.x = R5i.x; +R0i.y = 0; +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R4i.w = uf_remappedVS[1].z; +R4i.w = floatBitsToInt(intBitsToFloat(R4i.w) / 2.0); +R3i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +PS1i = R3i.x; +// 4 +R6i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R6i.x = floatBitsToInt(intBitsToFloat(R6i.x) * 2.0); +R5i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + 0.5)); +R7i.z = PV1i.x; +R3i.w = R2i.x; +R3i.w = floatBitsToInt(intBitsToFloat(R3i.w) / 2.0); +R6i.y = uf_remappedVS[3].y; +R6i.y = floatBitsToInt(intBitsToFloat(R6i.y) * 2.0); +PS0i = R6i.y; +R1i.w = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.wz)).x); +R1i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.xy)).xyz); +// export +SET_POSITION(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +// export +// skipped export to semanticId 255 +// 0 +R126i.x = floatBitsToInt(intBitsToFloat(R3i.x) + -(0.5)); +R125i.y = floatBitsToInt(intBitsToFloat(R4i.w) + -(0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R7i.w = R5i.y; +PV0i.w = R7i.w; +R127i.y = floatBitsToInt(-(intBitsToFloat(R6i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) / 2.0); +PS0i = R127i.y; +// 1 +R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.y))); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +R126i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R3i.x)); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); +PS1i = R127i.w; +// 2 +backupReg0i = R127i.y; +R125i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); +R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R125i.y)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(backupReg0i))); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); +PS0i = R125i.w; +// 3 +backupReg0i = R126i.y; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].w)/resYScale)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i))); +R124i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); +R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); +PS1i = R125i.z; +// 4 +backupReg0i = R126i.x; +backupReg1i = R127i.w; +backupReg2i = R127i.y; +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R127i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R125i.y)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg2i))); +PS0i = R4i.w; +// 5 +backupReg0i = R127i.z; +R2i.x = floatBitsToInt(intBitsToFloat(R125i.w) * 1.5); +R2i.y = floatBitsToInt(intBitsToFloat(R127i.x) * 1.5); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R125i.x))); +R6i.w = backupReg0i; +R6i.z = R126i.w; +PS1i = R6i.z; +// 6 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R124i.w)) + 0.5)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R125i.z)) + 0.5)); +R5i.z = R126i.y; +R5i.w = R126i.z; +R3i.z = R127i.y; +PS0i = R3i.z; +// 7 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(R127i.w))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R124i.z))); +R4i.z = R4i.w; +R3i.w = R126i.x; +R4i.w = R127i.z; +PS1i = R4i.w; +// export +passParameterSem4 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +// export +// skipped export to semanticId 255 +// export +passParameterSem0 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.z)); +// export +passParameterSem6 = vec4(intBitsToFloat(R7i.x), intBitsToFloat(R7i.x), intBitsToFloat(R7i.z), intBitsToFloat(R7i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/0d6127fbed646d2b_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/0d6127fbed646d2b_0000000000000000_vs.txt new file mode 100644 index 00000000..a6a0074e --- /dev/null +++ b/src/BreathOfTheWild/Graphics/0d6127fbed646d2b_0000000000000000_vs.txt @@ -0,0 +1,203 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 0d6127fbed646d2b +// Used for: Fixing Ambient-Occlusion +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem5; +layout(location = 2) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +// 0 +backupReg0i = R0i.x; +PV0i.x = 0x3f800000; +PV0i.y = 0x40400000; +PV0i.z = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.w = 0x3f800000; +R127i.x = 0xbf800000; +PS0i = R127i.x; +// 1 +R3i.x = uf_remappedVS[0].z; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].z) * intBitsToFloat(0x3b808081)); +R123i.z = ((PV0i.z == 0)?(PV0i.x):(0xc0400000)); +PV1i.z = R123i.z; +R123i.w = ((PV0i.z == 0)?(PV0i.y):(0xbf800000)); +PV1i.w = R123i.w; +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 2 +R2i.x = ((R0i.x == 0)?(R127i.x):(PV1i.w)); +PV0i.x = R2i.x; +R2i.y = ((R0i.x == 0)?(R127i.w):(PV1i.z)); +PV0i.y = R2i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + -(0.5)); +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +R0i.w = 0x3d2aaaab; +R0i.y = 0; +PS0i = R0i.y; +// 3 +R1i.xyz = ivec3(0x3e000000,0,floatBitsToInt(-(intBitsToFloat(PV0i.y)))); +R1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0); +R4i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PS1i = R4i.x; +R0i.w = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.wy)).x); +R0i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R1i.xy)).xyz); +// export +SET_POSITION(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +// export +// skipped export to semanticId 255 +// 0 +R126i.x = floatBitsToInt(intBitsToFloat(R3i.x) + -(0.5)); +R4i.y = floatBitsToInt((intBitsToFloat(R1i.z) * 0.5 + 0.5)); +PV0i.y = R4i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R2i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R125i.z = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +PS0i = R125i.z; +// 1 +R123i.x = floatBitsToInt((intBitsToFloat(uf_remappedVS[3].w) * 2.0 / resYScale + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].x))); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +R1i.z = uf_remappedVS[4].y; +R1i.z = floatBitsToInt(intBitsToFloat(R1i.z) * 2.0); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R3i.x)); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R1i.w)); +PS1i = R127i.z; +// 2 +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[3].y) * resYScale); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[3].x) * resXScale); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R126i.z = floatBitsToInt((intBitsToFloat(uf_remappedVS[3].z) * 2.0 / resXScale + intBitsToFloat(R4i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R126i.x)); +R124i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R125i.z)); +PS0i = R124i.z; +// 3 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R127i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.w))); +R127i.z = floatBitsToInt((-(intBitsToFloat(uf_remappedVS[3].w)/resYScale) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R4i.y))); +R123i.w = floatBitsToInt((-(intBitsToFloat(uf_remappedVS[3].z)/resXScale) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R4i.x))); +PV1i.w = R123i.w; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV0i.y))); +PS1i = R127i.w; +// 4 +backupReg0i = R126i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R125i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(R126i.x)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R127i.x))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(backupReg0i))); +R3i.z = PV1i.w; +PS0i = R3i.z; +// 5 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.y))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R124i.z))); +R3i.w = R127i.z; +R4i.z = R127i.y; +PS1i = R4i.z; +// 6 +R3i.x = floatBitsToInt(intBitsToFloat(R127i.w) * 0.25); +R3i.y = floatBitsToInt(intBitsToFloat(R126i.z) * 0.25); +R1i.z = R126i.w; +R4i.w = R125i.x; +R1i.w = PV1i.z; +PS0i = R1i.w; +// export +passParameterSem0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +// export +passParameterSem5 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +// export +passParameterSem6 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/0f2b9ee517917425_00000000000003c9_ps.txt b/src/BreathOfTheWild/Graphics/0f2b9ee517917425_00000000000003c9_ps.txt new file mode 100644 index 00000000..ce08a509 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/0f2b9ee517917425_00000000000003c9_ps.txt @@ -0,0 +1,1045 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 0f2b9ee517917425 - dumped cemu 1.15 +// Used for: Restoring the native BotW Anti-Aliasing implementation in inventory screen + +const float resX = float($width)/float($gameWidth); +const float resY = float($height)/float($gameHeight); +#define fxaa $fxaa + +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform vec2 uf_fragCoordScale; +#endif + +#if (fxaa == 0) // Disabled AA + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; + +void main() +{ +passPixelColor0 = texture(textureUnitPS0, passParameterSem2.xy); +} + +#elif (fxaa == 1) + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock + +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); // These variables make the difference +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem2); +if( activeMaskStackC[1] == true ) { +R2i.xzw = floatBitsToInt(textureGather(textureUnitPS1, intBitsToFloat(R0i.xy)).xzw); +R1i.xz = floatBitsToInt(textureGather(textureUnitPS1, intBitsToFloat(R0i.zw)).xz); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); +R0i.w = floatBitsToInt(textureOffset(textureUnitPS1, intBitsToFloat(R0i.xy),ivec2(1,-1)).x); +R1i.y = floatBitsToInt(textureOffset(textureUnitPS1, intBitsToFloat(R0i.xy),ivec2(-1,1)).x); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 --- Point of Interest 1 +PV0i.x = floatBitsToInt(min(intBitsToFloat(R1i.x), intBitsToFloat(R1i.z)) / resX ); // Divide looks better for minimum - Must place the varaibles in that location of the round brackets to use floats correctly +PV0i.y = floatBitsToInt(max(intBitsToFloat(R2i.x), intBitsToFloat(R2i.z)) * resY ); // Multiply looks beeter for max - Must place the varaibles in that location of the round brackets to use floats correctly +PV0i.z = floatBitsToInt(max(intBitsToFloat(R1i.x), intBitsToFloat(R1i.z)) * resX ); // Multiply looks better for max - Must place the varaibles in that location of the round brackets to use floats correctly +PV0i.w = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.z))); +// 1 ---Point of Interest 2 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.w))); +// 2 +PV0i.z = floatBitsToInt(min(intBitsToFloat(R2i.w), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(max(intBitsToFloat(R2i.w), intBitsToFloat(PV1i.x))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[0].x))); +R1i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R2i.y = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[0].y))); +// 5 +predResult = (intBitsToFloat(R1i.w) >= intBitsToFloat(R2i.y)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.xyz = floatBitsToInt(vec3(intBitsToFloat(R2i.z),intBitsToFloat(R1i.x),intBitsToFloat(R2i.z)) + vec3(intBitsToFloat(R0i.w),intBitsToFloat(R1i.y),intBitsToFloat(R1i.x))); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(R1i.z)); +PV0i.w = R127i.w; +R127i.y = R1i.z; +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +PS0i = R127i.y; +// 1 +PV1i.x = R2i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R0i.w)); +R127i.z = floatBitsToInt((-(intBitsToFloat(R2i.w)) * 2.0 + intBitsToFloat(PV0i.z))); +PV1i.w = PV0i.w; +PS1i = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(R1i.y)); +// 2 +R127i.x = floatBitsToInt((-(intBitsToFloat(R2i.w)) * 2.0 + intBitsToFloat(PV1i.w))); +R1i.y = R2i.z; +PV0i.y = R1i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) + -(intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(R127i.y))); +PS0i = R126i.x; +// 3 +backupReg0i = R127i.z; +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((-(intBitsToFloat(R1i.x)) * 2.0 + intBitsToFloat(R126i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +R127i.z = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +R123i.w = floatBitsToInt((-(intBitsToFloat(PV0i.y)) * 2.0 + intBitsToFloat(PS0i))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 4 +backupReg0i = R126i.y; +PV0i.x = floatBitsToInt(max(intBitsToFloat(PV1i.x), -(intBitsToFloat(PV1i.x)))); +R126i.y = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); +PV0i.z = floatBitsToInt(max(intBitsToFloat(R127i.x), -(intBitsToFloat(R127i.x)))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PS1i)); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(backupReg0i)); +PS0i = R126i.w; +// 5 +backupReg0i = R127i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R126i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +R127i.y = floatBitsToInt(1.0 / intBitsToFloat(R1i.w)); // Rli.w * 2 has the same affect as line 85------------------------------------------------------ +PS1i = R127i.y; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV1i.y)); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV1i.x)); +// 7 +PV1i.x = ((intBitsToFloat(PV0i.y) >= intBitsToFloat(R127i.z))?int(0xFFFFFFFF):int(0x0)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3daaaaab)); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.w) + -(intBitsToFloat(PV1i.y))); +R4i.z = ((PV1i.x == 0)?(0x3f800000):(0)); +PV0i.z = R4i.z; +R5i.w = ((PV1i.x == 0)?(0):(0x3f800000)); +PV0i.w = R5i.w; +// 9 --- Point fo Interest +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[1].x))); // Default implmentation division took place here +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[1].x) / resX)); // Default implmentation division took place here +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[1].y) / resY)); // Default implmentation division took place here +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PV0i.z))); +// 10 --- Point of Interest +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(R127i.y)); // Divide looks good same as below line ---------------------------------------------------------------------- +R127i.x = clampFI32(R127i.x); // Divide looks good same as above line---------------------------------------------------------------------------------------------------- +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(PV1i.y))); // Default implmentation division took place here +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R5i.w)) + intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R4i.z))); +// 11 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R5i.w)) + intBitsToFloat(PV0i.w))); +PV1i.x = R124i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z)); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c00000) + intBitsToFloat(0xc1700000))); +PV1i.w = R123i.w; +// 12 +R125i.x = floatBitsToInt(max(intBitsToFloat(PV1i.y), -(intBitsToFloat(PV1i.y)))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.x)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(0x41200000))); +PV0i.z = R123i.z; +// 13 +R126i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.z))); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +R126i.w = ((intBitsToFloat(R125i.x) >= intBitsToFloat(PV1i.x))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = R126i.w; +// 15 +R6i.x = floatBitsToInt(((PV0i.w == 0)?(intBitsToFloat(R127i.y)):(-(intBitsToFloat(R127i.y))))); +PV1i.x = R6i.x; +R123i.z = ((PV0i.w == 0)?(R126i.x):(R125i.x)); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.x))); +// 16 --- Point of Interest +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV1i.x))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); // Important Doubling improves curves and clarity +R123i.y = ((R126i.w == 0)?(R124i.x):(R127i.z)); +PV0i.y = R123i.y; +R3i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f400000)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R4i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * 0.25); +PS0i = R4i.x; +// 17 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.w)); +R4i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.y)); +R4i.w = floatBitsToInt(intBitsToFloat(R4i.w) / 2.0); +PV1i.w = R4i.w; +// 18 +R3i.x = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV1i.x)); +R3i.y = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(PV1i.z)); +R1i.z = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV1i.x)); +R1i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.z)); +R2i.x = floatBitsToInt(intBitsToFloat(R2i.w) + -(intBitsToFloat(PV1i.w))); +PS0i = R2i.x; +} +if( activeMaskStackC[2] == true ) { +R1i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R2i.x; +R2i.x = ((0.0 > intBitsToFloat(backupReg0i))?int(0xFFFFFFFF):int(0x0)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.x)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.y)); +// 1 +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.z))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +R3i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(R1i.z))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R1i.w))); +} +if( activeMaskStackC[2] == true ) { +R1i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).x); +R1i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.w)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.z)); +// 1 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +// 2 +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.x))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +backupReg0i = R2i.z; +backupReg1i = R2i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.w)) + intBitsToFloat(R3i.x))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.w)) + intBitsToFloat(R3i.y))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg1i))); +} +if( activeMaskStackC[2] == true ) { +R3i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).x); +R3i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.x)); +// 1 +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +// 2 +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.w))); +// 3 +R123i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R123i.y; +R123i.z = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +// 4 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg1i))); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(R2i.z))); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R2i.w))); +} +if( activeMaskStackC[2] == true ) { +R2i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).x); +R2i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R2i.w)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R2i.z)); +// 1 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +// 2 +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.x))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +backupReg0i = R1i.z; +backupReg1i = R1i.w; +R3i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.w)) + intBitsToFloat(R1i.x))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.w)) + intBitsToFloat(R1i.y))); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg1i))); +} +if( activeMaskStackC[2] == true ) { +R1i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.x)); +// 1 +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +// 2 +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.w))); +// 3 +R123i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R123i.y; +R123i.z = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +// 4 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +R3i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg1i))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(R1i.z))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R1i.w))); +} +if( activeMaskStackC[2] == true ) { +R1i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).x); +R1i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.w)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.z)); +// 1 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +// 2 +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.x))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +// 5 +backupReg0i = R2i.z; +backupReg1i = R2i.w; +R1i.x = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * 1.5 + intBitsToFloat(R3i.x))); +R1i.y = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * 1.5 + intBitsToFloat(R3i.y))); +R2i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * 1.5 + intBitsToFloat(backupReg0i))); +R2i.w = floatBitsToInt((intBitsToFloat(PV0i.y) * 1.5 + intBitsToFloat(backupReg1i))); +} +if( activeMaskStackC[2] == true ) { +R3i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).x); +R3i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.x)); +// 1 +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.z))); +// 3 +R123i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.x))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 5 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.z)) + vec3(-(intBitsToFloat(PV0i.w)),-(intBitsToFloat(PV0i.z)),intBitsToFloat(PV0i.x))); +R1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.y)); +} +if( activeMaskStackC[2] == true ) { +R2i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).x); +R2i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R2i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R2i.w)); +// 1 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.x))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 5 +backupReg0i = R1i.z; +backupReg1i = R1i.w; +R3i.x = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(PV0i.x))); +R3i.y = floatBitsToInt(intBitsToFloat(R1i.y) + -(intBitsToFloat(PV0i.w))); +R1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.z)); +R1i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.y)); +} +if( activeMaskStackC[2] == true ) { +R1i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.x)); +// 1 +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.z))); +// 3 +R123i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.x))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 5 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +R3i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(PV0i.w))); +R3i.y = floatBitsToInt(intBitsToFloat(backupReg1i) + -(intBitsToFloat(PV0i.z))); +R2i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x)); +R2i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.y)); +} +if( activeMaskStackC[2] == true ) { +R1i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).x); +R1i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.w)); +// 1 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.x))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 5 +backupReg0i = R2i.z; +backupReg1i = R2i.w; +R1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + -(intBitsToFloat(PV0i.x))); +R1i.y = floatBitsToInt(intBitsToFloat(R3i.y) + -(intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.z)); +R2i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.y)); +} +if( activeMaskStackC[2] == true ) { +R3i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).x); +R3i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.x)); +// 1 +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.z))); +// 3 +R123i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.x))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 4.0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 4.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 4.0); +// 5 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(R2i.z)) + vec3(-(intBitsToFloat(PV0i.w)),-(intBitsToFloat(PV0i.z)),intBitsToFloat(PV0i.x))); +R1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.y)); +} +if( activeMaskStackC[2] == true ) { +R2i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).x); +R2i.z = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R2i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R2i.w)); +// 1 +PV1i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(intBitsToFloat(PV0i.z)))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.x) + -(intBitsToFloat(PV1i.x))); +// 3 +R123i.z = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R123i.z; +R123i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +// 5 +backupReg0i = R1i.z; +backupReg1i = R1i.w; +R5i.x = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * intBitsToFloat(0x41000000) + intBitsToFloat(R1i.x))); +R5i.y = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * intBitsToFloat(0x41000000) + intBitsToFloat(R1i.y))); +R1i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x41000000) + intBitsToFloat(backupReg0i))); +R1i.w = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x41000000) + intBitsToFloat(backupReg1i))); +} +if( activeMaskStackC[2] == true ) { +R1i.y = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R5i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R5i.x))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(R1i.y)); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + -(intBitsToFloat(R5i.y))); +PS0i = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R1i.z)); +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R1i.w)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PS0i))); +PV1i.z = ((0.0 > intBitsToFloat(PV0i.z))?int(0xFFFFFFFF):int(0x0)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.y))); +PS1i = ((0.0 > intBitsToFloat(PV0i.x))?int(0xFFFFFFFF):int(0x0)); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = (PV1i.z != R2i.x)?int(0xFFFFFFFF):int(0x0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R126i.w = (PS1i != R2i.x)?int(0xFFFFFFFF):int(0x0); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); +R126i.y = floatBitsToInt(min(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.x))); +PV1i.z = ((intBitsToFloat(PV0i.x) > intBitsToFloat(PV0i.z))?int(0xFFFFFFFF):int(0x0)); +// 4 +backupReg0i = R127i.y; +R127i.y = ((PV1i.z == 0)?(R126i.w):(backupReg0i)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 5 +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +// 6 +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 0.5); +// 7 +R123i.x = ((R127i.y == 0)?(0):(PV0i.y)); +PV1i.x = R123i.x; +// 8 +PV0i.w = floatBitsToInt(max(intBitsToFloat(R3i.z), intBitsToFloat(PV1i.x))); +// 9 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV0i.w))); +// 10 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg1i))); +} +if( activeMaskStackC[2] == true ) { +R3i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +passPixelColor0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +} + +#elif (fxaa == 2) // NVIDIA FXAA + +//-----------------------------settings-------------------------------------// + +#define Subpix $subPix //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal. +#define EdgeThreshold $edgeThreshold //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm. +#define EdgeThresholdMin $edgeThresholdMin //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks. + +//--------------------------------------------------------------------------// + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; + + +#define FXAA_QUALITY_PS 12 +#define FXAA_QUALITY_P0 1.0 +#define FXAA_QUALITY_P1 1.0 +#define FXAA_QUALITY_P2 1.0 +#define FXAA_QUALITY_P3 1.0 +#define FXAA_QUALITY_P4 1.0 +#define FXAA_QUALITY_P5 1.5 +#define FXAA_QUALITY_P6 2.0 +#define FXAA_QUALITY_P7 2.0 +#define FXAA_QUALITY_P8 2.0 +#define FXAA_QUALITY_P9 2.0 +#define FXAA_QUALITY_P10 4.0 +#define FXAA_QUALITY_P11 8.0 + +#define FxaaBool bool +#define FxaaDiscard discard +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 ivec2 +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTex sampler2D + +#define FxaaTexTop(t, p) textureLod(t, p, 0.0) +#define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) + +#define FxaaTexAlpha4(t, p) textureGather(t, p, 3) +#define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) +#define FxaaTexGreen4(t, p) textureGather(t, p, 1) +#define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + +FxaaFloat4 FxaaPixelShader( + FxaaFloat2 pos, + FxaaTex tex, + FxaaTex lum, + FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat fxaaQualitySubpix, + FxaaFloat fxaaQualityEdgeThreshold, + FxaaFloat fxaaQualityEdgeThresholdMin +) { + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = vec4(FxaaTexTop(tex, posM).xyz, FxaaTexTop(lum, posM).x); + #define lumaM rgbyM.w + FxaaFloat4 luma4A = textureGather(lum, posM); + FxaaFloat4 luma4B = textureGatherOffset(lum, posM, FxaaInt2(-1, -1)); + #define lumaE luma4A.z + #define lumaS luma4A.x + #define lumaSE luma4A.y + #define lumaNW luma4B.w + #define lumaN luma4B.z + #define lumaW luma4B.x + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; + if(earlyExit) + return rgbyM; + FxaaFloat lumaNE = FxaaTexOff(lum, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy).x; + FxaaFloat lumaSW = FxaaTexOff(lum, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy).x; + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaTexTop(lum, posN).x; + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaTexTop(lum, posP).x; + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaTexTop(lum, posN.xy).x; + if(!doneP) lumaEndP = FxaaTexTop(lum, posP.xy).x; + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; + } + #endif + } + #endif + } + #endif + } + #endif + } + #endif + } + #endif + } + #endif + } + #endif + } + #endif + } + #endif + } + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} + +ivec2 resolution = textureSize(textureUnitPS0,0); +vec2 RcpFrame = vec2(1.0 / float(resolution.x), 1.0 / float(resolution.y)); +void main() +{ +passPixelColor0 = FxaaPixelShader(passParameterSem2.xy, textureUnitPS0, textureUnitPS1, RcpFrame, Subpix, EdgeThreshold, EdgeThresholdMin); +} + +#endif \ No newline at end of file diff --git a/src/BreathOfTheWild/Graphics/141f484aff9b9f5a_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/141f484aff9b9f5a_0000000000000000_vs.txt new file mode 100644 index 00000000..51330e7d --- /dev/null +++ b/src/BreathOfTheWild/Graphics/141f484aff9b9f5a_0000000000000000_vs.txt @@ -0,0 +1,102 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 141f484aff9b9f5a +// Used for: Anti-Aliasing Color Mix + +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[3]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[3]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem2; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R123f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = intBitsToFloat(uf_remappedVS[0].x); +R1f.w = 1.0; +PS0f = intBitsToFloat(uf_remappedVS[1].x) + 0.5; +// 1 +R123f.x = (mul_nonIEEE(-(PS0f),intBitsToFloat(uf_remappedVS[2].y)/resYScale) + R2f.y); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(-(PS0f),intBitsToFloat(uf_remappedVS[2].x)/resXScale) + R2f.x); +PV1f.y = R123f.y; +// 2 +R2f.z = PV1f.y; +R2f.w = PV1f.x; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem2 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +} diff --git a/src/BreathOfTheWild/Graphics/15afdae4307b9a3d_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/15afdae4307b9a3d_0000000000000000_vs.txt new file mode 100644 index 00000000..2d3032d0 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/15afdae4307b9a3d_0000000000000000_vs.txt @@ -0,0 +1,103 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 15afdae4307b9a3d +// Used for: Vertical Ambient-Occlusion Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = -(1.0); +R1f.w = 1.0; +R0f.x = R2f.x; +PS0f = R0f.x; +// 1 +backupReg0f = R2f.y; +R0f.y = R2f.y; +R2f.z = R2f.y + intBitsToFloat(uf_remappedVS[0].y)/resYScale; +R2f.w = R2f.y; +R2f.y = backupReg0f + -(intBitsToFloat(uf_remappedVS[0].y))/resYScale; +PS1f = R2f.y; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +// skipped export to semanticId 255 +} diff --git a/src/BreathOfTheWild/Graphics/1a14de8e58d5b30a_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/1a14de8e58d5b30a_0000000000000000_vs.txt new file mode 100644 index 00000000..936e95f8 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/1a14de8e58d5b30a_0000000000000000_vs.txt @@ -0,0 +1,248 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 1a14de8e58d5b30a +// Used for: Restoring the native BotW Anti-Aliasing implementation +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 2) out vec4 passParameterSem2; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 4) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +// 0 +backupReg0i = R0i.x; +PV0i.x = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.y = 0x3f800000; +PV0i.z = 0x3f800000; +PV0i.w = 0x40400000; +R127i.z = 0xbf800000; +PS0i = R127i.z; +// 1 +R123i.x = ((PV0i.x == 0)?(PV0i.z):(0xc0400000)); +PV1i.x = R123i.x; +R123i.y = ((PV0i.x == 0)?(PV0i.w):(0xbf800000)); +PV1i.y = R123i.y; +R0i.z = 0; +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3b808081)); +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 2 +R2i.x = ((R0i.x == 0)?(R127i.z):(PV1i.y)); +PV0i.x = R2i.x; +R2i.y = ((R0i.x == 0)?(R127i.y):(PV1i.x)); +PV0i.y = R2i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(0.5)); +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +R0i.w = 0x3ec00000; +R0i.x = 0x3eeaaaab; +PS0i = R0i.x; +// 3 +R1i.x = 0x3d2aaaab; +R0i.y = 0; +R1i.z = 0; +R1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R5i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PS1i = R5i.x; +R3i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.wz)).xyz); +R0i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.xy)).xyz); +R4i.w = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R1i.xz)).y); +// export +SET_POSITION(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +// 0 +R127i.x = uf_remappedVS[1].z; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +PV0i.x = R127i.x; +R5i.y = floatBitsToInt((intBitsToFloat(R1i.w) * 0.5 + 0.5)); +PV0i.y = R5i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); +R127i.w = R2i.x; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); +R1i.z = R5i.x; +PS0i = R1i.z; +// 1 +backupReg0i = R2i.y; +R2i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) * 2.0); +PV1i.x = R2i.x; +R2i.y = uf_remappedVS[3].y; +R2i.y = floatBitsToInt(intBitsToFloat(R2i.y) * 2.0); +PV1i.y = R2i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0); +R1i.w = PV0i.y; +PV1i.w = R1i.w; +R126i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(0.5)); +PS1i = R126i.y; +// 2 +backupReg0i = R127i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); +PS0i = R127i.y; +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.z)); +R125i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.y)); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.x)); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); +PS1i = R125i.w; +// 4 +backupReg0i = R127i.y; +backupReg1i = R126i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV1i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(backupReg0i))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i)) + intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); +R125i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); +R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0); +PS0i = R125i.z; +// 5 +backupReg0i = R126i.x; +backupReg1i = R126i.w; +backupReg2i = R126i.y; +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R126i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +R124i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(backupReg2i)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R125i.y))); +PS1i = R124i.w; +// 6 +backupReg0i = R0i.y; +backupReg1i = R0i.x; +backupReg2i = R125i.w; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R3i.z)) + intBitsToFloat(R0i.z)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R3i.y)) + intBitsToFloat(backupReg0i)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg1i)); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R127i.z))); +R2i.z = backupReg2i; +PS0i = R2i.z; +// 7 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R5i.y)) + intBitsToFloat(R3i.x))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(R3i.y))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R5i.y)) + intBitsToFloat(R3i.z))); +R2i.w = R126i.z; +R5i.z = R127i.y; +PS1i = R5i.z; +// 8 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R127i.w)) + 0.5)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R125i.z)) + 0.5)); +R3i.z = R126i.y; +R5i.w = R127i.x; +R3i.w = R126i.x; +PS0i = R3i.w; +// 9 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R126i.w))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R124i.z))); +R0i.z = R124i.w; +R0i.w = R125i.w; +// export +passParameterSem2 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +// export +// skipped export to semanticId 255 +// export +passParameterSem0 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +// export +passParameterSem6 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.x), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/22c410044398c7af_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/22c410044398c7af_0000000000000000_vs.txt new file mode 100644 index 00000000..6588850e --- /dev/null +++ b/src/BreathOfTheWild/Graphics/22c410044398c7af_0000000000000000_vs.txt @@ -0,0 +1,103 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 22c410044398c7af +// Fixed radius blur +// shadow pass blur v +const float resScale = $shadowRes; + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = -(1.0); +R1f.w = 1.0; +PS0f = intBitsToFloat(uf_remappedVS[0].y) / resScale * intBitsToFloat(0x3fae8a72); +// 1 +backupReg0f = R2f.y; +R0f.x = R2f.x; +R0f.y = R2f.y; +R2f.z = R2f.y + PS0f; +R2f.w = R2f.y; +R2f.y = backupReg0f + -(PS0f); +PS1f = R2f.y; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +// skipped export to semanticId 255 +} diff --git a/src/BreathOfTheWild/Graphics/2a2f55a2b2d64474_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/2a2f55a2b2d64474_0000000000000000_vs.txt new file mode 100644 index 00000000..68b0cecb --- /dev/null +++ b/src/BreathOfTheWild/Graphics/2a2f55a2b2d64474_0000000000000000_vs.txt @@ -0,0 +1,107 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 2a2f55a2b2d64474 +// Fixed radius blur +// shadow pass blur h +const float resScale = $shadowRes; + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = -(1.0); +R1f.w = 1.0; +R127f.x = intBitsToFloat(uf_remappedVS[0].x) / resScale * intBitsToFloat(0x3fae8a72); +PS0f = R127f.x; +// 1 +R3f.x = R2f.x; +R3f.y = R2f.y; +R0f.z = R2f.x + PS0f; +R0f.w = R2f.x; +R0f.x = R2f.y; +PS1f = R0f.x; +// 2 +R0f.y = R2f.x + -(R127f.x); +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +// export +// skipped export to semanticId 255 +} diff --git a/src/BreathOfTheWild/Graphics/381d034349896360_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/381d034349896360_0000000000000000_vs.txt new file mode 100644 index 00000000..46243c13 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/381d034349896360_0000000000000000_vs.txt @@ -0,0 +1,132 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 381d034349896360 +// Used for: Horizontal Volumetric Light Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +R127f.x = -(R1f.y); +PV0f.x = R127f.x; +R127f.y = (R1f.x > 0.0)?1.0:0.0; +R127f.y /= 2.0; +R127f.z = (0.0 > R1f.x)?1.0:0.0; +R127f.z /= 2.0; +R127f.w = 1.0; +PV0f.w = R127f.w; +// 1 +R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[0].x),intBitsToFloat(uf_remappedVS[0].y),intBitsToFloat(uf_remappedVS[0].z),intBitsToFloat(uf_remappedVS[0].w))); +PV1f.x = R0f.x; +PV1f.y = R0f.x; +PV1f.z = R0f.x; +PV1f.w = R0f.x; +R126f.z = (PV0f.x > 0.0)?1.0:0.0; +R126f.z /= 2.0; +PS1f = R126f.z; +// 2 +backupReg0f = R127f.x; +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.y = tempf.x; +R127f.x = (0.0 > backupReg0f)?1.0:0.0; +R127f.x /= 2.0; +PS0f = R127f.x; +// 3 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R0f.z = tempf.x; +R126f.w = R127f.y + -(R127f.z); +PS1f = R126f.w; +// 4 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.w = tempf.x; +PS0f = R126f.z + -(R127f.x); +// 5 +PV1f.x = PS0f + 0.5; +PV1f.y = R126f.w + 0.5; +// 6 +R1f.x = PV1f.x; +R1f.y = (-(intBitsToFloat(uf_remappedVS[4].z)) * 0.5 / resXScale + PV1f.y); +R1f.z = (intBitsToFloat(uf_remappedVS[4].z) * 0.5 / resXScale + PV1f.y); +R1f.w = PV1f.y; +// export +SET_POSITION(vec4(R0f.x, R0f.y, R0f.z, R0f.w)); +// export +passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} diff --git a/src/BreathOfTheWild/Graphics/44b73ce02e05c2e6_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/44b73ce02e05c2e6_0000000000000000_vs.txt new file mode 100644 index 00000000..5f699df3 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/44b73ce02e05c2e6_0000000000000000_vs.txt @@ -0,0 +1,123 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 44b73ce02e05c2e6 +// Used for: Vertical Self-Shadowing Mask Fix Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = intBitsToFloat(0xbf5fdfe0); +R1f.w = 1.0; +R127f.x = intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x3fb13a93) / resYScale; +PS0f = R127f.x; +// 1 +R126f.x = intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x404ec4f0) / resYScale; +PV1f.x = R126f.x; +R3f.y = R2f.y; +R3f.z = R2f.x; +R2f.w = R2f.y; +PV1f.w = R2f.w; +R2f.z = R2f.y + PS0f; +PS1f = R2f.z; +// 2 +R0f.x = R2f.x; +R0f.y = R2f.y + -(R127f.x); +R0f.z = PS1f; +R0f.w = PV1f.w; +R2f.z = R2f.y + PV1f.x; +PS0f = R2f.z; +// 3 +backupReg0f = R2f.y; +backupReg0f = R2f.y; +R2f.y = backupReg0f + -(R126f.x); +R2f.w = backupReg0f; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +// skipped export to semanticId 255 +} diff --git a/src/BreathOfTheWild/Graphics/4721609a424e9a1f_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/4721609a424e9a1f_0000000000000000_vs.txt new file mode 100644 index 00000000..70679d81 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/4721609a424e9a1f_0000000000000000_vs.txt @@ -0,0 +1,214 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 4721609a424e9a1f +// Used for: Restoring the native BotW Anti-Aliasing implementation +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem4; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 2) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +// 0 +backupReg0i = R0i.x; +PV0i.x = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.y = 0x3f800000; +PV0i.z = 0x3f800000; +PV0i.w = 0x40400000; +R127i.z = 0xbf800000; +PS0i = R127i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3b808081)); +R123i.y = ((PV0i.x == 0)?(PV0i.w):(0xbf800000)); +PV1i.y = R123i.y; +R0i.z = 0; +R123i.w = ((PV0i.x == 0)?(PV0i.z):(0xc0400000)); +PV1i.w = R123i.w; +R1i.w = 0x3f800000; +PS1i = R1i.w; +// 2 +R1i.x = ((R0i.x == 0)?(R127i.z):(PV1i.y)); +PV0i.x = R1i.x; +R1i.y = ((R0i.x == 0)?(R127i.y):(PV1i.w)); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(0.5)); +R1i.z = floatBitsToInt(intBitsToFloat(R1i.z) * 2.0); +R0i.w = 0x3d2aaaab; +R0i.x = 0x3e000000; +PS0i = R0i.x; +// 3 +R5i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PV1i.x = R5i.x; +R0i.y = 0; +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R4i.w = uf_remappedVS[1].z; +R4i.w = floatBitsToInt(intBitsToFloat(R4i.w) / 2.0); +PV1i.w = R4i.w; +R4i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R4i.x = floatBitsToInt(intBitsToFloat(R4i.x) / 2.0); +PS1i = R4i.x; +// 4 +R3i.x = floatBitsToInt(-(intBitsToFloat(R1i.y))); +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +R5i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + 0.5)); +R6i.z = PV1i.x; +R3i.w = R1i.x; +R3i.w = floatBitsToInt(intBitsToFloat(R3i.w) / 2.0); +R3i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(0.5)); +PS0i = R3i.y; +R2i.w = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.wz)).x); +R2i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.xy)).xyz); +// export +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w))); +// export +// skipped export to semanticId 255 +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(0.5)); +R2i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R2i.y = floatBitsToInt(intBitsToFloat(R2i.y) * 2.0); +PV0i.y = R2i.y; +R127i.z = uf_remappedVS[3].y; +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +R6i.w = R5i.y; +PV0i.w = R6i.w; +PS0i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(R4i.w)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.x)); +R126i.y = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedVS[4].z)/resXScale); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); +PS1i = R127i.y; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.x)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].y)*resYScale); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); +R126i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].x)*resXScale); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); +R124i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].z)/resXScale); +R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); +PS0i = R124i.y; +// 3 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +backupReg2i = R127i.y; +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[4].w)/resYScale); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(backupReg0i)); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R3i.y)); +R5i.z = backupReg2i; +PS1i = R5i.z; +// 4 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R126i.w)) + 0.5)); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R126i.y))); +R5i.w = R125i.y; +PS0i = R5i.w; +// 5 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R127i.w))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R126i.z)) + 0.5)); +R3i.z = R124i.y; +R3i.w = R127i.x; +R4i.z = PV0i.w; +PS1i = R4i.z; +// 6 +R4i.w = R127i.y; +// export +passParameterSem4 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +// export +// skipped export to semanticId 255 +// export +passParameterSem0 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); +// export +passParameterSem6 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.x), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/5c1761d13feccdff_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/5c1761d13feccdff_0000000000000000_vs.txt new file mode 100644 index 00000000..37624435 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/5c1761d13feccdff_0000000000000000_vs.txt @@ -0,0 +1,103 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 5c1761d13feccdff +// Used for: Vertical+Horizontal Fullscreen Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem3; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = intBitsToFloat(0xbf800000); +R1f.w = 1.0; +PS0f = R2f.x + -(intBitsToFloat(uf_remappedVS[0].x)/resXScale); +// 1 +backupReg0f = R2f.y; +backupReg1f = R2f.x; +PV1f.x = R2f.y + -(intBitsToFloat(uf_remappedVS[0].y)/resYScale); +R2f.y = backupReg0f + intBitsToFloat(uf_remappedVS[0].y)/resYScale; +R2f.z = PS0f; +R2f.x = backupReg1f + intBitsToFloat(uf_remappedVS[0].x)/resXScale; +PS1f = R2f.x; +// 2 +R2f.w = PV1f.x; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem3 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +} diff --git a/src/BreathOfTheWild/Graphics/5c975b0e3dac0562_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/5c975b0e3dac0562_0000000000000000_vs.txt new file mode 100644 index 00000000..46e3afef --- /dev/null +++ b/src/BreathOfTheWild/Graphics/5c975b0e3dac0562_0000000000000000_vs.txt @@ -0,0 +1,111 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 5c975b0e3dac0562 +// Used for: Horizontal Bloom Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = 0.0; +R1f.w = 1.0; +PS0f = intBitsToFloat(uf_remappedVS[0].x) / resXScale * intBitsToFloat(0x3fb13a93); +// 1 +PV1f.x = intBitsToFloat(uf_remappedVS[0].x) / resXScale * intBitsToFloat(0x404ec4f0); +R0f.y = R2f.x + -(PS0f); +R0f.z = R2f.x + PS0f; +R0f.w = R2f.x; +R0f.x = R2f.y; +PS1f = R0f.x; +// 2 +backupReg0f = R2f.x; +backupReg0f = R2f.x; +backupReg0f = R2f.x; +R2f.x = PS1f; +R2f.y = backupReg0f + -(PV1f.x); +R2f.z = backupReg0f + PV1f.x; +R2f.w = backupReg0f; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +} diff --git a/src/BreathOfTheWild/Graphics/75a85b0cbcab764b_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/75a85b0cbcab764b_0000000000000000_vs.txt new file mode 100644 index 00000000..8689b6e9 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/75a85b0cbcab764b_0000000000000000_vs.txt @@ -0,0 +1,111 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 75a85b0cbcab764b +// Used for: Horizontal Reflection Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = 0.0; +R1f.w = 1.0; +PS0f = intBitsToFloat(uf_remappedVS[0].x) / resXScale * intBitsToFloat(0x3fb13a93); +// 1 +PV1f.x = intBitsToFloat(uf_remappedVS[0].x) / resXScale * intBitsToFloat(0x404ec4f0); +R0f.y = R2f.x + -(PS0f); +R0f.z = R2f.x + PS0f; +R0f.w = R2f.x; +R0f.x = R2f.y; +PS1f = R0f.x; +// 2 +backupReg0f = R2f.x; +backupReg0f = R2f.x; +backupReg0f = R2f.x; +R2f.x = PS1f; +R2f.y = backupReg0f + -(PV1f.x); +R2f.z = backupReg0f + PV1f.x; +R2f.w = backupReg0f; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +} diff --git a/src/BreathOfTheWild/Graphics/771e24915acbb074_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/771e24915acbb074_0000000000000000_vs.txt new file mode 100644 index 00000000..8156781c --- /dev/null +++ b/src/BreathOfTheWild/Graphics/771e24915acbb074_0000000000000000_vs.txt @@ -0,0 +1,117 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 771e24915acbb074 +// Used for: Vertical Reflection Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = 0.0; +R1f.w = 1.0; +PS0f = intBitsToFloat(uf_remappedVS[0].y) / resYScale * intBitsToFloat(0x3fb13a93); +// 1 +R127f.x = intBitsToFloat(uf_remappedVS[0].y) / resYScale * intBitsToFloat(0x404ec4f0); +PV1f.x = R127f.x; +R0f.y = R2f.y + -(PS0f); +R2f.z = R2f.y + PS0f; +PV1f.z = R2f.z; +R2f.w = R2f.y; +PV1f.w = R2f.w; +R0f.x = R2f.x; +PS1f = R0f.x; +// 2 +R0f.z = PV1f.z; +R0f.w = PV1f.w; +R2f.z = R2f.y + PV1f.x; +PS0f = R2f.z; +// 3 +backupReg0f = R2f.y; +backupReg0f = R2f.y; +R2f.y = backupReg0f + -(R127f.x); +R2f.w = backupReg0f; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +} diff --git a/src/BreathOfTheWild/Graphics/81eb264a750163d9_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/81eb264a750163d9_0000000000000000_vs.txt new file mode 100644 index 00000000..b3bf62d9 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/81eb264a750163d9_0000000000000000_vs.txt @@ -0,0 +1,132 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 81eb264a750163d9 +// Used for: Vertical Volumetric Light Blur +// volumetric light blur v +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +R127f.x = -(R1f.y); +PV0f.x = R127f.x; +R126f.y = (0.0 > R1f.x)?1.0:0.0; +R126f.y /= 2.0; +R127f.z = (R1f.x > 0.0)?1.0:0.0; +R127f.z /= 2.0; +R127f.w = 1.0; +PV0f.w = R127f.w; +// 1 +R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[0].x),intBitsToFloat(uf_remappedVS[0].y),intBitsToFloat(uf_remappedVS[0].z),intBitsToFloat(uf_remappedVS[0].w))); +PV1f.x = R0f.x; +PV1f.y = R0f.x; +PV1f.z = R0f.x; +PV1f.w = R0f.x; +R127f.y = (PV0f.x > 0.0)?1.0:0.0; +R127f.y /= 2.0; +PS1f = R127f.y; +// 2 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.y = tempf.x; +PS0f = (0.0 > R127f.x)?1.0:0.0; +PS0f /= 2.0; +// 3 +backupReg0f = R127f.y; +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R0f.z = tempf.x; +R127f.y = backupReg0f + -(PS0f); +PS1f = R127f.y; +// 4 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.w = tempf.x; +PS0f = R127f.z + -(R126f.y); +// 5 +PV1f.x = R127f.y + 0.5; +R1f.x = PS0f + 0.5; +PS1f = R1f.x; +// 6 +R1f.y = (-(intBitsToFloat(uf_remappedVS[4].w)) * 0.5 / resYScale + PV1f.x); +R1f.z = (intBitsToFloat(uf_remappedVS[4].w) * 0.5 / resYScale + PV1f.x); +R1f.w = PV1f.x; +// export +SET_POSITION(vec4(R0f.x, R0f.y, R0f.z, R0f.w)); +// export +passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} diff --git a/src/BreathOfTheWild/Graphics/88133ee405eaae28_000003c000009269_ps.txt b/src/BreathOfTheWild/Graphics/88133ee405eaae28_000003c000009269_ps.txt new file mode 100644 index 00000000..b14cdd21 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/88133ee405eaae28_000003c000009269_ps.txt @@ -0,0 +1,739 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 88133ee405eaae28 +// Shadow 2x2 box blur fix +// shader dumped from BotW v1.4.0, using Cemu 1.11.1 +const float resScale = $shadowRes; + +UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArrayShadow textureUnitPS8; +TEXTURE_LAYOUT(15, 1, 5) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R7i.xzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xzw); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R2i.xy),0.0).xw); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R7i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R7i.z)) + uf_blockPS1[14].x)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R7i.x)) + uf_blockPS1[14].x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0))); +PS0i = R127i.x; +// 1 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 2.0 + -(1.0))); +PS1i = R125i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R127i.y)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R127i.y)))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.z)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.z)))); +PS0i = R126i.z; +// 3 +R125i.x = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R124i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.x)); +R125i.w = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.w)); +PS1i = R126i.y; +// 4 +backupReg0i = R126i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R8i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R8i.y),intBitsToFloat(R12i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R126i.x = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(backupReg0i)); +PS0i = R126i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +R126i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R127i.y)); +PS1i = R126i.w; +// 6 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), uf_blockPS6[43].x)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R126i.x))); +R125i.y = floatBitsToInt(sqrt(intBitsToFloat(backupReg0i))); +PS0i = R125i.y; +// 7 +backupReg0i = R127i.z; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), uf_blockPS6[45].x)); +R124i.y = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000)); +R127i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0))); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R125i.z; +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS1[18].y, uf_blockPS1[18].z)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd)); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PS0i = R2i.z; +// 9 +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R126i.z))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R125i.x)) + intBitsToFloat(R127i.y))); +R126i.z = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[45].y) + intBitsToFloat(R124i.x))); +PV1i.w = R123i.w; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.z))); +PS1i = R126i.w; +// 10 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(R4i.w))); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.w))); +PV0i.z = R1i.z; +R125i.w = R4i.x; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.z = R4i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +PS0i = R124i.z; +// 11 +R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R2i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R2i.x = clampFI32(R2i.x); +PS1i = R2i.x; +// 12 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), -(intBitsToFloat(R126i.z)))); +PV0i.x = R125i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0xbb6fe5d7)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3ca30589)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3ca30589)); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0xbb6fe5d7)); +PS0i = R126i.z; +// 13 +R7i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R126i.y)); +R1i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.w))); +R3i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y)); +R1i.w = 0x3f800000; +R6i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.z))); +PS1i = R6i.x; +// 14 +R5i.x = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R126i.z))); +R5i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R127i.y))); +R13i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R126i.x)); +R12i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R12i.w = clampFI32(R12i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y)); +// 15 +backupReg0i = R124i.y; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PS0i))); +PV1i.y = R124i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(backupReg0i)); +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = PS1i & int(1); +// 17 +R12i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.x))); +R7i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.y))); +R13i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R13i.w = clampFI32(R13i.w); +R2i.y = ((PS0i == 0)?(0):(0x3f800000)); +PS1i = R2i.y; +// 18 +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +R2i.w = floatBitsToInt(tempResultf); +PS0i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0); +R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R8i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS0i = R8i.x; +// 1 +R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +R14i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x)); +R14i.w = clampFI32(R14i.w); +R4i.w = 0; +PS1i = R4i.w; +// 2 +predResult = (1.0 > intBitsToFloat(R12i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R13i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R6i.x)); +R13i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R1i.y)); +R14i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R6i.x))); +PS0i = R14i.x; +// 1 +R15i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R5i.x)); +R14i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R1i.y))); +R15i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R5i.y)); +PS1i = R15i.y; +// 2 +R16i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R5i.x))); +R16i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R5i.y))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) * 1.5); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.y) * 1.5); +PV0i.z = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +R127i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R2i.z) * 1.5); +// 1 +backupReg0i = R1i.x; +backupReg1i = R1i.z; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = PV0i.z & int(1); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i))); +PV1i.w = R1i.w; +R122i.x = floatBitsToInt((intBitsToFloat(R3i.z) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +backupReg0i = R2i.y; +R2i.x = floatBitsToInt(uf_blockPS6[53].y/resScale); +R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) / 2.0); +PV0i.x = R2i.x; +R2i.y = floatBitsToInt(uf_blockPS6[53].x/resScale); +R2i.y = floatBitsToInt(intBitsToFloat(R2i.y) / 2.0); +PV0i.y = R2i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +R3i.w = PV1i.y - R127i.w; +PV0i.w = R3i.w; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PS0i))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R7i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +PV1i.w = PV0i.w << 0x00000002; +R1i.y = floatBitsToInt(float(PV0i.w)); +PS1i = R1i.y; +// 4 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.x))); +PS0i = R122i.x; +// 5 +backupReg0i = R2i.z; +backupReg0i = R2i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg0i)),vec4(-(intBitsToFloat(R8i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R10i.z)),-(intBitsToFloat(R4i.w))))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PS0i)); +R2i.w = floatBitsToInt(tempResultf); +PS1i = R2i.w; +} +if( activeMaskStackC[2] == true ) { +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.w))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R2i.w))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R2i.w))); +PV0i.z = R127i.z; +R127i.w = R2i.x; +R8i.z = floatBitsToInt(roundEven(intBitsToFloat(R1i.y))); +PS0i = R8i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = PS0i; +PS1i = R9i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0)); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +PV0i.w = R123i.w; +R10i.z = R8i.z; +PS0i = R10i.z; +// 3 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.z))); +R11i.z = R8i.z; +PS1i = R11i.z; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3da1ff2e)); +// 5 +backupReg0i = R12i.z; +R17i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R3i.x))); +PV1i.x = R17i.x; +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R8i.y))); +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R6i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R4i.x))); +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R0i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(R127i.y))); +PV0i.z = R123i.z; +// 9 +R127i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.x)); +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z)); +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R127i.z; +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV0i.x)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +// 12 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +PV0i.x = R127i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0xbb03126f)); +R8i.x = floatBitsToInt((uf_blockPS6[53].x / resScale * 0.5 + intBitsToFloat(PV1i.y))); +PS0i = R8i.x; +// 13 +R126i.x = floatBitsToInt((-(intBitsToFloat(R1i.y)) * intBitsToFloat(0x3a03126f) + intBitsToFloat(PV0i.z))); +R126i.x = clampFI32(R126i.x); +PV1i.x = R126i.x; +R8i.y = floatBitsToInt((uf_blockPS6[53].y / resScale * 0.5 + intBitsToFloat(PV0i.x))); +R9i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R2i.y)); +PS1i = R9i.x; +// 14 +R10i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R7i.z)); +R9i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(R3i.y)); +R8i.w = PV1i.x; +R9i.w = PV1i.x; +PS0i = R9i.w; +// 15 +R11i.x = floatBitsToInt((-(uf_blockPS6[53].x) / resScale * 0.5 + intBitsToFloat(R127i.y))); +R10i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(R127i.w)); +R10i.w = R126i.x; +R11i.y = floatBitsToInt((-(uf_blockPS6[53].y) / resScale * 0.5 + intBitsToFloat(R127i.x))); +PS1i = R11i.y; +// 16 +R11i.w = R126i.x; +} +if( activeMaskStackC[2] == true ) { +R8i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R9i.y = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +R10i.x = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.w)))); +R11i.w = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z),intBitsToFloat(R11i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(R9i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R10i.x) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +// 2 +R4i.z = floatBitsToInt((intBitsToFloat(R11i.w) * 0.5 + intBitsToFloat(PV1i.y))/2.0); +PV0i.z = R4i.z; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.z))?int(0xFFFFFFFF):int(0x0)); +// 4 +R0i.w = ((R3i.w > 0)?(PV1i.x):(0)); +// 5 +predResult = (R0i.w != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = int(-1) + R3i.w; +// 1 +PV1i.y = PV0i.z << 0x00000002; +R4i.x = floatBitsToInt(float(PV0i.z)); +PS1i = R4i.x; +// 2 +R0i.x = PV1i.y + 0x0000002a; +R0i.y = PV1i.y + 0x0000002d; +R0i.z = PV1i.y + 0x0000002c; +R0i.w = PV1i.y + 0x0000002b; +R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R5i.z; +} +if( activeMaskStackC[3] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R2i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R3i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R0i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0xbb03126f)); +// 7 +R5i.w = floatBitsToInt((-(intBitsToFloat(R4i.x)) * intBitsToFloat(0x3a03126f) + intBitsToFloat(PV0i.y))); +R5i.w = clampFI32(R5i.w); +} +if( activeMaskStackC[3] == true ) { +R5i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R4i.z; +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.z))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R15i.xy)).x); +R0i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R16i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R13i.xy)).x); +R1i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R14i.xy)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x3f7eb852)); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x41a00000)); +R124i.z = floatBitsToInt(-(intBitsToFloat(R4i.z)) + 1.0); +R127i.w = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x3f555555)); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(R0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f8ba8d6)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fbc4580)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.y)) + 1.0)); +R127i.x = clampFI32(R127i.x); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + 0.5)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.y)) + 0.5)); +R125i.z = clampFI32(R125i.z); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i)); +PV0i.w = R126i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.x)) + 1.0)); +R125i.w = clampFI32(R125i.w); +PS0i = R125i.w; +// 3 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + 0.5)); +R126i.x = clampFI32(R126i.x); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + 0.5)); +R124i.w = clampFI32(R124i.w); +PV1i.w = R124i.w; +R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R126i.z)) + 1.0)); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 4 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.x))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + 0.5)); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.w)) + 0.5)); +PV0i.w = R127i.w; +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + 1.0)); +R125i.y = clampFI32(R125i.y); +PS0i = R125i.y; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) + -(intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PS0i)) + 0.5)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.z) + -(intBitsToFloat(PV0i.w))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R0i.w)) + 0.5)); +PV1i.w = R126i.w; +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R12i.w)) + intBitsToFloat(R4i.z))); +PS1i = R3i.w; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e35e743)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e35e743)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 9 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0xbedd476b)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c00000)); +PV1i.x = clampFI32(PV1i.x); +// 12 +R1i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R3i.w = R1i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R13i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R7i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R12i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.z = R1i.w; +PS0i = R2i.z; +// 1 +R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R13i.w))) + intBitsToFloat(R1i.y))); +PS0i = R2i.y; +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R14i.w)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +// 5 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockPS10[3].z) + uf_blockPS10[1].y)); +R2i.x = clampFI32(R2i.x); +} +// export +passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/8cab2ed476b991ea_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/8cab2ed476b991ea_0000000000000000_vs.txt new file mode 100644 index 00000000..8df4cfb1 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/8cab2ed476b991ea_0000000000000000_vs.txt @@ -0,0 +1,109 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 8cab2ed476b991ea +// Used for: Restoring the native BotW Anti-Aliasing implementation +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = 1.0; +R0f.w = R2f.x; +PV0f.w = R0f.w; +R0f.y = R2f.y; +PS0f = R0f.y; +// 1 +PV1f.x = -(intBitsToFloat(uf_remappedVS[0].w)/resYScale); +PV1f.x /= 2.0; +PV1f.y = -(intBitsToFloat(uf_remappedVS[0].z)/resXScale); +PV1f.y /= 2.0; +R2f.x = (mul_nonIEEE(PV0f.w,intBitsToFloat(uf_remappedVS[0].x)*resXScale) + 0.5); +PS1f = R2f.x; +// 2 +R2f.y = (mul_nonIEEE(R0f.y,intBitsToFloat(uf_remappedVS[0].y)*resYScale) + 0.5); +R2f.z = PV1f.y; +R2f.w = PV1f.x; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.z)); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +passParameterSem0 = vec4(R0f.w, R0f.y, R0f.z, R0f.z); +} diff --git a/src/BreathOfTheWild/Graphics/93f16bf1d083933b_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/93f16bf1d083933b_0000000000000000_vs.txt new file mode 100644 index 00000000..2210e49d --- /dev/null +++ b/src/BreathOfTheWild/Graphics/93f16bf1d083933b_0000000000000000_vs.txt @@ -0,0 +1,120 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 93f16bf1d083933b +// Used for: Horizontal Self-Shadowing Mask Fix Blur +// Self shadowing mask fix - h blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = intBitsToFloat(0xbf5fdfe0); +R1f.w = 1.0; +R127f.y = intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x3fb13a93) / resXScale; +PS0f = R127f.y; +// 1 +R127f.x = intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x404ec4f0) / resXScale; +PV1f.x = R127f.x; +R4f.y = R2f.y; +R4f.z = R2f.x; +R3f.w = R2f.x; +R3f.x = R2f.y; +PS1f = R3f.x; +// 2 +R0f.x = PS1f; +R3f.y = R2f.x + -(R127f.y); +R3f.z = R2f.x + R127f.y; +R0f.w = R2f.x; +R0f.y = R2f.x + -(PV1f.x); +PS0f = R0f.y; +// 3 +R0f.z = R2f.x + R127f.x; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem1 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +// export +passParameterSem0 = vec4(R3f.x, R3f.y, R3f.z, R3f.w); +// export +// skipped export to semanticId 255 +} diff --git a/src/BreathOfTheWild/Graphics/a1cb9f79d093badb_0000f0f0ff34db6d_ps.txt b/src/BreathOfTheWild/Graphics/a1cb9f79d093badb_0000f0f0ff34db6d_ps.txt new file mode 100644 index 00000000..112cfc0c --- /dev/null +++ b/src/BreathOfTheWild/Graphics/a1cb9f79d093badb_0000f0f0ff34db6d_ps.txt @@ -0,0 +1,562 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader a1cb9f79d093badb +// Used for: Restoring the native BotW Anti-Aliasing implementation from water edges +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 1, binding = 8) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[20]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[20]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(7, 1, 3) uniform sampler2DArray textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArray textureUnitPS8; +TEXTURE_LAYOUT(9, 1, 5) uniform sampler2DArray textureUnitPS9; +TEXTURE_LAYOUT(10, 1, 6) uniform sampler2DArray textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2DArray textureUnitPS11; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 4) in vec4 passParameterSem4; +layout(location = 5) in vec4 passParameterSem5; +layout(location = 6) in vec4 passParameterSem11; +layout(location = 7) in vec4 passParameterSem7; +layout(location = 8) in vec4 passParameterSem8; +layout(location = 9) in vec4 passParameterSem9; +layout(location = 10) in vec4 passParameterSem10; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +// uf_fragCoordScale was moved to the ufBlock +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R3i = floatBitsToInt(passParameterSem3); +R4i = floatBitsToInt(passParameterSem4); +R5i = floatBitsToInt(passParameterSem5); +R6i = floatBitsToInt(passParameterSem11); +R7i = floatBitsToInt(passParameterSem7); +R8i = floatBitsToInt(passParameterSem8); +R9i = floatBitsToInt(passParameterSem9); +R10i = floatBitsToInt(passParameterSem10); +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(uf_remappedPS[0].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(uf_remappedPS[1].x))); +R127i.z = R9i.z; +R127i.w = R9i.w; +R126i.z = 0; +PS0i = R126i.z; +// 1 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(PV0i.y))); +R127i.y = R9i.y; +R15i.z = floatBitsToInt(roundEven(1.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R126i.x = floatBitsToInt(1.0 / intBitsToFloat(R6i.w)); +PS1i = R126i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w),intBitsToFloat(R126i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(PV1i.w))); +PS0i = R122i.x; +// 3 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(R126i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].w) + intBitsToFloat(PS0i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(R127i.x))); +PV1i.z = R123i.z; +R12i.w = floatBitsToInt(roundEven(intBitsToFloat(R127i.y))); +PV1i.w = R12i.w; +R19i.z = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R19i.z; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3cdd67c9)); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[1].w) + intBitsToFloat(PV1i.z)); +R11i.z = PV1i.w; +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fb6db6e)); +PV0i.w = clampFI32(PV0i.w); +R127i.x = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R127i.x; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R8i.z)), intBitsToFloat(uf_remappedPS[2].y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f333333)); +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3cbe82fa) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R6i.w = R4i.z; +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R126i.x))); +PS1i = R14i.y; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedPS[3].z)); +R6i.y = R4i.w; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(uf_remappedPS[3].y)); +R12i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R12i.z; +// 7 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.z))); +R6i.z = R12i.w; +PS1i = R6i.z; +// 8 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +PV0i.x = R0i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.x))); +PV0i.y = R0i.y; +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.z))); +PV0i.z = R9i.z; +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x))); +PV0i.w = R9i.w; +R122i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * 2.0 + -(1.0))); +PS0i = R122i.x; +// 9 +R12i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.w)); +R12i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV0i.y)); +R14i.z = floatBitsToInt(max(intBitsToFloat(PS0i), -(intBitsToFloat(PS0i)))); +R11i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.x)); +R11i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV0i.z)); +PS1i = R11i.y; +R11i.xy = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R11i.w),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z))).xy); +R9i.xy = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R12i.w))).xy); +R11i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R14i.xy)).x); +R6i.xy = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R6i.w),intBitsToFloat(R6i.y),intBitsToFloat(R6i.z))).xy); +R16i.x = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R14i.xy)).y); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.w),intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(uf_remappedPS[5].x))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R11i.y)); +R127i.z = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(uf_remappedPS[5].x)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(R11i.x)); +R11i.x = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(R9i.w)); +PS0i = R11i.x; +// 1 +backupReg0i = R0i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R14i.z)) + intBitsToFloat(R9i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(R8i.z)) + -(intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R14i.z)) + intBitsToFloat(R9i.y))); +PV1i.z = R123i.z; +R11i.w = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(backupReg0i)); +R11i.z = R12i.w; +PS1i = R11i.z; +// 2 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(max(-(intBitsToFloat(PV1i.y)), 0.0)); +R16i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.y = R16i.y; +R13i.z = R12i.w; +R6i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.w = R6i.w; +R13i.x = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(backupReg0i)); +PS0i = R13i.x; +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt(min(intBitsToFloat(PV0i.x), 1.0)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PV0i.y))); +R13i.w = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(R9i.z)); +R11i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.z)), intBitsToFloat(uf_remappedPS[6].x))); +PS1i = R11i.y; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(PV1i.z)) + intBitsToFloat(R14i.y))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(uf_remappedPS[8].y)) + intBitsToFloat(R1i.w))); +PV0i.y = R126i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(uf_remappedPS[8].x)) + intBitsToFloat(R1i.z))); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R14i.x))); +PV0i.w = R123i.w; +R4i.z = R12i.w; +PS0i = R4i.z; +// 5 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R14i.x)) + intBitsToFloat(PV0i.w)); +R0i.z = R12i.w; +R0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV0i.z)); +R0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +PS1i = R0i.y; +// 6 +backupReg0i = R9i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(R14i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(R14i.x))); +PV0i.y = R123i.y; +R9i.z = R12i.w; +R9i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R127i.z)); +R9i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R126i.y)); +PS0i = R9i.y; +// 7 +R0i.x = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x)*resXScale, intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].y)*resYScale, intBitsToFloat(PV0i.x))); +R12i.w = floatBitsToInt(-(intBitsToFloat(R14i.x)) + intBitsToFloat(PV0i.y)); +R12i.x = uf_remappedPS[10].x; +PS1i = R12i.x; +// 8 +PV0i.x = floatBitsToInt(floor(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(floor(intBitsToFloat(PV1i.z))); +R1i.z = uf_remappedPS[10].y; +R1i.w = uf_remappedPS[10].z; +R2i.w = 0x3f800000; +PS0i = R2i.w; +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +R12i.y = 0x3f800000; +R16i.z = R2i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R18i.z = R10i.x; +PS1i = R18i.z; +// 10 +backupReg0i = R2i.y; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].z)/resXScale, intBitsToFloat(PV1i.w))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w)/resYScale, intBitsToFloat(PV1i.x))); +R17i.z = R2i.z; +R5i.w = backupReg0i; +R8i.w = R10i.y; +PS0i = R8i.w; +R2i.z = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).x); +R2i.xy = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R11i.x),intBitsToFloat(R11i.w),intBitsToFloat(R11i.z))).xy); +R13i.xy = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R13i.x),intBitsToFloat(R13i.w),intBitsToFloat(R13i.z))).xy); +R4i.xy = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z))).xy); +R6i.xyz = floatBitsToInt(texture(textureUnitPS9, vec3(intBitsToFloat(R0i.w),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +R9i.xyz = floatBitsToInt(texture(textureUnitPS9, vec3(intBitsToFloat(R9i.w),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z))).xyz); +// 0 +backupReg0i = R11i.y; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(R13i.x)); +R11i.y = R10i.z; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(R13i.y)); +PV0i.w = ((intBitsToFloat(backupReg0i) > intBitsToFloat(R2i.z))?int(0xFFFFFFFF):int(0x0)); +R9i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(uf_remappedPS[11].x)) + intBitsToFloat(uf_remappedPS[12].x))); +R9i.w = clampFI32(R9i.w); +PS0i = R9i.w; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R14i.z)) + intBitsToFloat(R2i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R14i.z)) + intBitsToFloat(R2i.y))); +PV1i.y = R123i.y; +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(uf_remappedPS[11].x)) + intBitsToFloat(uf_remappedPS[12].y))); +R0i.z = clampFI32(R0i.z); +R123i.w = ((PV0i.w == 0)?(0x3f800000):(0)); +PV1i.w = R123i.w; +R2i.x = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PS1i = R2i.x; +// 2 +R15i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R14i.x))); +R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(R14i.y))); +R2i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.z = R2i.z; +R12i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(uf_remappedPS[11].x)) + intBitsToFloat(uf_remappedPS[12].z))); +R4i.z = clampFI32(R4i.z); +PS0i = R4i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R12i.z = tempi.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +PS1i = R2i.y; +R14i.y = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R15i.xy)).x); +R15i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(R15i.z))).xyz); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),intBitsToFloat(R12i.w)) + intBitsToFloat(R2i.y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(R2i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(R14i.y)) + intBitsToFloat(uf_remappedPS[5].x))); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(R12i.w)); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(R12i.z))); +// 1 +R127i.x = floatBitsToInt(-(intBitsToFloat(R8i.z)) + -(intBitsToFloat(PV0i.z))); +R125i.y = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(R9i.x)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS1i))); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R14i.z)) + intBitsToFloat(R6i.x))); +R127i.z = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +PS0i = R127i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),intBitsToFloat(R12i.y)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),intBitsToFloat(R2i.w)))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.x = uf_remappedPS[13].w; +PS1i = R126i.x; +// 4 +R125i.x = uf_remappedPS[14].w; +PV0i.y = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(R9i.y)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R6i.z)) + intBitsToFloat(R9i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z),-(intBitsToFloat(PV1i.x))) + intBitsToFloat(uf_remappedPS[15].z))); +PV0i.w = R123i.w; +R124i.w = floatBitsToInt(-(intBitsToFloat(R7i.w)) + intBitsToFloat(R10i.w)); +PS0i = R124i.w; +// 5 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R14i.z)) + intBitsToFloat(R6i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(backupReg0i)))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R14i.z)) + intBitsToFloat(R6i.z))); +PV1i.w = floatBitsToInt(intBitsToFloat(R16i.x) * intBitsToFloat(0x437f0000)); +R10i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[16].z) * intBitsToFloat(0x437f0000)); +PS1i = R10i.w; +// 6 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.y)); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(R16i.z) + intBitsToFloat(PV1i.y)); +R127i.w = floatBitsToInt(intBitsToFloat(R17i.z) + intBitsToFloat(PV1i.y)); +R124i.y = int(uint(intBitsToFloat(PV1i.w))); +PS0i = R124i.y; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R126i.w),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R126i.w),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(PV0i.z))); +R126i.z = clampFI32(R126i.z); +PS1i = R126i.z; +// 8 +backupReg0i = R126i.x; +backupReg1i = R11i.y; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(backupReg0i))); +R126i.x = clampFI32(R126i.x); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R127i.y))); +R11i.y = clampFI32(R11i.y); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].z), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w))); +PV0i.w = clampFI32(PV0i.w); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.y = floatBitsToInt((intBitsToFloat(R19i.z) * intBitsToFloat(0x41200000) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R3i.w))); +PS1i = R126i.y; +// 10 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.y))); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(-(intBitsToFloat(R126i.x)) + 1.0); +// 11 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.y))); +PV1i.x = R126i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.w))); +PV1i.y = R126i.y; +R127i.z = PV0i.z; +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +R127i.w = clampFI32(R127i.w); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PS0i)); +PS1i = R126i.w; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = log2(intBitsToFloat(R126i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 13 +backupReg0i = R125i.z; +backupReg1i = R127i.w; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].w), intBitsToFloat(PS0i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.w))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.w))); +R125i.z = clampFI32(R125i.z); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.w)) + intBitsToFloat(backupReg1i))); +R127i.w = clampFI32(R127i.w); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R126i.z = floatBitsToInt(tempResultf); +PS1i = R126i.z; +// 14 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R7i.w))); +PV0i.y = R123i.y; +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV1i.y))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R125i.w = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +R125i.w = clampFI32(R125i.w); +PS0i = R125i.w; +// 15 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PS0i))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +PV1i.y = R126i.y; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y), intBitsToFloat(PV0i.x))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV0i.y))); +R124i.z = clampFI32(R124i.z); +PS1i = R124i.z; +// 16 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R125i.z))); +R125i.y = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV1i.w)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(R3i.x) + -(intBitsToFloat(PV1i.y))); +PS0i = int(uint(intBitsToFloat(R10i.w))); +// 17 +PV1i.x = R124i.y | PS0i; +R124i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(R125i.x))); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x), intBitsToFloat(R126i.x))); +R124i.w = floatBitsToInt(intBitsToFloat(R3i.y) + -(intBitsToFloat(R7i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].z), intBitsToFloat(R126i.x))); +PS1i = R126i.w; +// 18 +R126i.x = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(0x427f0000)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.z))); +PV0i.y = R127i.y; +R5i.z = 0x3db0b0b1; +R5i.w = 0x3f800000; +R127i.z = floatBitsToInt(float(uint(PV1i.x))); +PS0i = R127i.z; +// 19 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(R7i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R125i.y))/2.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(R0i.z)) + intBitsToFloat(backupReg0i))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.x))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.w))/2.0); +PS1i = R125i.y; +// 20 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 4.0); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].x),intBitsToFloat(R127i.y)) + intBitsToFloat(R3i.z))/2.0); +R3i.w = 0x3f800000; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV1i.z))); +PS0i = R0i.x; +// 21 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.x),-(intBitsToFloat(R125i.w))) + intBitsToFloat(R15i.x))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.y),-(intBitsToFloat(R125i.w))) + intBitsToFloat(R15i.y))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R127i.w))); +R0i.w = 0x3b808081; +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.z),-(intBitsToFloat(R125i.w))) + intBitsToFloat(R15i.z))); +PS1i = R3i.z; +// 22 +R11i.x = floatBitsToInt(intBitsToFloat(R125i.z) + 0.5); +R5i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(0x3b808081)); +R11i.z = floatBitsToInt(intBitsToFloat(R125i.y) + 0.5); +R11i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b808081)); +R11i.y = floatBitsToInt(intBitsToFloat(R126i.y) + 0.5); +PS0i = R11i.y; +// 0 +R4i.xyz = ivec3(R3i.x,R3i.y,R3i.z); +R4i.w = R3i.w; +// 1 +R3i.xyz = ivec3(R11i.x,R11i.y,R11i.z); +R3i.w = R11i.w; +// 2 +R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R2i.w = R0i.w; +// 3 +R1i.xyz = ivec3(R5i.z,R5i.y,R5i.z); +R1i.w = R5i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/a5b3a5e5ab2938bc_0000000000001e49_ps.txt b/src/BreathOfTheWild/Graphics/a5b3a5e5ab2938bc_0000000000001e49_ps.txt new file mode 100644 index 00000000..9396ac46 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/a5b3a5e5ab2938bc_0000000000001e49_ps.txt @@ -0,0 +1,127 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader a5b3a5e5ab2938bc +// Used for: Restoring the native BotW Anti-Aliasing implementation +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f.w = (texture(textureUnitPS1, R0f.xy).x); +R0f.xyzw = (textureGather(textureUnitPS2, R0f.xy).xyzw); +// 0 +backupReg0f = R0f.y; +backupReg1f = R0f.x; +PV0f.x = -(R2f.w) + R0f.w; +PV0f.y = -(R2f.w) + R0f.z; +PV0f.z = -(R2f.w) + backupReg0f; +PV0f.w = -(R2f.w) + backupReg1f; +PS0f = R2f.w + intBitsToFloat(uf_remappedPS[0].x); +// 1 +R127f.x = max(PV0f.w, -(PV0f.w)); +PV1f.y = max(PV0f.z, -(PV0f.z)); +R127f.z = max(PV0f.y, -(PV0f.y)); +R127f.w = max(PV0f.x, -(PV0f.x)); +PS1f = 1.0 / PS0f; +// 2 +R126f.x = intBitsToFloat(uf_remappedPS[1].w) * PS1f; +R127f.y = PV1f.y * -(1.0); +R126f.z = floor(R1f.y); +R125f.w = floor(R1f.x); +PV0f.w = R125f.w; +PS0f = PV1f.y * -(1.0); +// 3 +tempf.x = dot(vec4(R127f.w,R127f.z,R127f.x,PS0f),vec4(1.0,-(1.0),1.0,1.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R126f.w = tempf.x; +R126f.y = R1f.x + -(PV0f.w); +PS1f = R126f.y; +// 4 +tempf.x = dot(vec4(R127f.w,R127f.x,R127f.z,R127f.y),vec4(1.0,-(1.0),1.0,1.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +PS0f = R1f.y + -(R126f.z); +// 5 +R123f.x = (mul_nonIEEE(R126f.x,PV0f.x) + PS0f); +R123f.x = clamp(R123f.x, 0.0, 1.0); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R126f.x,R126f.w) + R126f.y); +R123f.y = clamp(R123f.y, 0.0, 1.0); +PV1f.y = R123f.y; +// 6 +PV0f.z = R126f.z + PV1f.x; +PV0f.w = R125f.w + PV1f.y; +// 7 +R1f.x = (mul_nonIEEE(PV0f.w,intBitsToFloat(uf_remappedPS[2].z)/resXScale) + R1f.z); +R1f.y = (mul_nonIEEE(PV0f.z,intBitsToFloat(uf_remappedPS[2].w)/resYScale) + R1f.w); +R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +// export +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} diff --git a/src/BreathOfTheWild/Graphics/b4a729584b6188ea_0000000000001e49_ps.txt b/src/BreathOfTheWild/Graphics/b4a729584b6188ea_0000000000001e49_ps.txt new file mode 100644 index 00000000..ac3967ed --- /dev/null +++ b/src/BreathOfTheWild/Graphics/b4a729584b6188ea_0000000000001e49_ps.txt @@ -0,0 +1,110 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader b4a729584b6188ea +// Used for: Restoring the native BotW Anti-Aliasing implementation for distant trees +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R2f.w = (texture(textureUnitPS1, R0f.xy).x); +R1f.xyzw = (textureGather(textureUnitPS2, R0f.xy).xyzw); +// 0 +PV0f.x = -(R2f.w) + R1f.y; +PV0f.y = -(R2f.w) + R1f.x; +PV0f.z = -(R2f.w) + R1f.w; +PV0f.w = -(R2f.w) + R1f.z; +PS0f = R2f.w + intBitsToFloat(uf_remappedPS[0].x); +// 1 +PV1f.x = max(PV0f.x, -(PV0f.x)); +PV1f.y = max(PV0f.y, -(PV0f.y)); +PV1f.z = max(PV0f.z, -(PV0f.z)); +PV1f.w = max(PV0f.w, -(PV0f.w)); +PS1f = 1.0 / PS0f; +// 2 +PV0f.x = PV1f.y + -(PV1f.w); +PV0f.y = -(PV1f.x) + PV1f.z; +R127f.z = intBitsToFloat(uf_remappedPS[1].w) * PS1f; +R127f.w = fract(R0f.z); +R127f.y = fract(R0f.w); +PS0f = R127f.y; +// 3 +PV1f.z = PV0f.y + -(PV0f.x); +PV1f.w = PV0f.y + PV0f.x; +// 4 +R123f.x = (mul_nonIEEE(R127f.z,PV1f.z) + R127f.y); +R123f.x = clamp(R123f.x, 0.0, 1.0); +PV0f.x = R123f.x; +R123f.y = (mul_nonIEEE(R127f.z,PV1f.w) + R127f.w); +R123f.y = clamp(R123f.y, 0.0, 1.0); +PV0f.y = R123f.y; +// 5 +PV1f.z = -(R127f.y) + PV0f.x; +PV1f.w = -(R127f.w) + PV0f.y; +// 6 +backupReg0f = R0f.x; +backupReg1f = R0f.y; +R0f.x = (mul_nonIEEE(PV1f.w,intBitsToFloat(uf_remappedPS[2].z) / resXScale) + backupReg0f); +R0f.y = (mul_nonIEEE(PV1f.z,intBitsToFloat(uf_remappedPS[2].w) / resYScale) + backupReg1f); +R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +// export +passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +} diff --git a/src/BreathOfTheWild/Graphics/bb50d2ee4fa87bc2_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/bb50d2ee4fa87bc2_0000000000000000_vs.txt new file mode 100644 index 00000000..46c31d03 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/bb50d2ee4fa87bc2_0000000000000000_vs.txt @@ -0,0 +1,196 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader bb50d2ee4fa87bc2 +// Used for: Horizontal+Vertical Combat Targeting Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 1) out vec4 passParameterSem2; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 2) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +// 0 +backupReg0i = R0i.x; +PV0i.x = 0x3f800000; +PV0i.y = 0x40400000; +PV0i.z = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.w = 0x3f800000; +R127i.x = 0xbf800000; +PS0i = R127i.x; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3b808081)); +R0i.y = 0; +R123i.z = ((PV0i.z == 0)?(PV0i.x):(0xc0400000)); +PV1i.z = R123i.z; +R123i.w = ((PV0i.z == 0)?(PV0i.y):(0xbf800000)); +PV1i.w = R123i.w; +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 2 +R2i.x = ((R0i.x == 0)?(R127i.x):(PV1i.w)); +PV0i.x = R2i.x; +R2i.y = ((R0i.x == 0)?(R127i.w):(PV1i.z)); +PV0i.y = R2i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(0.5)); +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +R0i.w = 0x3d2aaaab; +R1i.x = 0x3e000000; +PS0i = R1i.x; +// 3 +R3i.x = uf_remappedVS[1].z; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +R1i.y = 0; +R1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0); +R4i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PS1i = R4i.x; +R0i.w = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.wy)).x); +R0i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R1i.xy)).xyz); +// export +SET_POSITION(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +// export +passParameterSem2 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.x) + -(0.5)); +R4i.y = floatBitsToInt((intBitsToFloat(R1i.z) * 0.5 + 0.5)); +PV0i.y = R4i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R2i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R126i.x = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +PS0i = R126i.x; +// 1 +R125i.x = uf_remappedVS[3].y; +R125i.x = floatBitsToInt(intBitsToFloat(R125i.x) * 2.0); +R126i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +PV1i.y = R126i.y; +R123i.z = floatBitsToInt((intBitsToFloat(uf_remappedVS[4].w) / resYScale * 2.0 + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R3i.x)); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R1i.w)); +PS1i = R127i.z; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R127i.x)); +R126i.z = floatBitsToInt((-(intBitsToFloat(uf_remappedVS[4].w) / resYScale) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R4i.y))); +R123i.w = floatBitsToInt((intBitsToFloat(uf_remappedVS[4].z) / resXScale * 2.0 + intBitsToFloat(R4i.x))); +PV0i.w = R123i.w; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.w))); +PS0i = R127i.y; +// 3 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R127i.z))); +R123i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedVS[4].z) / resXScale) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R4i.x))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(backupReg0i)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.x))); +PS1i = R125i.z; +// 4 +R3i.x = PV1i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R126i.x)); +R3i.w = R126i.z; +R4i.z = R127i.y; +PS0i = R4i.z; +// 5 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.w))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.z))); +R1i.z = R127i.z; +R4i.w = R127i.x; +R1i.w = R125i.z; +PS1i = R1i.w; +// export +passParameterSem0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +// export +// skipped export to semanticId 255 +// export +passParameterSem6 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.x), intBitsToFloat(R3i.x), intBitsToFloat(R3i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/src/BreathOfTheWild/Graphics/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..370dda64 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,182 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader c92c1c4c0a2fb839 +// Used for: Camera Depth of Field Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem2); +if( activeMaskStackC[1] == true ) { +R1i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); +R1i.z = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +// 1 +R0i.z = floatBitsToInt(max(intBitsToFloat(R1i.z), intBitsToFloat(PV0i.x))); +PV1i.z = R0i.z; +// 2 +R1i.y = ((intBitsToFloat(PV1i.z) != 0.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = R1i.y; +// 3 +if( (PV0i.y == 0)) discard; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R1i.y != 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].y) + -(1.0)); +// 1 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R0i.z)) + 1.0)); +PV1i.z = R123i.z; +// 2 +tempResultf = log2(intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(tempResultf); +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(PS0i) + -(1.0)); +PV1i.x = R127i.x; +// 4 +R2i.z = PV1i.x; +R1i.w = PV1i.x; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +// 5 +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(uf_remappedPS[3].w)); +R3i.w = R127i.x; +R4i.w = R127i.x; +PS1i = R4i.w; +// 6 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].y))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].x) / resXScale)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w) / resYScale)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].z))); +PV0i.w = R127i.w; +R2i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + 1.0); +R2i.w = clampFI32(R2i.w); +PS0i = R2i.w; +// 7 +R1i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(PV0i.y)); +R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.x)); +R3i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(PV0i.w)); +R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(PV0i.y))); +PS1i = R2i.x; +// 8 +R3i.x = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R127i.z)); +R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R127i.x))); +R4i.z = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R127i.w))); +R4i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R127i.z))); +PS0i = R4i.y; +} +if( activeMaskStackC[2] == true ) { +R1i.xyz = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),intBitsToFloat(R1i.w)).xyz); +R2i.xyz = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R2i.xy),intBitsToFloat(R2i.z)).xyz); +R3i.xyz = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R3i.zx),intBitsToFloat(R3i.w)).xyz); +R4i.xyz = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R4i.zy),intBitsToFloat(R4i.w)).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R2i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R2i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R2i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 1 +R123i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 2 +R2i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 0.5 + intBitsToFloat(PV1i.x))/2.0); +R2i.y = floatBitsToInt((intBitsToFloat(R4i.y) * 0.5 + intBitsToFloat(PV1i.w))/2.0); +R2i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 0.5 + intBitsToFloat(PV1i.z))/2.0); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/c9f2fd37115b0ee1_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/c9f2fd37115b0ee1_0000000000000000_vs.txt new file mode 100644 index 00000000..2bf0f513 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/c9f2fd37115b0ee1_0000000000000000_vs.txt @@ -0,0 +1,223 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader c9f2fd37115b0ee1 +// Used for: Horizontal+Vertical Combat Targeting Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem2; +layout(location = 2) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +// 0 +backupReg0i = R0i.x; +PV0i.x = 0x3f800000; +PV0i.y = 0x40400000; +PV0i.z = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.w = 0x3f800000; +R127i.x = 0xbf800000; +PS0i = R127i.x; +// 1 +R3i.x = uf_remappedVS[0].z; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].z) * intBitsToFloat(0x3b808081)); +R123i.z = ((PV0i.z == 0)?(PV0i.x):(0xc0400000)); +PV1i.z = R123i.z; +R123i.w = ((PV0i.z == 0)?(PV0i.y):(0xbf800000)); +PV1i.w = R123i.w; +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 2 +R2i.x = ((R0i.x == 0)?(R127i.x):(PV1i.w)); +R2i.y = ((R0i.x == 0)?(R127i.w):(PV1i.z)); +PV0i.y = R2i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + -(0.5)); +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +R0i.w = 0x3ec00000; +R0i.y = 0; +PS0i = R0i.y; +// 3 +R1i.xyz = ivec3(0x3eeaaaab,0,0x3d2aaaab); +R1i.w = 0; +R0i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +PS1i = R0i.x; +R5i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R0i.wy)).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R1i.xy)).xyz); +R1i.w = floatBitsToInt(texture(textureUnitVS0, intBitsToFloat(R1i.zw)).y); +// export +SET_POSITION(vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +// 0 +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +PV0i.x = R127i.x; +R0i.y = floatBitsToInt((intBitsToFloat(R0i.x) * 0.5 + 0.5)); +PV0i.y = R0i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.y))); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0); +R127i.w = R2i.x; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); +R0i.x = floatBitsToInt((intBitsToFloat(R2i.x) * 0.5 + 0.5)); +PS0i = R0i.x; +// 1 +R2i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) * 2.0); +PV1i.x = R2i.x; +R2i.y = uf_remappedVS[3].y; +R2i.y = floatBitsToInt(intBitsToFloat(R2i.y) * 2.0); +PV1i.y = R2i.y; +R123i.z = floatBitsToInt((intBitsToFloat(uf_remappedVS[4].w) / resYScale * 2.0 + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R3i.x) + -(0.5)); +R125i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(0.5)); +PS1i = R125i.x; +// 2 +backupReg0i = R127i.z; +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y))); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R3i.x)); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R127i.x)); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PS1i)); +PS0i = R126i.z; +// 3 +R124i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R126i.w)); +R127i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedVS[4].z)/resXScale) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R0i.x))); +R125i.z = floatBitsToInt((-(intBitsToFloat(uf_remappedVS[4].w)/resYScale) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R0i.y))); +R123i.w = floatBitsToInt((intBitsToFloat(uf_remappedVS[4].z)/ resXScale * 2.0 + intBitsToFloat(R0i.x))); +PV1i.w = R123i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y))); +PS1i = R125i.w; +// 4 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R127i.w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(R126i.x))); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R126i.w)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R126i.z))); +PS0i = R124i.w; +// 5 +backupReg0i = R0i.y; +backupReg1i = R125i.z; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(R4i.z)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(R4i.y)); +R125i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R125i.x)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R124i.x))); +R3i.w = backupReg1i; +PS1i = R3i.w; +// 6 +R3i.x = R127i.y; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R5i.y))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(R4i.x)); +R2i.w = R127i.z; +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R0i.y)) + intBitsToFloat(R5i.z))); +PS0i = R1i.z; +// 7 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R0i.y)) + intBitsToFloat(R5i.x))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R125i.z))); +R2i.z = R125i.w; +R0i.w = R127i.x; +R0i.z = R126i.y; +PS1i = R0i.z; +// 8 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R127i.w))); +R5i.z = R126i.w; +R5i.w = R124i.w; +// export +passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem2 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +// export +// skipped export to semanticId 255 +// export +// skipped export to semanticId 255 +// export +passParameterSem6 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.x), intBitsToFloat(R3i.x), intBitsToFloat(R3i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/cb0e6e8cbec4502a_0000000000000079_ps.txt b/src/BreathOfTheWild/Graphics/cb0e6e8cbec4502a_0000000000000079_ps.txt new file mode 100644 index 00000000..50b528f5 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/cb0e6e8cbec4502a_0000000000000079_ps.txt @@ -0,0 +1,53 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + + +// shader cb0e6e8cbec4502a +// Used for: 1 pass Battle, Camera and Scope Depth of Field Blur + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif + +int radius = int( roundEven(2.0/uf_fragCoordScale.y) ); +vec2 resolution = vec2( textureSize(textureUnitPS0,0) ); + +void main() { + vec2 center = ( passParameterSem3.xy + passParameterSem3.zw ) / 2.0 ; + vec3 result = vec3(0.0); + float count = 0.0; + for ( int x = 1-radius; x <= radius-1; x+=2 ) { + for ( int y = 1-radius; y <= radius-1; y+=2 ) { + if ( length(vec2(x, y)) <= radius ) { + result += texture( textureUnitPS0, center + vec2(x, y)/resolution ).xyz ; + count += 1.0; + } + } + } + passPixelColor0 = vec4( result / count, 0.0 ); +} \ No newline at end of file diff --git a/src/BreathOfTheWild/Graphics/d1cf6920c3d5b194_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/d1cf6920c3d5b194_0000000000000000_vs.txt new file mode 100644 index 00000000..54f968fa --- /dev/null +++ b/src/BreathOfTheWild/Graphics/d1cf6920c3d5b194_0000000000000000_vs.txt @@ -0,0 +1,98 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader d1cf6920c3d5b194 +// Used for: Restoring the native BotW Anti-Aliasing implementation for distant trees +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = 1.0; +R123f.w = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedVS[0].x) * resXScale) + 0.5); +PV0f.w = R123f.w; +R122f.x = (mul_nonIEEE(R2f.y,intBitsToFloat(uf_remappedVS[0].y) * resYScale) + 0.5); +PS0f = R122f.x; +// 1 +R2f.z = PV0f.w; +R2f.w = PS0f; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.z)); +// export +passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +} diff --git a/src/BreathOfTheWild/Graphics/e06e20b2efe87a84_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/e06e20b2efe87a84_0000000000000000_vs.txt new file mode 100644 index 00000000..0fb21902 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/e06e20b2efe87a84_0000000000000000_vs.txt @@ -0,0 +1,106 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader e06e20b2efe87a84 +// Used for: Horizontal Ambient-Occlusion Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = -(1.0); +R1f.w = 1.0; +R0f.x = R2f.x; +PS0f = R0f.x; +// 1 +backupReg0f = R2f.x; +backupReg0f = R2f.x; +backupReg0f = R2f.x; +R2f.x = R2f.y; +R0f.y = R2f.y; +R2f.z = backupReg0f + intBitsToFloat(uf_remappedVS[0].x)/resXScale; +R2f.w = backupReg0f; +R2f.y = backupReg0f + -(intBitsToFloat(uf_remappedVS[0].x))/resXScale; +PS1f = R2f.y; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +// export +// skipped export to semanticId 255 +} diff --git a/src/BreathOfTheWild/Graphics/ea9a49a6185cf1e5_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/ea9a49a6185cf1e5_0000000000000000_vs.txt new file mode 100644 index 00000000..15df4da6 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/ea9a49a6185cf1e5_0000000000000000_vs.txt @@ -0,0 +1,131 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader ea9a49a6185cf1e5 +// Used for: Fix Reflection +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[2]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[2]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) noperspective out vec4 passParameterSem0; +layout(location = 1) noperspective out vec4 passParameterSem1; +layout(location = 2) noperspective out vec4 passParameterSem2; +layout(location = 3) noperspective out vec4 passParameterSem3; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +PV0f.x = (0.0 > R1f.y)?1.0:0.0; +PV0f.y = (0.0 > R1f.x)?1.0:0.0; +PV0f.z = (R1f.y > 0.0)?1.0:0.0; +PV0f.w = (R1f.x > 0.0)?1.0:0.0; +R1f.z = 0.0; +PS0f = R1f.z; +// 1 +R1f.x = PV0f.w + -(PV0f.y); +PV1f.x = R1f.x; +R1f.y = PV0f.z + -(PV0f.x); +PV1f.y = R1f.y; +R1f.w = 1.0; +// 2 +PV0f.x = PV1f.x; +PV0f.x /= 2.0; +R127f.y = PV1f.x * 1.0; +PV0f.y = R127f.y; +PV0f.z = -(PV1f.y); +PV0f.z /= 2.0; +R127f.w = PV1f.y * -(1.0); +PV0f.w = R127f.w; +R127f.x = PV1f.x * 1.0; +PS0f = R127f.x; +// 3 +R126f.x = (intBitsToFloat(uf_remappedVS[0].y) * 2.0 / resYScale + PV0f.w); +R0f.y = PV0f.z + 0.5; +R123f.z = (intBitsToFloat(uf_remappedVS[0].x) * 2.0 / resXScale + PV0f.y); +PV1f.z = R123f.z; +PV1f.w = PV0f.w; +R0f.x = PV0f.x + 0.5; +PS1f = R0f.x; +// 4 +R2f.x = (mul_nonIEEE(R127f.x,-(intBitsToFloat(uf_remappedVS[1].x))) + -(intBitsToFloat(uf_remappedVS[1].z))); +R2f.y = (mul_nonIEEE(R127f.w,-(intBitsToFloat(uf_remappedVS[1].y))) + -(intBitsToFloat(uf_remappedVS[1].w))); +R0f.z = (mul_nonIEEE(-(intBitsToFloat(uf_remappedVS[1].x)),PV1f.z) + -(intBitsToFloat(uf_remappedVS[1].z))); +R0f.w = (mul_nonIEEE(-(intBitsToFloat(uf_remappedVS[1].y)),PV1f.w) + -(intBitsToFloat(uf_remappedVS[1].w))); +R3f.x = (mul_nonIEEE(R127f.y,-(intBitsToFloat(uf_remappedVS[1].x))) + -(intBitsToFloat(uf_remappedVS[1].z))); +PS0f = R3f.x; +// 5 +R3f.y = (mul_nonIEEE(R126f.x,-(intBitsToFloat(uf_remappedVS[1].y))) + -(intBitsToFloat(uf_remappedVS[1].w))); +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.z); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.z); +// export +passParameterSem2 = vec4(R0f.z, R0f.w, R0f.z, R0f.z); +// export +passParameterSem3 = vec4(R3f.x, R3f.y, R3f.z, R3f.z); +} diff --git a/src/BreathOfTheWild/Graphics/f14bb57cd5c9cb77_00000000000003c9_ps.txt b/src/BreathOfTheWild/Graphics/f14bb57cd5c9cb77_00000000000003c9_ps.txt new file mode 100644 index 00000000..8a37b707 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/f14bb57cd5c9cb77_00000000000003c9_ps.txt @@ -0,0 +1,1096 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + + +// shader f14bb57cd5c9cb77 - dumped 1.15 +// Used for: Removing/Restoring the native BotW World Anti-Aliasing implementation + +const float resX = float($width)/float($gameWidth); +const float resY = float($height)/float($gameHeight); +#define fxaa $fxaa + +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif + +#if (fxaa == 0) // Disabled AA + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +void main() +{ +passPixelColor0 = texture(textureUnitPS0, passParameterSem2.xy); +} + +#elif (fxaa == 1) // Native AA Enabled + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock + +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));} +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); // Important variable +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); // Important variable +vec4 R123f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem2; +if( activeMaskStackC[1] == true ) { +R1f.xyzw = (textureGather(textureUnitPS1, R0f.xy).wzxy); +R2f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0f.x = R1f.w + -(R1f.x); +PV0f.y = R1f.z + -(R1f.y); +PV0f.z = mul_nonIEEE(R2f.x, intBitsToFloat(uf_remappedPS[0].x)); +R127f.w = min(R1f.z, R1f.x); +R127f.x = min(R1f.w, R1f.y); +PS0f = R127f.x; +// 1 +R123f.x = (mul_nonIEEE(R2f.y,intBitsToFloat(uf_remappedPS[0].y) * resX ) + PV0f.z); //Important line +PV1f.x = R123f.x; +PV1f.y = max(R1f.z, R1f.x); +R127f.z = PV0f.y + -(PV0f.x); +PV1f.z = R127f.z; +R126f.w = PV0f.y + PV0f.x; +PV1f.w = R126f.w; +PS1f = max(R1f.w, R1f.y); +// 2 +PV0f.x = max(PV1f.z, -(PV1f.z)); +PV0f.y = max(PV1f.w, -(PV1f.w)); +R123f.z = (mul_nonIEEE(R2f.z,intBitsToFloat(uf_remappedPS[0].z)) + PV1f.x); +PV0f.z = R123f.z; +PV0f.w = min(R127f.w, R127f.x); +PS0f = max(PV1f.y, PS1f); +// 3 +PV1f.x = mul_nonIEEE(PS0f, intBitsToFloat(uf_remappedPS[1].x)); +PV1f.y = max(PV0f.z, PS0f); +PV1f.z = min(PV0f.z, PV0f.w); +PV1f.w = min(PV0f.y, PV0f.x); +// 4 +R1f.x = -(PV1f.z) + PV1f.y; +R0f.z = max(PV1f.x, intBitsToFloat(uf_remappedPS[1].y)); // Important - Divide looks blurrier/fuzzy and multiply looks sharper good +PS0f = 1.0 / PV1f.w; // Important line affects aliasing strongly, increasing it is blurier and decreasing sharpens +// 5 +PV1f.x = mul_nonIEEE(R127f.z, PS0f); +PV1f.y = mul_nonIEEE(R126f.w, PS0f); +// 6 +PV0f.z = max(PV1f.x, -(intBitsToFloat(uf_remappedPS[2].y))); +PV0f.w = max(PV1f.y, -(intBitsToFloat(uf_remappedPS[2].y))); +// 7 - another way to do it other than the original implmentation +R3f.x = min(PV0f.w, intBitsToFloat(uf_remappedPS[2].y)); // Important - Divide looks sharper and better and multiply looks blurier fuzzy +R1f.y = min(PV0f.z, intBitsToFloat(uf_remappedPS[2].y)); // Important - Divide looks sharper and better and multiply looks blurier fuzzy +// 8 +predResult = (R1f.x > R0f.z); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0f = R3f.x; +backupReg0f = R3f.x; +R3f.x = (mul_nonIEEE(backupReg0f,intBitsToFloat(uf_remappedPS[3].x) / resX) + R0f.x); // Original Implementation +R3f.y = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[3].y) / resY) + R0f.y); // Original Implementation +R1f.x = (mul_nonIEEE(backupReg0f,-(intBitsToFloat(uf_remappedPS[3].x) / resX)) + R0f.x); // Original Implementation +PS0f = R1f.x; +// 1 +backupReg0f = R1f.y; +R1f.y = (mul_nonIEEE(backupReg0f,-(intBitsToFloat(uf_remappedPS[3].y) / resY)) + R0f.y); // Original Implementation +} +if( activeMaskStackC[2] == true ) { +R0f.xyzw = (texture(textureUnitPS0, R3f.xy).xyzw); +R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127f.x = R0f.w + R1f.w; +R127f.x /= 2.0; +PV0f.x = R127f.x; +R127f.y = R0f.z + R1f.z; +R127f.y /= 2.0; +PV0f.y = R127f.y; +R127f.z = R0f.y + R1f.y; +R127f.z /= 2.0; +PV0f.z = R127f.z; +R127f.w = R0f.x + R1f.x; +R127f.w /= 2.0; +PV0f.w = R127f.w; +// 1 +PV1f.x = R2f.w + -(PV0f.x); +PV1f.y = R2f.z + -(PV0f.y); +PV1f.z = R2f.y + -(PV0f.z); +PV1f.w = R2f.x + -(PV0f.w); +// 2 +R2f.x = (PV1f.w * intBitsToFloat(0x3eb33333) + R127f.w); +R2f.y = (PV1f.z * intBitsToFloat(0x3eb33333) + R127f.z); +R2f.z = (PV1f.y * intBitsToFloat(0x3eb33333) + R127f.y); +R2f.w = (PV1f.x * intBitsToFloat(0x3eb33333) + R127f.x); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +} + +#elif (fxaa == 2) + +//-----------------------------settings-------------------------------------// + +#define Subpix $subPix //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal. +#define EdgeThreshold $edgeThreshold //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm. +#define EdgeThresholdMin $edgeThresholdMin //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks. + +//--------------------------------------------------------------------------// + +#define FXAA_PC 1 +#define FXAA_GLSL_130 1 +#define FXAA_QUALITY_PRESET 14 + +#define FXAA_GREEN_AS_LUMA 1 +#define FXAA_DISCARD 0 +#define FXAA_GATHER4_ALPHA 0 // Needs #extension GL_ARB_gpu_shader5 : enable + +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +/*--------------------------------------------------------------------------*/ + + +/*==========================================================================*/ +#ifndef FXAA_GREEN_AS_LUMA + // + // For those using non-linear color, + // and either not able to get luma in alpha, or not wanting to, + // this enables FXAA to run using green as a proxy for luma. + // So with this enabled, no need to pack luma in alpha. + // + // This will turn off AA on anything which lacks some amount of green. + // Pure red and blue or combination of only R and B, will get no AA. + // + // Might want to lower the settings for both, + // fxaaConsoleEdgeThresholdMin + // fxaaQualityEdgeThresholdMin + // In order to insure AA does not get turned off on colors + // which contain a minor amount of green. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_GREEN_AS_LUMA 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_EARLY_EXIT + // + // Controls algorithm's early exit path. + // On PS3 turning this ON adds 2 cycles to the shader. + // On 360 turning this OFF adds 10ths of a millisecond to the shader. + // Turning this off on console will result in a more blurry image. + // So this defaults to on. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_EARLY_EXIT 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_DISCARD + // + // Only valid for PC OpenGL currently. + // Probably will not work when FXAA_GREEN_AS_LUMA = 1. + // + // 1 = Use discard on pixels which don't need AA. + // For APIs which enable concurrent TEX+ROP from same surface. + // 0 = Return unchanged color on pixels which don't need AA. + // + #define FXAA_DISCARD 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_FAST_PIXEL_OFFSET + // + // Used for GLSL 120 only. + // + // 1 = GL API supports fast pixel offsets + // 0 = do not use fast pixel offsets + // + #ifdef GL_EXT_gpu_shader4 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifndef FXAA_FAST_PIXEL_OFFSET + #define FXAA_FAST_PIXEL_OFFSET 0 + #endif +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GATHER4_ALPHA + // + // 1 = API supports gather4 on alpha channel. + // 0 = API does not support gather4 on alpha channel. + // + #if (FXAA_HLSL_5 == 1) + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifndef FXAA_GATHER4_ALPHA + #define FXAA_GATHER4_ALPHA 0 + #endif +#endif + + +/*============================================================================ + FXAA QUALITY - TUNING KNOBS +------------------------------------------------------------------------------ +NOTE the other tuning knobs are now in the shader function inputs! +============================================================================*/ +#ifndef FXAA_QUALITY_PRESET + // + // Choose the quality preset. + // This needs to be compiled into the shader as it effects code. + // Best option to include multiple presets is to + // in each shader define the preset, then include this file. + // + // OPTIONS + // ----------------------------------------------------------------------- + // 10 to 15 - default medium dither (10=fastest, 15=highest quality) + // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) + // 39 - no dither, very expensive + // + // NOTES + // ----------------------------------------------------------------------- + // 12 = slightly faster then FXAA 3.9 and higher edge quality (default) + // 13 = about same speed as FXAA 3.9 and better than 12 + // 23 = closest to FXAA 3.9 visually and performance wise + // _ = the lowest digit is directly related to performance + // _ = the highest digit is directly related to style + // + #define FXAA_QUALITY_PRESET 12 +#endif + + +/*============================================================================ + + FXAA QUALITY - PRESETS + +============================================================================*/ + +/*============================================================================ + FXAA QUALITY - MEDIUM DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif + +/*============================================================================ + FXAA QUALITY - LOW DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +/*============================================================================ + FXAA QUALITY - EXTREME QUALITY +============================================================================*/ +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + + + +/*============================================================================ + + API PORTING + +============================================================================*/ +#if (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1) + #define FxaaBool bool + #define FxaaDiscard discard + #define FxaaFloat float + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaHalf float + #define FxaaHalf2 vec2 + #define FxaaHalf3 vec3 + #define FxaaHalf4 vec4 + #define FxaaInt2 ivec2 + #define FxaaSat(x) clamp(x, 0.0, 1.0) + #define FxaaTex sampler2D +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_120 == 1) + // Requires, + // #version 120 + // And at least, + // #extension GL_EXT_gpu_shader4 : enable + // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9) + #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) + #if (FXAA_FAST_PIXEL_OFFSET == 1) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) + #else + #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) + #endif + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_130 == 1) + // Requires "#version 130" or better + #define FxaaTexTop(t, p) textureLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ + + +/*============================================================================ + GREEN AS LUMA OPTION SUPPORT FUNCTION +============================================================================*/ +#if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; } +#else + FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } +#endif + + +/*============================================================================ + + FXAA3 QUALITY - PC + +============================================================================*/ +#if (FXAA_PC == 1) +/*--------------------------------------------------------------------------*/ +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + #if (FXAA_GATHER4_ALPHA == 1) + #if (FXAA_DISCARD == 0) + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + #endif + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1)); + #else + FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1)); + #endif + #if (FXAA_DISCARD == 1) + #define lumaM luma4A.w + #endif + #define lumaE luma4A.z + #define lumaS luma4A.x + #define lumaSE luma4A.y + #define lumaNW luma4B.w + #define lumaN luma4B.z + #define lumaW luma4B.x + #else + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); + #endif +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + #if (FXAA_DISCARD == 1) + FxaaDiscard; + #else + return rgbyM; + #endif +/*--------------------------------------------------------------------------*/ + #if (FXAA_GATHER4_ALPHA == 0) + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #else + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #endif +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + #if (FXAA_DISCARD == 1) + return FxaaTexTop(tex, posM); + #else + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); + #endif +} +/*==========================================================================*/ +#endif + +//---------------------------------------------------------------------------------- +// File: es3-kepler\FXAA\assets\shaders/FXAA_Default.frag +// SDK Version: v3.00 +// Email: gameworks@nvidia.com +// Site: http://developer.nvidia.com/ +// +// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//---------------------------------------------------------------------------------- +//#version 100 + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; + + +ivec2 resolution = textureSize(textureUnitPS0,0); // Retrieve Texture Dimensions in float data type so we dont need to convert + +precision highp float; + +vec2 RcpFrame = vec2(1.0 / float(resolution.x), 1.0 / float(resolution.y)); +void main() +{ +passPixelColor0 = FxaaPixelShader(passParameterSem2.xy, textureUnitPS0, RcpFrame, Subpix, EdgeThreshold, EdgeThresholdMin); +} + +#endif \ No newline at end of file diff --git a/src/BreathOfTheWild/Graphics/f69e84515ae56e70_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/f69e84515ae56e70_0000000000000000_vs.txt new file mode 100644 index 00000000..6925a2eb --- /dev/null +++ b/src/BreathOfTheWild/Graphics/f69e84515ae56e70_0000000000000000_vs.txt @@ -0,0 +1,118 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader f69e84515ae56e70 +// Used for: Vertical Bloom Blur +// bloom blur v +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +backupReg0f = R1f.x; +backupReg1f = R1f.y; +R1f.x = backupReg0f; +R1f.x *= 2.0; +R1f.y = backupReg1f; +R1f.y *= 2.0; +R1f.z = 0.0; +R1f.w = 1.0; +PS0f = intBitsToFloat(uf_remappedVS[0].y) / resYScale * intBitsToFloat(0x3fb13a93); +// 1 +R127f.x = intBitsToFloat(uf_remappedVS[0].y) / resYScale * intBitsToFloat(0x404ec4f0); +PV1f.x = R127f.x; +R0f.y = R2f.y + -(PS0f); +R2f.z = R2f.y + PS0f; +PV1f.z = R2f.z; +R2f.w = R2f.y; +PV1f.w = R2f.w; +R0f.x = R2f.x; +PS1f = R0f.x; +// 2 +R0f.z = PV1f.z; +R0f.w = PV1f.w; +R2f.z = R2f.y + PV1f.x; +PS0f = R2f.z; +// 3 +backupReg0f = R2f.y; +backupReg0f = R2f.y; +R2f.y = backupReg0f + -(R127f.x); +R2f.w = backupReg0f; +// export +SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w)); +// export +passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +// export +passParameterSem1 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +} diff --git a/src/BreathOfTheWild/Graphics/fc3e63a2007625f8_0000000000000000_vs.txt b/src/BreathOfTheWild/Graphics/fc3e63a2007625f8_0000000000000000_vs.txt new file mode 100644 index 00000000..c6193f16 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/fc3e63a2007625f8_0000000000000000_vs.txt @@ -0,0 +1,132 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader fc3e63a2007625f8 +// Used For: Vertical Menu Blur +const float resXScale = float($width)/float($gameWidth); +const float resYScale = float($height)/float($gameHeight); + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +uvec4 attrDecoder; +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = floatBitsToInt(ivec4(gl_VertexID, 0, 0, gl_InstanceID)); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(floatBitsToInt(1.0))); +// 0 +R127f.x = -(R1f.y); +PV0f.x = R127f.x; +R127f.y = (R1f.x > 0.0)?1.0:0.0; +R127f.y /= 2.0; +R126f.z = (0.0 > R1f.x)?1.0:0.0; +R126f.z /= 2.0; +R127f.w = 1.0; +PV0f.w = R127f.w; +R126f.x = intBitsToFloat(uf_remappedVS[0].w) * (intBitsToFloat(0x3fae8a72)/resYScale); +PS0f = R126f.x; +// 1 +R0f.x = dot(vec4(R1f.x,R1f.y,R1f.z,PV0f.w),vec4(intBitsToFloat(uf_remappedVS[1].x),intBitsToFloat(uf_remappedVS[1].y),intBitsToFloat(uf_remappedVS[1].z),intBitsToFloat(uf_remappedVS[1].w))); +PV1f.x = R0f.x; +PV1f.y = R0f.x; +PV1f.z = R0f.x; +PV1f.w = R0f.x; +R127f.z = (PV0f.x > 0.0)?1.0:0.0; +R127f.z /= 2.0; +PS1f = R127f.z; +// 2 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[2].x),intBitsToFloat(uf_remappedVS[2].y),intBitsToFloat(uf_remappedVS[2].z),intBitsToFloat(uf_remappedVS[2].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.y = tempf.x; +PS0f = (0.0 > R127f.x)?1.0:0.0; +PS0f /= 2.0; +// 3 +backupReg0f = R127f.z; +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(uf_remappedVS[3].y),intBitsToFloat(uf_remappedVS[3].z),intBitsToFloat(uf_remappedVS[3].w))); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R0f.z = tempf.x; +R127f.z = backupReg0f + -(PS0f); +PS1f = R127f.z; +// 4 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,R127f.w),vec4(intBitsToFloat(uf_remappedVS[4].x),intBitsToFloat(uf_remappedVS[4].y),intBitsToFloat(uf_remappedVS[4].z),intBitsToFloat(uf_remappedVS[4].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R0f.w = tempf.x; +PS0f = R127f.y + -(R126f.z); +// 5 +R1f.x = PS0f + 0.5; +PV1f.y = R127f.z + 0.5; +// 6 +R1f.y = PV1f.y + -(R126f.x); +R1f.z = PV1f.y + R126f.x; +R1f.w = PV1f.y; +// export +SET_POSITION(vec4(R0f.x, R0f.y, R0f.z, R0f.w)); +// export +passParameterSem0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} \ No newline at end of file diff --git a/src/BreathOfTheWild/Graphics/ffe0e8c84f6e8da9_000003c000009269_ps.txt b/src/BreathOfTheWild/Graphics/ffe0e8c84f6e8da9_000003c000009269_ps.txt new file mode 100644 index 00000000..74bddc2f --- /dev/null +++ b/src/BreathOfTheWild/Graphics/ffe0e8c84f6e8da9_000003c000009269_ps.txt @@ -0,0 +1,729 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader ffe0e8c84f6e8da9 +// Shadow 2x2 box blur fix +// shader dumped from BotW v1.3.1, using Cemu 1.10.0 +const float resScale = $shadowRes; + +UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArrayShadow textureUnitPS8; +TEXTURE_LAYOUT(15, 1, 5) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem5; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 5) out vec4 passPixelColor5; +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem5); +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R6i.xzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xzw); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).xw); +} +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.w)) + uf_blockPS1[14].x)); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.z)) + uf_blockPS1[14].x)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.x)) + uf_blockPS1[14].x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x)); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0))); +PS0i = R127i.x; +// 1 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0))); +R125i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 2.0 + -(1.0))); +PS1i = R125i.z; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R127i.y)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R127i.y)))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.z)))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.z)))); +PS0i = R126i.z; +// 3 +R125i.x = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z))); +R124i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.x)); +R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.w)); +PS1i = R126i.y; +// 4 +backupReg0i = R126i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R126i.x = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(backupReg0i)); +PS0i = R126i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +R126i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R127i.y)); +PS1i = R126i.w; +// 6 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[43].x)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R126i.x))); +R125i.y = floatBitsToInt(sqrt(intBitsToFloat(backupReg0i))); +PS0i = R125i.y; +// 7 +backupReg0i = R127i.z; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[45].x)); +R124i.y = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000)); +R127i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0))); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R125i.z; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS1[18].y, uf_blockPS1[18].z)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PS0i = R9i.z; +// 9 +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R126i.z))); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R125i.x)) + intBitsToFloat(R127i.y))); +R126i.z = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[45].y) + intBitsToFloat(R124i.x))); +PV1i.w = R123i.w; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.z))); +PS1i = R126i.w; +// 10 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(R4i.w))); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.w))); +PV0i.z = R1i.z; +R125i.w = R8i.x; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.z = R7i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +PS0i = R124i.z; +// 11 +R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R2i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R2i.x = clampFI32(R2i.x); +PS1i = R2i.x; +// 12 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), -(intBitsToFloat(R126i.z)))); +PV0i.x = R125i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0xbb6fe5d7)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3ca30589)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3ca30589)); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0xbb6fe5d7)); +PS0i = R126i.z; +// 13 +R10i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R126i.y)); +R3i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y)); +R1i.w = 0x3f800000; +R4i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.z))); +PS1i = R4i.x; +// 14 +R3i.x = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R126i.z))); +R2i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R127i.y))); +R11i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R126i.x)); +R10i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w))); +R10i.w = clampFI32(R10i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y)); +// 15 +backupReg0i = R124i.y; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PS0i))); +PV1i.y = R124i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(backupReg0i)); +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = PS1i & int(1); +// 17 +R11i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.x))); +R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.y))); +R11i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R11i.w = clampFI32(R11i.w); +R8i.y = ((PS0i == 0)?(0):(0x3f800000)); +PS1i = R8i.y; +// 18 +tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x)); +R2i.w = floatBitsToInt(tempResultf); +PS0i = R2i.w; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0); +R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R9i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS0i = R9i.x; +// 1 +R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +R12i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x)); +R12i.w = clampFI32(R12i.w); +R7i.w = 0; +PS1i = R7i.w; +// 2 +predResult = (1.0 > intBitsToFloat(R10i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R12i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R4i.x)); +R12i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R3i.y)); +R13i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R4i.x))); +PS0i = R13i.x; +// 1 +R14i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R3i.x)); +R13i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R3i.y))); +R14i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R2i.y)); +PS1i = R14i.y; +// 2 +R15i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R3i.x))); +R15i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R2i.y))); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R7i.y) * 1.5); +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.x) * 1.5); +PV0i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(intBitsToFloat(R9i.z) * 1.5); +// 1 +backupReg0i = R1i.x; +backupReg1i = R1i.z; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = PV0i.w & int(1); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i))); +R122i.x = floatBitsToInt((intBitsToFloat(R2i.z) * 0.25 + 1.0)); +PS1i = R122i.x; +// 2 +R2i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R2i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R2i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i)); +R13i.w = PV1i.y - R127i.x; +PV0i.w = R13i.w; +PS0i = floatBitsToInt(uf_blockPS6[53].y/resScale); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 3 +R6i.x = floatBitsToInt(uf_blockPS6[53].x/resScale); +R6i.x = floatBitsToInt(intBitsToFloat(R6i.x) / 2.0); +PV1i.y = PV0i.w << 0x00000002; +R6i.z = floatBitsToInt(-(intBitsToFloat(PS0i))); +R2i.w = PS0i; +PS1i = floatBitsToInt(float(PV0i.w)); +// 4 +R0i.x = PV1i.y + 0x0000002b; +R0i.y = PV1i.y + 0x0000002d; +R0i.z = PV1i.y + 0x0000002a; +R0i.w = PV1i.y + 0x0000002c; +R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R7i.z; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.y = tempi.x; +R8i.z = PS0i; +PS1i = R8i.z; +} +if( activeMaskStackC[2] == true ) { +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.z)),vec4(-(intBitsToFloat(R9i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R10i.z)),-(intBitsToFloat(R7i.w))))); +R126i.x = clampFI32(R126i.x); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.y)); +PS0i = floatBitsToInt(tempResultf); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R6i.x))); +R1i.z = R7i.z; +PS1i = R1i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.z = R7i.z; +PS0i = R9i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R2i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R2i.z))); +// 5 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV0i.y))); +// 6 +backupReg0i = R6i.y; +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R7i.x))); +PV0i.x = R16i.x; +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R12i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R4i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R5i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.x))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.w)); +R127i.z = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +PS1i = R126i.z; +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +// 13 +R7i.x = floatBitsToInt((uf_blockPS6[53].x / resScale * 0.5 + intBitsToFloat(PV0i.z))); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f)); +R127i.y = clampFI32(R127i.y); +PV1i.y = R127i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R126i.z))); +PV1i.w = R127i.w; +R8i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R6i.x)); +PS1i = R8i.x; +// 14 +R1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.w)); +R7i.y = floatBitsToInt((uf_blockPS6[53].y / resScale * 0.5 + intBitsToFloat(PV1i.w))); +R7i.w = PV1i.y; +R8i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R6i.z)); +PS0i = R8i.y; +// 15 +R9i.x = floatBitsToInt((-(uf_blockPS6[53].x) / resScale * 0.5 + intBitsToFloat(R127i.z))); +R1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R2i.w)); +R8i.w = R127i.y; +R1i.w = R127i.y; +PS1i = R1i.w; +// 16 +R9i.y = floatBitsToInt((-(uf_blockPS6[53].y) / resScale * 0.5 + intBitsToFloat(R127i.w))); +R9i.w = R127i.y; +} +if( activeMaskStackC[2] == true ) { +R7i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +R8i.y = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w)))); +R1i.x = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)))); +R9i.w = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w)))); +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(R8i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 1 +R123i.z = floatBitsToInt((intBitsToFloat(R1i.x) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 2 +R5i.w = floatBitsToInt((intBitsToFloat(R9i.w) * 0.5 + intBitsToFloat(PV1i.z))/2.0); +PV0i.w = R5i.w; +// 3 +PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 4 +R0i.y = ((R13i.w > 0)?(PV1i.x):(0)); +// 5 +predResult = (R0i.y != 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = int(-1) + R13i.w; +// 1 +PV1i.w = PV0i.x << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R4i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R4i.z; +} +if( activeMaskStackC[3] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R2i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R1i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R3i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R4i.y; +// 6 +R4i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f)); +R4i.w = clampFI32(R4i.w); +} +if( activeMaskStackC[3] == true ) { +R4i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.w)))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R5i.w; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R4i.z))); +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R14i.xy)).x); +R0i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R15i.xy)).x); +R1i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R12i.xy)).x); +R1i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R13i.xy)).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(0x3f7eb852)); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x41a00000)); +R124i.z = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0); +R127i.w = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x3f555555)); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(R0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f8ba8d6)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fbc4580)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.y)) + 1.0)); +R127i.x = clampFI32(R127i.x); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + 0.5)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.y)) + 0.5)); +R125i.z = clampFI32(R125i.z); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i)); +PV0i.w = R126i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.x)) + 1.0)); +R125i.w = clampFI32(R125i.w); +PS0i = R125i.w; +// 3 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + 0.5)); +R126i.x = clampFI32(R126i.x); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + 0.5)); +R124i.w = clampFI32(R124i.w); +PV1i.w = R124i.w; +R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R126i.z)) + 1.0)); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 4 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.x))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + 0.5)); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.w)) + 0.5)); +PV0i.w = R127i.w; +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + 1.0)); +R125i.y = clampFI32(R125i.y); +PS0i = R125i.y; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) + -(intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PS0i)) + 0.5)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.z) + -(intBitsToFloat(PV0i.w))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R0i.w)) + 0.5)); +PV1i.w = R126i.w; +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R10i.w)) + intBitsToFloat(R5i.w))); +PS1i = R3i.w; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e35e743)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e35e743)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 9 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0xbedd476b)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c00000)); +PV1i.x = clampFI32(PV1i.x); +// 12 +R1i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R3i.w = R1i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R10i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R11i.z) * intBitsToFloat(0x3903126f) + 0.5)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R10i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = R11i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R2i.z = R1i.w; +PS0i = R2i.z; +// 1 +R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R2i.w = 0x3f800000; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R11i.w))) + intBitsToFloat(R1i.y))); +PS0i = R2i.y; +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(intBitsToFloat(PV0i.z))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R12i.w)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +// 5 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockPS10[3].z) + uf_blockPS10[1].y)); +R2i.x = clampFI32(R2i.x); +} +// export +passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm b/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm new file mode 100644 index 00000000..ab969837 --- /dev/null +++ b/src/BreathOfTheWild/Graphics/patch_AspectRatio.asm @@ -0,0 +1,168 @@ +[BotW_AspectRatio_Shared] +moduleMatches = 0xD91A406D,0x0F748D9C,0x9A61FF4C,0x8E3324A9,0xD71D859D,0x6FD41A61,0x9A2CA0C7,0x29DBB52A,0xFD091F9F,0xD472D8A5,0x6267BFD0 + +.origin = codecave + +aspectRatio: +.float $width/$height + + +[BotW_AspectRatio_V33] +moduleMatches = 0xD91A406D + +; rodata constants +0x10197FC0 = .float $width/$height +0x102CCFC0 = .float $width/$height +0x10331374 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02CFC260 = lis r9, aspectRatio@ha +0x02CFC274 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036AD410 = lis r28, aspectRatio@ha +0x036AD414 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V48] +moduleMatches = 0x0F748D9C + +; rodata constants +0x10197FC0 = .float $width/$height +0x102CCFC8 = .float $width/$height +0x103313A4 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02CFC2CC = lis r9, aspectRatio@ha +0x02CFC2E0 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036AD81C = lis r28, aspectRatio@ha +0x036AD820 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V64] +moduleMatches = 0x9A61FF4C + +; rodata constants +0x10198250 = .float $width/$height +0x102CD450 = .float $width/$height +0x1033182C = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02CFD900 = lis r9, aspectRatio@ha +0x02CFD914 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036AEF04 = lis r28, aspectRatio@ha +0x036AEF08 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V80] +moduleMatches = 0x8E3324A9 + +; rodata constants +0x1019A5A8 = .float $width/$height +0x102D4E30 = .float $width/$height +0x103391B4 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D056C8 = lis r9, aspectRatio@ha +0x02D056DC = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x036D0324 = lis r28, aspectRatio@ha +0x036D0328 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V97] +moduleMatches = 0xD71D859D + +; rodata constants +0x1019F980 = .float $width/$height +0x102DF8A0 = .float $width/$height +0x1034122C = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D2E65C = lis r9, aspectRatio@ha +0x02D2E670 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x03725CE8 = lis r28, aspectRatio@ha +0x03725CEC = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V112] +moduleMatches = 0x6FD41A61 + +; rodata constants +0x1019F9A8 = .float $width/$height +0x102DFB38 = .float $width/$height +0x103414D4 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D2F404 = lis r9, aspectRatio@ha +0x02D2F418 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x03726E18 = lis r28, aspectRatio@ha +0x03726E1C = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V144] +moduleMatches = 0x9A2CA0C7 + +; rodata constants +0x101A8A70 = .float $width/$height +0x102ECFD0 = .float $width/$height +0x1034F6CC = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D53CF4 = lis r9, aspectRatio@ha +0x02D53D08 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x0375B128 = lis r28, aspectRatio@ha +0x0375B12C = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V160] +moduleMatches = 0x9A2CA0C7 + +; rodata constants +0x101A8A70 = .float $width/$height +0x102ECF88 = .float $width/$height +0x1034F684 = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02D53CF4 = lis r9, aspectRatio@ha +0x02D53D08 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x0375AFF4 = lis r28, aspectRatio@ha +0x0375AFF8 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +; rodata constants +0x101BF878 = .float $width/$height +0x1030A3F4 = .float $width/$height +0x1036DBDC = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02E2BFC8 = lis r9, aspectRatio@ha +0x02E2BFDC = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x0386C314 = lis r28, aspectRatio@ha +0x0386C318 = lfs f12, aspectRatio@l(r28) + +[BotW_AspectRatio_V208] +moduleMatches = 0x6267BFD0 + +; rodata constants +0x101BF8E8 = .float $width/$height +0x1030A57C = .float $width/$height +0x1036DD4C = .float $width/$height + +; 3D Rendering In Inventory (calculated every load) +0x02E2C564 = lis r9, aspectRatio@ha +0x02E2C578 = lfs f4, aspectRatio@l(r9) + +; 3D Rendering (calculated every frame) +0x0386D01C = lis r28, aspectRatio@ha +0x0386D020 = lfs f12, aspectRatio@l(r28) \ No newline at end of file diff --git a/src/BreathOfTheWild/Graphics/rules.txt b/src/BreathOfTheWild/Graphics/rules.txt new file mode 100644 index 00000000..c7f8ab7b --- /dev/null +++ b/src/BreathOfTheWild/Graphics/rules.txt @@ -0,0 +1,1005 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Graphics +path = "The Legend of Zelda: Breath of the Wild/Graphics" +description = Allows you to change the game resolution, shadow resolution and anti-aliasing.||Made by Kiri, Skalfate, rajkosto and NAVras. +version = 6 + +[Default] +$width = 1280 +$height = 720 +$gameWidth = 1280 +$gameHeight = 720 +$aspectRatioWidth = 16 +$aspectRatioHeight = 9 +$fxaa:int = 1 +$shadowRes = 1 +$subPix:int = 1.0 +$edgeThreshold:int = 0.125 +$edgeThresholdMin:int = 0.0156 + + +# Aspect Ratio + +[Preset] +name = 16:9 (Default) +category = Aspect Ratio + +[Preset] +name = 16:10 +category = Aspect Ratio +$aspectRatioWidth = 16 +$aspectRatioHeight = 10 + +[Preset] +name = 21:9 +category = Aspect Ratio +$aspectRatioWidth = 21 +$aspectRatioHeight = 9 + +[Preset] +name = 32:9 +category = Aspect Ratio +$aspectRatioWidth = 32 +$aspectRatioHeight = 9 + +[Preset] +name = 32:10 +category = Aspect Ratio +$aspectRatioWidth = 32 +$aspectRatioHeight = 10 + +[Preset] +name = 48:9 +category = Aspect Ratio +$aspectRatioWidth = 48 +$aspectRatioHeight = 9 + +[Preset] +name = 4:3 +category = Aspect Ratio +$aspectRatioWidth = 4 +$aspectRatioHeight = 3 + +[Preset] +name = 5:4 +category = Aspect Ratio +$aspectRatioWidth = 5 +$aspectRatioHeight = 4 + +# 16:9 Resolutions + +[Preset] +name = 320x180 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 320 +$height = 180 + +[Preset] +name = 640x360 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 640 +$height = 360 + +[Preset] +name = 960x540 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 960 +$height = 540 + +[Preset] +name = 1280x720 (HD, Default) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +default = 1 + +[Preset] +name = 1600x900 (HD+) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 1600 +$height = 900 + +[Preset] +name = 1920x1080 (Full HD) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 1920 +$height = 1080 + +[Preset] +name = 2560x1440 (2K) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 2560 +$height = 1440 + +[Preset] +name = 3200x1800 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 3200 +$height = 1800 + +[Preset] +name = 3840x2160 (4K) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 3840 +$height = 2160 + +[Preset] +name = 5120x2880 (5K) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 5120 +$height = 2880 + +[Preset] +name = 7680x4320 (8K) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 7680 +$height = 4320 + +[Preset] +name = 10240x5760 (10K) +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 10240 +$height = 5760 + +# 16:10 Resolutions + +[Preset] +name = 1440x900 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 1440 +$height = 900 + +[Preset] +name = 1680x1050 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 1680 +$height = 1050 + +[Preset] +name = 1920x1200 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 1920 +$height = 1200 + +[Preset] +name = 2560x1600 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 2560 +$height = 1600 + +[Preset] +name = 2880x1800 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 2880 +$height = 1800 + +[Preset] +name = 3840x2400 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 3840 +$height = 2400 + +[Preset] +name = 5120x3200 +category = Resolution +condition = ((($aspectRatioWidth - 16) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 5120 +$height = 3200 + +# 21:9 Resolutions + +[Preset] +name = 2560x1080 +category = Resolution +condition = ((($aspectRatioWidth - 21) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 2560 +$height = 1080 + +[Preset] +name = 3440x1440 +category = Resolution +condition = ((($aspectRatioWidth - 21) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 3440 +$height = 1440 + +[Preset] +name = 3840x1600 +category = Resolution +condition = ((($aspectRatioWidth - 21) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 3840 +$height = 1600 + +[Preset] +name = 4300x1800 +category = Resolution +condition = ((($aspectRatioWidth - 21) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 4300 +$height = 1800 + +[Preset] +name = 6880x2880 +category = Resolution +condition = ((($aspectRatioWidth - 21) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 6880 +$height = 2880 + +[Preset] +name = 10240x4320 +category = Resolution +condition = ((($aspectRatioWidth - 21) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 10240 +$height = 4320 + +# 32:9 Resolutions + +[Preset] +name = 3840x1080 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 3840 +$height = 1080 + +[Preset] +name = 5120x1440 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 5120 +$height = 1440 + +[Preset] +name = 7680x2160 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 7680 +$height = 2160 + +[Preset] +name = 10240x2880 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 10240 +$height = 2880 + +# 31:10 Resolutions + +[Preset] +name = 3840x1200 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 3840 +$height = 1200 + +[Preset] +name = 5760x1200 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 5760 +$height = 1800 + +[Preset] +name = 7680x2400 +category = Resolution +condition = ((($aspectRatioWidth - 32) == 0) + (($aspectRatioHeight - 10) == 0)) == 2 +$width = 7680 +$height = 2400 + +# 48:9 Resolutions + +[Preset] +name = 5760x1080 +category = Resolution +condition = ((($aspectRatioWidth - 48) == 0) + (($aspectRatioHeight - 9) == 0)) == 2 +$width = 5760 +$height = 1080 + +# 4:3 Resolutions + +[Preset] +name = 800x600 +category = Resolution +condition = ((($aspectRatioWidth - 4) == 0) + (($aspectRatioHeight - 3) == 0)) == 2 +$width = 800 +$height = 600 + +[Preset] +name = 1024x768 +category = Resolution +condition = ((($aspectRatioWidth - 4) == 0) + (($aspectRatioHeight - 3) == 0)) == 2 +$width = 1024 +$height = 768 + +[Preset] +name = 1280x960 +category = Resolution +condition = ((($aspectRatioWidth - 4) == 0) + (($aspectRatioHeight - 3) == 0)) == 2 +$width = 1280 +$height = 960 + +[Preset] +name = 1600x1200 +category = Resolution +condition = ((($aspectRatioWidth - 4) == 0) + (($aspectRatioHeight - 3) == 0)) == 2 +$width = 1600 +$height = 1200 + +[Preset] +name = 1920x1440 +category = Resolution +condition = ((($aspectRatioWidth - 4) == 0) + (($aspectRatioHeight - 3) == 0)) == 2 +$width = 1920 +$height = 1440 + +# 5:4 Resolutions + +[Preset] +name = 1280x1024 +category = Resolution +condition = ((($aspectRatioWidth - 5) == 0) + (($aspectRatioHeight - 4) == 0)) == 2 +$width = 1280 +$height = 1024 + +[Preset] +name = 5760x1080 (3 Full HD ) +category = Resolution +condition = ((($aspectRatioWidth - 5) == 0) + (($aspectRatioHeight - 4) == 0)) == 2 +$width = 5760 +$height = 1080 + +[Preset] +name = 8640x1620 +category = Resolution +condition = ((($aspectRatioWidth - 5) == 0) + (($aspectRatioHeight - 4) == 0)) == 2 +$width = 8640 +$height = 1620 + +[Preset] +name = 14400x2700 +category = Resolution +condition = ((($aspectRatioWidth - 5) == 0) + (($aspectRatioHeight - 4) == 0)) == 2 +$width = 14400 +$height = 2700 + +# Anti-Aliasing + +[Preset] +name = Normal FXAA (Default) +category = Anti-Aliasing +default = 1 + +[Preset] +name = NVIDIA FXAA +category = Anti-Aliasing +$fxaa:int = 2 + +[Preset] +name = None +category = Anti-Aliasing +$fxaa:int = 0 + +# Shadow Graphics Pack + +[Preset] +name = Low (50%) +category = Shadows +$shadowRes = 0.5 + +[Preset] +name = Medium (100%, Default) +default = 1 +category = Shadows + +[Preset] +name = High (200%) +category = Shadows +$shadowRes = 2 + +[Preset] +name = Ultra (300%) +category = Shadows +$shadowRes = 3 + +[Preset] +name = Extreme (400%, Unstable) +category = Shadows +$shadowRes = 4 + +# All 720p textures: +# - 0x001=World Lighting Red8 +# - 0x005=Link and Objects Depth +# - 0x007=World Lighting Red-Green Texture +# - 0x019=Menu Interface/GUI +# - 0x01a=Normals +# - 0x41a=Geometry rendering +# - 0x806=Wind/Fog +# - 0x80e=Depth stencil buffer +# - 0x816=Weapon and Objects Bloom +# - 0x820=Field Fog + +# Depth/Geometry/Shading Rendering +[TextureRedefine] +width = 1280 +height = 720 +formats = 0x001,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806,0x816,0x820 +# formatsExcluded = 0x008 # Game Load Opening Background Image +tileModesExcluded = 0x001 # For Video Playback +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 + +# Gamepad - background +[TextureRedefine] +width = 864 +height = 480 +formats = 0x019 +# formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails +overwriteWidth = ($width/$gameWidth) * 864 +overwriteHeight = ($height/$gameHeight) * 480 + +# Gamepad - game render size +[TextureRedefine] +width = 854 +height = 480 +formats = 0x019 +# formatsExcluded = 0x034 # Exclude 0x034 which is used for large album thumbnails +overwriteWidth = ($width/$gameWidth) * 854 +overwriteHeight = ($height/$gameHeight) * 480 + +# All 1/2, 1/4 textures: +# - 0x001=World Lighting - Red +# - 0x005=Depth for Link and Objects +# - 0x019=GUI +# - 0x01a=Blurs and Normals +# - 0x80e=World and Objects Depth 32bit +# - 0x806=Wind/Fog +# - 0x816=World & Weapon Bloom +# - 0x820=Fog + +# Required 1/2 resolutions +[TextureRedefine] +width = 640 +height = 368 +formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x806,0x816,0x820,0x41a +# formatsExcluded = 0x431 # Exclude 0x431 which is used for adventure log images +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = (($height/$gameHeight) * 368) + 0.49 + +# Required 1/2 resolutions +[TextureRedefine] +width = 640 +height = 360 +formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x806,0x816,0x820,0x41a +# formatsExcluded = 0x431 +tileModesExcluded = 0x001 # For Video Playback +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 360 + +# Required 1/3 resolutions +[TextureRedefine] +width = 384 +height = 192 +formats = 0x001 # World lighting - Red +overwriteWidth = ($width/$gameWidth) * 384 +overwriteHeight = ($height/$gameHeight) * 192 + +# Required 1/4 resolutions +[TextureRedefine] +width = 320 +height = 192 +formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 192 + +# Required 1/4 resolutions +[TextureRedefine] +width = 320 +height = 180 +formats = 0x001,0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 180 + +# Required 1/6 resolution +[TextureRedefine] +width = 192 +height = 96 +formats = 0x007,0x806 # Used for Fog +overwriteWidth = ($width/$gameWidth) * 192 +overwriteHeight = ($height/$gameHeight) * 96 + +# Required 1/8 resolution +[TextureRedefine] +width = 160 +height = 96 +formats = 0x001,0x005,0x007,0x806,0x80e,0x816 # Used for Fog/Depth/Bloom +overwriteWidth = ($width/$gameWidth) * 160 +overwriteHeight = ($height/$gameHeight) * 96 + +# Required 1/8 resolution +[TextureRedefine] +width = 160 +height = 90 +formats = 0x001,0x005,0x007,0x806,0x80e,0x816 +overwriteWidth = ($width/$gameWidth) * 160 +overwriteHeight = ($height/$gameHeight) * 90 + +# 1/10 resolution; Break 960x540 background: ambient light, bloom +# +# [TextureRedefine] +# width = 128 +# height = 80 +# formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a +# overwriteWidth = ($width/$gameWidth) * 128 +# overwriteHeight = ($height/$gameHeight) * 80 +# +# [TextureRedefine] +# width = 120 +# height = 75 +# formats = 0x005,0x007,0x019,0x01a,0x80e,0x816,0x806,0x820,0x41a +# overwriteWidth = ($width/$gameWidth) * 120 +# overwriteHeight = ($height/$gameHeight) * 75 + +# Required Fogs and Dust +[TextureRedefine] +width = 128 +height = 48 +formats = 0x806,0x816,0x005,0x007,0x820 +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 48 + +# Required 1/13 resolution +[TextureRedefine] +width = 96 +height = 48 +formats = 0x816,0x80e # Used for bloom/depth +overwriteWidth = ($width/$gameWidth) * 96 +overwriteHeight = ($height/$gameHeight) * 48 + +# Required 1/16 resolution +[TextureRedefine] +width = 80 +height = 45 +formats = 0x816,0x806,0x007 # Used for bloom/fog +overwriteWidth = ($width/$gameWidth) * 80 +overwriteHeight = ($height/$gameHeight) * 45 + +# Required 1/16 resolution +[TextureRedefine] +width = 64 +height = 64 +formats = 0x80e # Used for depth +overwriteWidth = ($width/$gameWidth) * 64 +overwriteHeight = ($height/$gameHeight) * 64 + +# 0x019 - GUI Requirements + +[TextureRedefine] +width = 128 +height = 720 +formats = 0x019 +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] +width = 110 +height = 720 +formats = 0x019 +overwriteWidth = ($width/$gameWidth) * 110 +overwriteHeight = ($height/$gameHeight) * 720 + +# 0x816 - Blooms & Effects + +# Heat wave effect +[TextureRedefine] +width = 1024 +height = 512 +depth = 1 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 1024 +overwriteHeight = ($height/$gameHeight) * 512 + +# Sheikah slate scope +[TextureRedefine] +width = 512 +height = 256 +depth = 1 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 256 + +# World bloom + +[TextureRedefine] +width = 256 +height = 128 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 256 +overwriteHeight = ($height/$gameHeight) * 128 + +[TextureRedefine] +width = 128 +height = 64 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 64 + +[TextureRedefine] +width = 64 +height = 32 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 64 +overwriteHeight = ($height/$gameHeight) * 32 + +[TextureRedefine] # catches cubemap! 32x32, 16x16 +width = 32 +height = 16 +depth = 1 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 32 +overwriteHeight = ($height/$gameHeight) * 16 + +[TextureRedefine] +width = 24 +height = 16 +depth = 1 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 24 +overwriteHeight = ($height/$gameHeight) * 16 + +[TextureRedefine] +width = 40 +height = 22 +depth = 1 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 40 +overwriteHeight = ($height/$gameHeight) * 22 + +[TextureRedefine] +width = 20 +height = 11 +depth = 1 +formats = 0x816 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 20 +overwriteHeight = ($height/$gameHeight) * 11 + +# Great Fairy / Stable / Stores Viewports + +# Required, Great Fairy Full Resolution Viewports +[TextureRedefine] +width = 960 +height = 540 +formats = 0x816,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806 +tileModesExcluded = 0x001 # For Video Playback +overwriteWidth = ($width/$gameWidth) * 960 +overwriteHeight = ($height/$gameHeight) * 540 + +# Required, Great Fairy Full Resolution Viewports +[TextureRedefine] +width = 960 +height = 544 +formats = 0x816,0x005,0x007,0x019,0x01a,0x41a,0x80e,0x806 +overwriteWidth = ($width/$gameWidth) * 960 +overwriteHeight = ($height/$gameHeight) * 544 + +# Required Great Fairy Red Viewport and Depth port of the same size +[TextureRedefine] +width = 512 +height = 272 +depth = 1 +formats = 0x001,0x005 # Red Viewport / Depth +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 272 + +# Required, Great Fairy Half Resolution Viewports +[TextureRedefine] +width = 480 +height = 272 +formats = 0x816,0x01a,0x820,0x001,0x80e,0x820 +overwriteWidth = ($width/$gameWidth) * 480 +overwriteHeight = ($height/$gameHeight) * 272 + +# Required, Great Fairy Half Resolution Viewports +[TextureRedefine] +width = 480 +height = 270 +formats = 0x816,0x01a,0x820,0x001,0x80e,0x820 +overwriteWidth = ($width/$gameWidth) * 480 +overwriteHeight = ($height/$gameHeight) * 270 + +# Required - Great Fairy background heatwave effect +[TextureRedefine] +width = 512 +height = 512 +depth = 1 +formats = 0x816 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 512 + +# Select-Menu Map +[TextureRedefine] +width = 1504 +height = 720 +formats = 0x019 +overwriteWidth = ($width/$gameWidth) * 1504 +overwriteHeight = ($height/$gameHeight) * 720 + +# Select-Menu Map +[TextureRedefine] +width = 1500 +height = 720 +formats = 0x019 +overwriteWidth = ($width/$gameWidth) * 1500 +overwriteHeight = ($height/$gameHeight) * 720 + +# Select-Menu Map Overlay +[TextureRedefine] +width = 1280 +height = 608 +formats = 0x019 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 608 + +# Dyeing background: inventory fading border +[TextureRedefine] +width = 1280 +height = 400 +formats = 0x19 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 400 + +# Mini-map GUI +[TextureRedefine] +width = 192 +height = 192 +formats = 0x019 +overwriteWidth = ($width/$gameWidth) * 192 +overwriteHeight = ($height/$gameHeight) * 192 + +# Red Viewport +[TextureRedefine] +width = 1920 +height = 912 +formats = 0x001 +overwriteWidth = ($width/$gameWidth) * 1920 +overwriteHeight = ($height/$gameHeight) * 912 + +# 3D Map Ganons Castle & Beasts +[TextureRedefine] +width = 512 +height = 288 +formats = 0x01a,0x80e +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 288 + +# Improve Color Banding for GUI Format 0x019 +# 0x019 - R10_G10_B10_A2_UNORM ------> 0x01f - R16_G16_B16_A16_UNORM + +[TextureRedefine] +width = 1280 +height = 720 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] +width = 640 +height = 368 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = (($height/$gameHeight) * 368) + 0.49 + +[TextureRedefine] +width = 640 +height = 360 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 640 +overwriteHeight = ($height/$gameHeight) * 360 + +[TextureRedefine] +width = 320 +height = 192 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 192 + +[TextureRedefine] +width = 320 +height = 180 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 320 +overwriteHeight = ($height/$gameHeight) * 180 + +[TextureRedefine] +width = 128 +height = 720 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 128 +overwriteHeight = ($height/$gameHeight) * 720 + +[TextureRedefine] +width = 110 +height = 720 +formats = 0x019 +overwriteFormat = 0x01f +overwriteWidth = ($width/$gameWidth) * 110 +overwriteHeight = ($height/$gameHeight) * 720 + +# Fix texture cache's mismatch warnings + +[TextureRedefine] # 1280x720; Map: travel confirm menu background blur +width = 1280 +height = 288 +depth = 1 +formats = 0x19 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 288 + +[TextureRedefine] # same as above +width = 1280 +height = 278 +depth = 1 +formats = 0x19 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 1280 +overwriteHeight = ($height/$gameHeight) * 278 + +[TextureRedefine] # 640x360 mip 1; Scope dof close-up depth +width = 512 +height = 256 +depth = 1 +formats = 0x1 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 256 + +[TextureRedefine] # 640x360 mip 2; same as above +width = 256 +height = 128 +depth = 1 +formats = 0x1 +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 256 +overwriteHeight = ($height/$gameHeight) * 128 + +# Uncomment if HUD setting is Pro +# [TextureRedefine] # 640x360 mip 3; Designated level for dof processing. breaks sound wave HUD +# width = 128 +# height = 64 +# depth = 1 +# formats = 0x1 +# tilemodes = 4 +# overwriteWidth = ($width/$gameWidth) * 128 +# overwriteHeight = ($height/$gameHeight) * 64 + +[TextureRedefine] # 320x180; Blur on center piece of the map. not used at the moment of the capture +width = 293 +height = 185 +depth = 1 +formats = 0x1a +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 293 +overwriteHeight = ($height/$gameHeight) * 185 + +# [TextureRedefine] # 128x64; Fix sound HUD, breaks icons and teleport strips +# width = 64 +# height = 64 +# depth = 1 +# formats = 0x1 +# tilemodes = 4 +# overwriteWidth = ($width/$gameWidth) * 64 +# overwriteHeight = ($height/$gameHeight) * 64 + +# Uncomment if HUD setting is Pro +# [TextureRedefine] # 128x64; Mini-game count down number fade +# width = 40 +# height = 50 +# depth = 1 +# formats = 0x1 +# tilemodes = 4 +# overwriteWidth = ($width/$gameWidth) * 40 +# overwriteHeight = ($height/$gameHeight) * 50 + +# Resize letters box: Subtitle + +[TextureRedefine] +width = 512 +height = 96 +depth = 1 +formats = 0x1a +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 512 +overwriteHeight = ($height/$gameHeight) * 96 + +[TextureRedefine] +width = 500 +height = 94 +depth = 1 +formats = 0x1a +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 500 +overwriteHeight = ($height/$gameHeight) * 94 + +# Resize letters box: pop up message + +[TextureRedefine] +width = 480 +height = 32 +depth = 1 +formats = 0x1a +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 480 +overwriteHeight = ($height/$gameHeight) * 32 + +[TextureRedefine] +width = 464 +height = 28 +depth = 1 +formats = 0x1a +tilemodes = 4 +overwriteWidth = ($width/$gameWidth) * 464 +overwriteHeight = ($height/$gameHeight) * 28 + +# Shadows Graphic Pack + +[TextureRedefine] +width = 768 +height = 720 +formats = 0x5 +overwriteWidth = $shadowRes * 768 +overwriteHeight = $shadowRes * 720 + +[TextureRedefine] +width = 720 +height = 720 +formats = 0x5 +overwriteWidth = $shadowRes * 720 +overwriteHeight = $shadowRes * 720 + +[TextureRedefine] +width = 384 +height = 368 +formats = 0x5 +overwriteWidth = $shadowRes * 384 +overwriteHeight = $shadowRes * 368 + +[TextureRedefine] +width = 384 +height = 360 +formats = 0x5 +overwriteWidth = $shadowRes * 384 +overwriteHeight = $shadowRes * 360 + +[TextureRedefine] +width = 360 +height = 360 +formats = 0x5 +overwriteWidth = $shadowRes * 360 +overwriteHeight = $shadowRes * 360 diff --git a/src/BreathOfTheWild/Mods/CameraSensitivity/patch_CameraSensitivity.asm b/src/BreathOfTheWild/Mods/CameraSensitivity/patch_CameraSensitivity.asm new file mode 100644 index 00000000..a96533c3 --- /dev/null +++ b/src/BreathOfTheWild/Mods/CameraSensitivity/patch_CameraSensitivity.asm @@ -0,0 +1,5 @@ +[BotW_CameraSensivity_V208] +moduleMatches = 0x6267BFD0 + +0x102164C0 = .float ($sensitivity*-1) +0x101B3280 = .float (2*$movementSensitivity)+1 diff --git a/src/BreathOfTheWild/Mods/CameraSensitivity/rules.txt b/src/BreathOfTheWild/Mods/CameraSensitivity/rules.txt new file mode 100644 index 00000000..d97aa4a9 --- /dev/null +++ b/src/BreathOfTheWild/Mods/CameraSensitivity/rules.txt @@ -0,0 +1,131 @@ +[Definition] +titleIds = 00050000101C9400,00050000101C9500 +path = "The Legend of Zelda: Breath of the Wild/Mods/Camera Sensitivity" +description = Changes the sensitivity of the camera.|On top of the normal sensitivity you can apply additional sensitivity while moving.||Made by FakeMichau and theboy181. +version = 6 + +[Default] +$sensitivity = 1.00 +$movementSensitivity = 1.00 + + +[Preset] +name = 0.5x +category = Camera Sensitivity +$sensitivity = 0.50 + +[Preset] +name = 0.75x +category = Camera Sensitivity +$sensitivity = 0.9 + +[Preset] +name = 0.9x +category = Camera Sensitivity +$sensitivity = 0.9 + +[Preset] +name = 1x (Default) +category = Camera Sensitivity +default = 1 + +[Preset] +name = 1.1x +category = Camera Sensitivity +$sensitivity = 1.10 + +[Preset] +name = 1.25x +category = Camera Sensitivity +$sensitivity = 1.25 + +[Preset] +name = 1.4x (Recommended) +category = Camera Sensitivity +$sensitivity = 1.40 + +[Preset] +name = 1.5x +category = Camera Sensitivity +$sensitivity = 1.50 + +[Preset] +name = 1.75x +category = Camera Sensitivity +$sensitivity = 1.75 + +[Preset] +name = 2x +category = Camera Sensitivity +$sensitivity = 2.00 + +[Preset] +name = 2.5x +category = Camera Sensitivity +$sensitivity = 2.50 + +[Preset] +name = 3x +category = Camera Sensitivity +$sensitivity = 3.00 + + +[Preset] +name = 0.5x +category = Additional Movement Sensitivity +$movementSensitivity = 0.5 + +[Preset] +name = 0.75x +category = Additional Movement Sensitivity +$movementSensitivity = 0.75 + +[Preset] +name = 0.9x +category = Additional Movement Sensitivity +$movementSensitivity = 0.9 + +[Preset] +name = 1x (Default) +category = Additional Movement Sensitivity +default = 1 + +[Preset] +name = 1.1x +category = Additional Movement Sensitivity +$movementSensitivity = 1.10 + +[Preset] +name = 1.15x (Recommended) +category = Additional Movement Sensitivity +$movementSensitivity = 1.15 + +[Preset] +name = 1.25x +category = Additional Movement Sensitivity +$movementSensitivity = 1.25 + +[Preset] +name = 1.35x +category = Additional Movement Sensitivity +$movementSensitivity = 1.35 + +[Preset] +name = 1.5x +category = Additional Movement Sensitivity +$movementSensitivity = 1.50 + +[Preset] +name = 2x +category = Additional Movement Sensitivity +$movementSensitivity = 2.00 + +[Preset] +name = 2.5x +category = Additional Movement Sensitivity +$movementSensitivity = 2.50 + +[Preset] +name = 3x +category = Additional Movement Sensitivity +$movementSensitivity = 3.00 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/CelShading/1c7db40ff5d693ab_001ffffe4924b249_ps.txt b/src/BreathOfTheWild/Mods/CelShading/1c7db40ff5d693ab_001ffffe4924b249_ps.txt new file mode 100644 index 00000000..41cab50b --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/1c7db40ff5d693ab_001ffffe4924b249_ps.txt @@ -0,0 +1,1353 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 1c7db40ff5d693ab +// Used for: Link and all NPCs Shadows Renderer, NPC Distant Fog RGB Renderer, Body RGB renderer - Dumped with Cemu 1.20.1 + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 11) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[33]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[33]; +uniform vec2 uf_fragCoordScale; +#endif + +#define bright $bright +#define shdwFix $shdwFix +#define smode $smode +#define shadowsbrightness $shadowsbrightness +#define sred $sred +#define sgreen $sgreen +#define sblue $sblue + +#ifndef smode + #define smode 0 +#endif +#ifndef shadowsbrightness + #define shadowsbrightness 1 +#endif +#ifndef sred + #define sred 1 +#endif +#ifndef sgreen + #define sgreen 1 +#endif +#ifndef sblue + #define sblue 1 +#endif + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14; +TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ + +#if (shdwFix == 0) // Initiate Altros + +ivec4 Temp0i = ivec4(0); +ivec4 Temp1i = ivec4(0); +ivec4 High0i = ivec4(0); +ivec4 Low0i = ivec4(0); +ivec4 Left0i = ivec4(0); +ivec4 Right0i = ivec4(0); +ivec4 YHigh0i = ivec4(0); +ivec4 YLow0i = ivec4(0); +ivec4 YLeft0i = ivec4(0); +ivec4 YRight0i = ivec4(0); +ivec4 BHigh0i = ivec4(0); +ivec4 BLow0i = ivec4(0); +ivec4 BLeft0i = ivec4(0); +ivec4 BRight0i = ivec4(0); +ivec4 LtBlueShadow = ivec4(0); + +#endif + +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); // Links cutout comes from passparamsem0 +R1i = floatBitsToInt(passParameterSem2); // no cel shading +R2i = floatBitsToInt(passParameterSem6); + +#if (shdwFix == 1) // SkalFate math magic + +ivec4 Temp0i = ivec4(0); // initializes a temp vector for shadow mathe-magics + +#endif + +// ------------------------------------------------------------------------------------------------------------- dynamic shadows on link +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); // seems to affect links head area +R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); // seems to affect shadows on link body +R15i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xw); +R4i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R16i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +R14i.x = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R2i.zw)).x); +} + +// ------------------------------------------------------------------------------------------------------------- false makes link grey +if( activeMaskStackC[1] == true ) { +// 0 +R124i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.y = R125i.y; +R3i.z = 0; +R5i.w = 0x3f800000; +R126i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PS0i = R126i.y; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[2].x)) + -(intBitsToFloat(uf_remappedPS[2].y)))); +R127i.w = clampFI32(R127i.w); +R126i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].w)) + 1.0); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[4].x))); +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[5].x))); +R10i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[5].y)) + intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[6].x))); +R125i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +R127i.w = floatBitsToInt(max(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[6].y)) + intBitsToFloat(PV0i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R0i.y; +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(backupReg0i))); +PV1i.w = R123i.w; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PS1i = R3i.x; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.x = R123i.x; +R6i.y = floatBitsToInt(max(intBitsToFloat(R15i.x), intBitsToFloat(R127i.w))); +R9i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(PV1i.w)); +PV0i.z = R9i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[5].z)) + intBitsToFloat(R125i.x))); +PV0i.w = R123i.w; + +#if (shdwFix == 0 || shdwFix == 1) // Altros and SkalFate + +tempResultf = log2(intBitsToFloat(R3i.y)); + +#else + +tempResultf = max(0.0, intBitsToFloat(R3i.y)); +tempResultf = log2(tempResultf); + +#endif + +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.y = floatBitsToInt(tempResultf); +PS0i = R127i.y; +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) + intBitsToFloat(PV0i.w)); +PV1i.x = R5i.x; +R8i.y = PV0i.z; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[6].z)) + intBitsToFloat(R127i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R4i.z = floatBitsToInt(tempResultf); +PS1i = R4i.z; +// 8 +R9i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R127i.y))); +R8i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[6].w) + intBitsToFloat(PV1i.z)); +PV0i.z = R8i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(R127i.y))); +R13i.x = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y))); +PS0i = R13i.x; +// 9 +R127i.x = uf_remappedPS[7].y; +R9i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3a83126f)); +R127i.z = uf_remappedPS[8].y; +R125i.w = floatBitsToInt(min(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 10 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[3].w))/2.0); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(0x2edbe6ff)); +R126i.z = uf_remappedPS[9].y; +R127i.w = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(0xbecccccd)); +R125i.x = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R125i.x; +// 11 +backupReg0i = R126i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[10].x)) + -(intBitsToFloat(uf_remappedPS[10].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R11i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(uf_remappedPS[11].y))); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40200001)); +R126i.w = clampFI32(R126i.w); +R14i.y = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R4i.y) + 1.0)); +PS1i = R14i.y; +// 12 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R127i.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; + +#if (shdwFix == 0 || shdwFix == 1) // Altros and SkalFate + +tempResultf = log2(intBitsToFloat(PV0i.x)); + +#else + +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); + +#endif + +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 14 +R0i.x = floatBitsToInt(min(intBitsToFloat(R15i.x), intBitsToFloat(R125i.w))); +R12i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x41200000)); +R12i.y = clampFI32(R12i.y); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].z), intBitsToFloat(PS1i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(uf_remappedPS[3].z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 15 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[13].x)) + intBitsToFloat(uf_remappedPS[14].w))); +R125i.x = clampFI32(R125i.x); +R127i.y = floatBitsToInt((intBitsToFloat(PS0i) * 4.0 + intBitsToFloat(0xc0400000))); +R127i.y = clampFI32(R127i.y); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R14i.y))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +R17i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R127i.w = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); + +#if (shdwFix == 0 || shdwFix == 1) // Altros and SkalFate + +tempResultf = log2(intBitsToFloat(R127i.x)); + +#else + +tempResultf = max(0.0, intBitsToFloat(R127i.x)); +tempResultf = log2(tempResultf); + +#endif + +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +R6i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3f4ccccd)); +R13i.y = floatBitsToInt(intBitsToFloat(R127i.y) + -(0.5)); +R13i.y = floatBitsToInt(intBitsToFloat(R13i.y) * 4.0); +R13i.y = clampFI32(R13i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(PS0i))); +R6i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3f4ccccd)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.z))); +// 18 +R8i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3f4ccccd)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R2i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[12].w)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 19 +R12i.x = R1i.w; +R12i.x = clampFI32(R12i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R6i.z = floatBitsToInt((intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(0x3f4ccccd)); +PV1i.w = clampFI32(PV1i.w); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 20 +R2i.x = floatBitsToInt((intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd) + 1.0)); +R5i.y = R6i.y; +R5i.y = clampFI32(R5i.y); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[15].w))); +R3i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(1.0)); + +#if (shdwFix == 0 || shdwFix == 1) // Altros and SkalFate + +tempResultf = log2(intBitsToFloat(R125i.x)); + +#else + +tempResultf = max(0.0, intBitsToFloat(R125i.x)); +tempResultf = log2(tempResultf); + +#endif + +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R0i.w = floatBitsToInt(tempResultf); +PS0i = R0i.w; +} +// ------------------------------------------------------------------------------------------------------------- false turns link almost dark, lighting on link +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].x), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].y), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.y = R125i.y; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R14i.y))); +PV0i.z = R10i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x42960000)); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(R2i.y)); +PS0i = R126i.w; +// 1 +R125i.x = PV0i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(PS0i)) + 1.0)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].z), intBitsToFloat(uf_remappedPS[17].w))); +PV1i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.w = R123i.w; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R2i.z)) + intBitsToFloat(R2i.z))); +PS1i = R0i.z; +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y), intBitsToFloat(R0i.w))); +PV0i.y = PV1i.z; +R2i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].x) + -(intBitsToFloat(R6i.x))); +R0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].y) + -(intBitsToFloat(R6i.w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R3i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R4i.z))); +// 4 +backupReg0i = R127i.y; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x2edbe6ff)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +R124i.z = backupReg0i; +R124i.z = clampFI32(R124i.z); +R8i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].z) + -(intBitsToFloat(R8i.x))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(backupReg1i))); +// 5 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[19].w))); +// 6 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PS1i))); +R126i.y = R4i.x; +R126i.y = clampFI32(R126i.y); +PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), 0.0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 7 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.z), 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x437f0000)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R6i.z)) + 1.0); +PS1i = R127i.y; +// 8 +R127i.x = floatBitsToInt(intBitsToFloat(R15i.x) + -(intBitsToFloat(R6i.y))); +PV0i.y = floatBitsToInt(max(-(intBitsToFloat(PV1i.z)), intBitsToFloat(0xbf7d70a4))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40a00000)); +PV0i.z = clampFI32(PV0i.z); +R125i.w = floatBitsToInt(intBitsToFloat(R15i.y) + -(intBitsToFloat(R6i.y))); +R124i.w = floatBitsToInt(intBitsToFloat(R15i.z) + -(intBitsToFloat(R6i.y))); +PS0i = R124i.w; +// 9 +backupReg0i = R127i.y; +backupReg1i = R6i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV0i.z)) + 1.0)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R5i.y))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.y)) + intBitsToFloat(backupReg1i))); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +PV1i.w = R126i.w; +R3i.w = 0; +PS1i = R3i.w; +// 10 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.w = R123i.w; +R127i.w = int(intBitsToFloat(backupReg1i)); +PS0i = R127i.w; +// 11 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R124i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R124i.x))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.z))); +// 12 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R124i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.z = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(R127i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R127i.y = R127i.w & int(1); +PS0i = R127i.y; +// 13 +backupReg0i = R2i.w; +backupReg0i = R2i.w; +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0)); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(0xba0a8ec8))); +R5i.y = clampFI32(R5i.y); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(0xba0a8ec8))); +R5i.z = clampFI32(R5i.z); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R10i.z))) + intBitsToFloat(backupReg0i))); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.x)) + intBitsToFloat(0xba0a8ec8))); +R3i.z = clampFI32(R3i.z); +PS1i = R3i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[16].x),intBitsToFloat(uf_remappedPS[16].y),intBitsToFloat(uf_remappedPS[16].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(float(R127i.y)); +// 15 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PS0i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +PS1i = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3eaaaaab)); +// 16 +R123i.x = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), -(intBitsToFloat(R3i.w)))); +// 17 +backupReg0i = R7i.x; +R7i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),-(intBitsToFloat(R126i.z))) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.y),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.w))); +R7i.z = clampFI32(R7i.z); +// 19 +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.x),-(intBitsToFloat(R126i.x))) + intBitsToFloat(PV0i.x))); +PV1i.z = R12i.z; +// 20 +PV0i.y = PV1i.z; +PV0i.y = clampFI32(PV0i.y); +// 21 +R14i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xbecccccd)); +} + +// ------------------------------------------------------------------------------------------------------------- +if( activeMaskStackC[1] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[20].x),intBitsToFloat(uf_remappedPS[20].y),intBitsToFloat(uf_remappedPS[20].z),intBitsToFloat(uf_remappedPS[20].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[21].x),intBitsToFloat(uf_remappedPS[21].y),intBitsToFloat(uf_remappedPS[21].z),intBitsToFloat(uf_remappedPS[21].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R10i.x; +// 3 +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.z))); +} + +// ------------------------------------------------------------------------------------------------------------- makes link yellower +if( activeMaskStackC[1] == true ) { +R9i.y = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R9i.xy),0.0).x); +R10i.w = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R10i.xy),intBitsToFloat(R10i.w)).x); +R11i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R11i.xy)).xyz); +} + +// ------------------------------------------------------------------------------------------------------------- makes link yellower +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R9i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.w) + intBitsToFloat(uf_remappedPS[23].z)); +PV0i.x = clampFI32(PV0i.x); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(R6i.z))); +R123i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PV0i.z = R123i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R6i.z))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(R6i.z))); +PS0i = R11i.y; +// 1 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x41c80000) + intBitsToFloat(R9i.z))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[24].z))); +PV1i.y = R3i.y; +// 2 +R4i.y = PV1i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R12i.y))); +R10i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[25].x)); +// 3 +PV1i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R8i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.x))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R12i.x)) + 1.0)); +PV0i.w = R123i.w; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R7i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[26].z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[26].y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[26].x))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.x))); +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.w))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R6i.y))); +PV1i.w = R123i.w; +// 8 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R5i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.z))); +// 9 +// setting RGB for link to use in shadow calculations +R0i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R0i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R2i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +} + +// ------------------------------------------------------------------------------------------------------------- makes whole link blue/pink +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedPS[27].x)) + intBitsToFloat(uf_remappedPS[28].w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +// 1 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[29].w))); +// 2 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R14i.y))); +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R0i.z)) + intBitsToFloat(R0i.z))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.z))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].y), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].z), intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV1i.x))); +R5i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PS0i = R5i.z; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].z),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R4i.w = 0; +// 6 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; // links whole body red +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; // links whole body green +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; // links whole body blue +// 7 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.z))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.w))); +// 8 +predResult = (intBitsToFloat(R14i.x) != intBitsToFloat(0x3dc0c0c1)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +// actually deals with all light. Current method just brightens all of link. +// ------------------------------------------------------------------------------------------------------------- false makes link back-side shadow blue, light entity behind link +if( activeMaskStackC[2] == true ) { +// 0 +// r0i.x r0i.y, r2i.z carries RGB of ambient light on link +R3i.xyz = floatBitsToInt(vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R4i.z)) + vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R2i.z))); +R3i.w = 0x3f800000; +R0i.x = 0; + +#if (shdwFix != 1) // SkalFate + +PS0i = R0i.x; + +#endif + +// 1 + +#if (shdwFix == 0) // Big Altros Part here + +//R0i.yzw = ivec3(0,0,0); +//R0i.xyz = R3i.xyz; + +// simple effective method previously in use +//R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R15i.x) * bright)+ intBitsToFloat(R1i.x) * bright); +//R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R15i.y) * bright)+ intBitsToFloat(R1i.y) * bright); +//R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R15i.z) * bright)+ intBitsToFloat(R1i.z) * bright); +// end simple method + +// *************************************************************** +// *************************************************************** +// *************************************************************** +// REFERENCE MATERIAL +// *************************************************************** +// *************************************************************** +// *************************************************************** + + +// R17i darkest shadows mask +// R7i meduim shadows mask +// R11i anything not very bright mask + + + +// *********************** +// when set as R0i.xyz output DAY REDO +// *********************** +// +//R0i.x = floatBitsToInt(intBitsToFloat(R15i.x) * bright); +//R0i.y = floatBitsToInt(intBitsToFloat(R15i.y) * bright); +//R0i.z = floatBitsToInt(intBitsToFloat(R15i.z) * bright); +// +// ********************************************************* +// skin colors +// R0i pale dark blue +// R1i base skin tone +// R2i some highlights on dark skin tone +// R3i some highlights on dark skin tone +// R4i green R5i blue R6i green highlights + +// glows +// R8i masive light blue glow +// R9i dark blue glow + +// skin tones +// R10i intense red skin +// R11i pink skin +// R12i dark brown skin +// R13i teal skin +// R14i green skin +// R15i neutral skin tone still a bit dark****** winner +// R16i dark tone +// R17i highlights green and red on dark skin tone +// R122i pretty much black +// R123i pretty much black +// R124i has pink +// R125i dark purple +// R126i dark has green night tones +// R127i dark purple + + +// *********************** +// when miultiplied by R15i unknown time +// *********************** +// skin colors +// R0i dark tone +// R1i dark tone +// R2i black shadow +// R3i reasonable but a touch dark skin tone +// R4i green overtone R5i dark shadows R6i darkens + +// glows +// R8i masive light blue skin less glow +// R8i dark blue skin less glow +// R7i nice warm skin tones + +// skin tones +// R10i intense red skin +// R11i black shadows +// R12i red to shadows and light red glow to skin +// R13i add teal to shadows +// R14i green skin all +// R15i adds some intensity to colors mostly in the reds of the shadows +// R16i dark tone +// R17i highlights green and red on dark skin tone +// R122i pretty much black +// R123i pretty much black +// R124i has pink +// R125i dark purple +// R126i dark has green night tones +// R127i dark purple + + + +// *********************** +// when miultiplied "mul_nonIEEE( R1i * R##i )" by R1i in DAYLIGHT +// *********************** +// skin colors +// R0i saturated shadows -- cel shaded +// R1i very neutral -- NO CEL SHADING WINNER +// R2i dark blue shadows -- cel shaded +// R3i dark warm skin tone -- cel shaded +// R4i green overtone R5i dark shadows R6i darkens -- no cel +// R7i blueish shadow -- cel shaded + +// glows +// R8i masive light blue skin less glow +// R9i dark blue skin less glow + + +// skin tones +// R10i intense red skin - no cel apparent +// R11i red sgadiws - no cel apparent +// R12i pinkish shadows possible combined with sky light color -- cel shaded +// R13i add teal shadows -- no cel +// R14i green skin all -- no cel +// R15i adds some intensity to colors mostly in the reds of the shadows -- NO CEL SHADING WINNER +// R16i desaturated highlights in shadows -- NO CEL SHADING WINNER for add highlights +// R17i highlights green and red on dark skin tone -- no cel +// R122i dark reds -- no cel +// R123i seems a reflective map -- no cel goldish tones since reflecting sun +// R124i has pink -- no cel +// R125i dark purple -- no cel +// R126i dark has green night tones -- no cel +// R127i dark red -- no cel + + + +// *********************** +// when set as R0i.xyz output at NIGHT +// *********************** +// +//R0i.x = floatBitsToInt(intBitsToFloat(R15i.x) * bright); +//R0i.y = floatBitsToInt(intBitsToFloat(R15i.y) * bright); +//R0i.z = floatBitsToInt(intBitsToFloat(R15i.z) * bright); +// +// ********************************************************* +// skin colors +// R0i skin tone with a bit too much pinks red +// R1i base skin tone flat neutral no highlights +// R2i some highlights on dark skin tone +// R3i dark tone may carry brightness of environmnt light +// R4i green R5i blue with base highlight R6i puke reen overtone + +// glows +// R8i masive light blue glow... when multiplied by x only provides a green ovetone +// R9i dark blue glow +// R7i pinkish on shadows on bright side greenish on dark side. Kinda like R17i with irs red green + +// skin tones +// R10i intense red all skin +// R11i very dark +// R12i dark red with clothes and lit side ignored +// R13i teal skin lit side ignored +// R14i green all skin +// R15i neutral skin tone still a bit dark****** winner +// R16i dark tone +// R17i highlights green and red on dark skin tone +// R122i dark red overtones +// R123i pretty much black +// R124i has pink overtone +// R125i dark blue purple overtone +// R126i dark has green overtone +// R127i dark red overtones + +// use with R15i for white +// use with R1i for sky tone mostly yellow +// + R17i.y shadows low +// - R17i.y shadows high +// + R17i.x shadows left +// - R17i.x shadows right + + +// *********************** +// when added to "floatBitsToInt( R1i + R##i )" by R1i in DAYLIGHT +// *********************** +// skin colors +// R0i saturated shadows -- cel shaded +// R1i very neutral -- NO CEL SHADING WINNER +// R2i dark blue shadows -- cel shaded +// R3i dark warm skin tone -- cel shaded +// R4i green overtone R5i blue overtones R6i yellow overtones -- no cel +// R7i add yellow to shadow and blue to light -- cel shaded? Shadow map + +// glows +// R8i masive light blue skin less glow +// R9i dark blue skin less glow + + +// skin tones +// R10i intense red skin - no cel apparent +// R11i red shadows - no cel apparent possible use shadow map +// R12i pinkish shadows possible combined with sky light color -- cel shaded +// R13i add teal shadows -- no cel +// R14i green skin all -- no cel +// R15i adds some intensity to colors mostly in the reds of the shadows -- NO CEL SHADING WINNER +// R16i desaturated highlights in shadows -- NO CEL SHADING WINNER for add highlights +// R17i highlights green and red on dark skin tone -- no cel Shadow mask +// R122i dark reds -- no cel +// R123i seems a reflective map -- no cel goldish tones since reflecting sun +// R124i has pink -- no cel +// R125i dark purple -- no cel +// R126i dark has green night tones -- no cel +// R127i dark red -- no cel + +// *************************************************************** +// *************************************************************** +// *************************************************************** +// END REFERENCE MATERIAL +// *************************************************************** +// *************************************************************** +// *************************************************************** + + +// The next sectiona make shadow masks using various base colors and directions of shadows + +// Section 1 r15 for white tone with shadow on side described +Left0i.x = floatBitsToInt(intBitsToFloat(R15i.x) + intBitsToFloat(R17i.x)); +Left0i.y = floatBitsToInt(intBitsToFloat(R15i.y) + intBitsToFloat(R17i.x)); +Left0i.z = floatBitsToInt(intBitsToFloat(R15i.z) + intBitsToFloat(R17i.x)); + +// Low0i.x = floatBitsToInt(intBitsToFloat(R15i.x) + intBitsToFloat(R17i.y)); +// Low0i.y = floatBitsToInt(intBitsToFloat(R15i.y) + intBitsToFloat(R17i.y)); +// Low0i.z = floatBitsToInt(intBitsToFloat(R15i.z) + intBitsToFloat(R17i.y)); + +Right0i.x = floatBitsToInt(intBitsToFloat(R15i.x) - intBitsToFloat(R17i.x)); +Right0i.y = floatBitsToInt(intBitsToFloat(R15i.y) - intBitsToFloat(R17i.x)); +Right0i.z = floatBitsToInt(intBitsToFloat(R15i.z) - intBitsToFloat(R17i.x)); + +High0i.x = floatBitsToInt(intBitsToFloat(R15i.x) - intBitsToFloat(R17i.y)); +High0i.y = floatBitsToInt(intBitsToFloat(R15i.y) - intBitsToFloat(R17i.y)); +High0i.z = floatBitsToInt(intBitsToFloat(R15i.z) - intBitsToFloat(R17i.y)); +//******************************************************** + + + +// Section 2 R1i for yellow tone with shoadow on side described +// YLeft0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R17i.x)); +// YLeft0i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R17i.x)); +// YLeft0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R17i.x)); + +// YLow0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R17i.y)); +// YLow0i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R17i.y)); +// YLow0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R17i.y)); + +YRight0i.x = floatBitsToInt(intBitsToFloat(R1i.x) - intBitsToFloat(R17i.x)); +YRight0i.y = floatBitsToInt(intBitsToFloat(R1i.y) - intBitsToFloat(R17i.x)); +YRight0i.z = floatBitsToInt(intBitsToFloat(R1i.z) - intBitsToFloat(R17i.x)); + +YHigh0i.x = floatBitsToInt(intBitsToFloat(R1i.x) - intBitsToFloat(R17i.y)); +YHigh0i.y = floatBitsToInt(intBitsToFloat(R1i.y) - intBitsToFloat(R17i.y)); +YHigh0i.z = floatBitsToInt(intBitsToFloat(R1i.z) - intBitsToFloat(R17i.y)); +//******************************************************** + + + +// Section 3 R123i Light on side described, blue light of sky or occluded (shines) becomes empty, night dark blue +// BLeft0i.x = floatBitsToInt(intBitsToFloat(R123i.x) - intBitsToFloat(R17i.x)); +// BLeft0i.y = floatBitsToInt(intBitsToFloat(R123i.y) - intBitsToFloat(R17i.x)); +// BLeft0i.z = floatBitsToInt(intBitsToFloat(R123i.z) - intBitsToFloat(R17i.x)); + +// BLow0i.x = floatBitsToInt(intBitsToFloat(R123i.x) - intBitsToFloat(R17i.y)); +// BLow0i.y = floatBitsToInt(intBitsToFloat(R123i.y) - intBitsToFloat(R17i.y)); +// BLow0i.z = floatBitsToInt(intBitsToFloat(R123i.z) - intBitsToFloat(R17i.y)); + +// BRight0i.x = floatBitsToInt(intBitsToFloat(R123i.x) + intBitsToFloat(R17i.x)); +// BRight0i.y = floatBitsToInt(intBitsToFloat(R123i.y) + intBitsToFloat(R17i.x)); +// BRight0i.z = floatBitsToInt(intBitsToFloat(R123i.z) + intBitsToFloat(R17i.x)); + +BHigh0i.x = floatBitsToInt(intBitsToFloat(R123i.x) + intBitsToFloat(R17i.y)); +BHigh0i.y = floatBitsToInt(intBitsToFloat(R123i.y) + intBitsToFloat(R17i.y)); +BHigh0i.z = floatBitsToInt(intBitsToFloat(R123i.z) + intBitsToFloat(R17i.y)); +//******************************************************** + + + +// Section 4 Blue over tone shadows with slight green rim light +LtBlueShadow.x = floatBitsToInt(intBitsToFloat(R13i.x)*.2 + intBitsToFloat(R7i.y)); +LtBlueShadow.y = floatBitsToInt(intBitsToFloat(R13i.y)*.2 + intBitsToFloat(R7i.y)); +LtBlueShadow.z = floatBitsToInt(intBitsToFloat(R13i.y)*.2 + intBitsToFloat(R7i.y)); +//******************************************************** + + +//Section 5 Darken shadows +// Temp0i.x = floatBitsToInt(intBitsToFloat(R16i.x) + intBitsToFloat(R11i.y)); +// Temp0i.y = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(R11i.y)); +// Temp0i.z = floatBitsToInt(intBitsToFloat(R16i.z) + intBitsToFloat(R11i.y)); +//******************************************************** + + +// subtract white left shadow from white base using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R1i.x), intBitsToFloat(Left0i.x) * bright)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R1i.y), intBitsToFloat(Left0i.y) * bright)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R1i.z), intBitsToFloat(Left0i.z) * bright)); + +// subtract white high shadow from above using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(High0i.x) * bright)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(High0i.y) * bright)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R0i.z), intBitsToFloat(High0i.z) * bright)); + +// subtract yellow high shadow from above using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(YHigh0i.x) * bright)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(YHigh0i.y) * bright)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R0i.z), intBitsToFloat(YHigh0i.z) * bright)); + +// subtract yellow right shadow from above using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(Right0i.x) * bright*.7)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(Right0i.y) * bright*.7)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R0i.z), intBitsToFloat(Right0i.z) * bright*.7)); + +// make a base color by using mul_nonIEEE with the calculated shadow and the white base color. Add in the shadow, white, light blue masked over shadow, blue sky light masked over high locations, and what I think is a reflective map. +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R1i.x)) * bright + intBitsToFloat(R0i.x) * bright + intBitsToFloat(R1i.x) * bright + intBitsToFloat(LtBlueShadow.x) * bright + intBitsToFloat(BHigh0i.x) * bright + intBitsToFloat(R123i.x) * bright) ; + +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R1i.y)) * bright + intBitsToFloat(R0i.y) * bright + intBitsToFloat(R1i.y) * bright + intBitsToFloat(LtBlueShadow.y) * bright + intBitsToFloat(BHigh0i.y) * bright + intBitsToFloat(R123i.y) * bright) ; + +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R1i.z)) * bright + intBitsToFloat(R0i.z) * bright + intBitsToFloat(R1i.z) * bright + intBitsToFloat(LtBlueShadow.z) * bright + intBitsToFloat(BHigh0i.z) * bright + intBitsToFloat(R123i.z) * bright) ; + + + +R0i.w = R3i.w; +// r0i our color output from the if statement passed on for furthur use + +#elif (shdwFix == 1) // SkalFate Big Part + +if(smode == 1) // run custom code +{ + // -- 1. one way to do it + //R0i.yzw = ivec3(R3i.y,R3i.z,R3i.w); + + // -- 2. another way to do it , green and blue channels + // R1i=bright normal, R3i=normal, R15i=dark normal, R4i=red, R5i=blue look, R6i=green look, R7i=nocelshade R17i=nocelshade, R8i=glow, R9i= Solid blue, R11i=lightblue look, R13i=normal look with yellow outline shadows, R14i=lightgreen look + //R0i.yzw = R3i.yzw; // best choice R3i,R7i,R15i + + // -- 3. another way to do it - but mixing color channels + // R1i=bright normal, R3i=normal, R15i=normal with minor flickers, R11i=dark normal, R4i=blue, R6i=lightblue, R7i=no-celshade(looks good), R8i=blueglow, R10=BrightGreen, R12i=Green, R14i=blue, R17i=blue shadow highlights + //R0i.yzw = R15i.xyz; // best choice R7i.xyz and R15i.xyz + + // -- 4. another way to do it, seems best because uses all three color channels, has clay effect indoors + // R1i=bright normal, R3i=normal, R15i=normal, R11i=blue normal + // R4i=Green, R5i=Blue, R6i=Green, R7i=no-celshade(Orangish), R8i=blueglow, R9i=Solidblue, R10=Red, + // R13i=normal look with yellow outline shadows, R14i=Green, R16=weapon bloom, R17i=no-cel green shadow highlights + // R122i=red, + //R0i.xyz = R3i.xyz; // Best Choice R7i, R15i, R1i, R3i + + // -- 1. another way to do it + //R0i.yzw = ivec3(floatBitsToInt(1.4 * shadowsbrightness), floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0)); // controls the color and brightness of the backside shadows on all npcs + // -- 2. another way to do it + //R0i.xyzw = ivec4(floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0)); + + + // -- 1. Best Mode R3i.xyz + R7i.y + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R7i.y) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R7i.y) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R7i.y) * shadowsbrightness); + + PS0i = R0i.x; +} +else if (smode == 2) +{ + // Mode R3i.xyz + R7i.x - Best mode 2 less shadow highlights + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R7i.x) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R7i.x) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R7i.x) * shadowsbrightness); +} +else if (smode == 3) +{ + // R3i.xyz + R17i.y - No enhancement ot the skin ,and very strong shadow higlights + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R17i.y) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R17i.y) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R17i.y) * shadowsbrightness); +} +else if (smode == 4) +{ + // R3i.xyz + R4i.y - Light Shaded Mode + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.y) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R4i.y) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R4i.y) * shadowsbrightness); +} +else if (smode == 5) +{ + // R3i.xyz + R15i.x - Cool mode with minor flickers in the wind + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R15i.x) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R15i.x) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R15i.x) * shadowsbrightness); +} +else // run the original shader code +{ + // original shader code + PS0i = R0i.x; + R0i.yzw = ivec3(0,0,0); // orginal code +} + +#else + +R0i.yzw = ivec3(0,0,0); + +#endif + +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; + +// ------------------------------------------------------------------------------------------------------------- false changes links color to be more yellowish +if( activeMaskStackC[2] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[30].x),intBitsToFloat(uf_remappedPS[30].y),intBitsToFloat(uf_remappedPS[30].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = 0x40400000; +PS0i = R0i.w; +// 1 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[31].x),intBitsToFloat(uf_remappedPS[31].y),intBitsToFloat(uf_remappedPS[31].z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(uf_remappedPS[32].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R13i.x))); +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg1i = R127i.z; +redcCUBE(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +R2i.z = clampFI32(R2i.z); +PS1i = R2i.z; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(0x42960000)); +PV0i.x = clampFI32(PV0i.x); +R0i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R1i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.x = R123i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.z))); +PS1i = R1i.x; +// 6 +R0i.x = PV1i.w; +R0i.y = PV1i.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PV1i.z))); +PS0i = R3i.x; +} + + +// ------------------------------------------------------------------------------------------------------------- false makes link back side brightened up and affected by light changes, front shadows and back affected. +if( activeMaskStackC[2] == true ) { +// can increases texture lod in attempt to get higher res tetures at a distance on enemies +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex7),intBitsToFloat(R0i.w)).xyz); +} + +// ------------------------------------------------------------------------------------------------------------- false makes link a bit brighter front and back +if( activeMaskStackC[2] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.x))); +PV0i.y = R123i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(R1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.z))); +PV0i.w = R123i.w; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(R1i.y))); +PS0i = R3i.y; +// 1 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R2i.x))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.y))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.z))); +R0i.w = 0; +R3i.w = 0x3f800000; +PS1i = R3i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; + +// ------------------------------------------------------------------------------------------------------------- false darkens links models curves shadows +if( activeMaskStackC[1] == true ) { +// 0 +R1i.w = 0x3f800000; +// 1 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +backupReg2i = R3i.z; +backupReg3i = R3i.w; +R3i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R3i.w = backupReg3i; +// 2 +R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R2i.w = R0i.w; +// 3 +backupReg0i = R1i.w; +R1i.xyz = ivec3(R4i.x,R5i.y,R6i.z); +R1i.w = backupReg0i; +// 4 +R0i.xyz = ivec3(R13i.x,R4i.y,R5i.z); +R0i.w = R4i.w; +// 5 +R4i.xyz = ivec3(R7i.x,R7i.x,R7i.x); +R4i.w = R7i.x; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); // light/shadows on link front side + +#if (shdwFix == 1) // SkalFate + +passPixelColor1 = vec4(intBitsToFloat(R1i.x) * 0, intBitsToFloat(R1i.y) * 0, intBitsToFloat(R1i.z) * 0, intBitsToFloat(R1i.w)); // links and all npcs fog rgb +passPixelColor2 = vec4(intBitsToFloat(R2i.x) * sred, intBitsToFloat(R2i.y) * sgreen, intBitsToFloat(R2i.z) * sblue, intBitsToFloat(R2i.w)) ; // Controls link RGB only in celshade mode and when original code is run (line 713). In no-celshade mode it changes the lighting on links back-side away from the sun + +#else + +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); // links and all npcs fog rgb +passPixelColor2 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); // Controls link RGB only in celshade mode and when original code is run (line 713). In no-celshade mode it changes the lighting on links back-side away from the sun + +#endif + +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor4 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Mods/CelShading/2f7ecb9f0022d8ca_0000000000000001_ps.txt b/src/BreathOfTheWild/Mods/CelShading/2f7ecb9f0022d8ca_0000000000000001_ps.txt new file mode 100644 index 00000000..2f092638 --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/2f7ecb9f0022d8ca_0000000000000001_ps.txt @@ -0,0 +1,116 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +// shader 2f7ecb9f0022d8ca -- Pixel shader for Links Cel Shading World & Menu - Texture format 0x005d +#define mode $mode + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; + +R0i = floatBitsToInt(passParameterSem0); // comes from 3 vertex shaders, one of them handles the lighting that glitches the sky(314b77349f0636db), so lets exclude it + +if (passParameterSem0.w == 4.0) +{ + R0i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); + + // 0 + PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(0x437f0000)); + R127i.y = int(uint(intBitsToFloat(R0i.z))); + PS0i = R127i.y; + + // 1 + if ( mode > 1) // if mode is greater than 1 then run our own code + { + // very interesting - Replace PS1i(which is integer) with any of these numbers, there are like 4 diff modes that repeat through diff integers, [4,6,7,8,10,11] [-5 -9 -10 -12 -18 -19 -25 -26 -28 -34 -40 -41 -42] + PS1i = int(mode); + } + else + { + PS1i = int(uint(intBitsToFloat(PV0i.x))); // orignal code + } + + // 2 + PV0i.z = R127i.y & PS1i; + + // 3 + PS1i = floatBitsToInt(float(uint(PV0i.z))); + + // 4 + R0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3b808081)); +} +else +{ + R0i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); + + // 0 + PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(0x437f0000)); + R127i.y = int(uint(intBitsToFloat(R0i.z))); + PS0i = R127i.y; + + // 1 + PS1i = int(uint(intBitsToFloat(PV0i.x))); // orignal code + + // 2 + PV0i.z = R127i.y & PS1i; + + // 3 + PS1i = floatBitsToInt(float(uint(PV0i.z))); + + // 4 + R0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3b808081)); +} + +// export +gl_FragDepth = vec4(intBitsToFloat(R0i.x), 0, 0, 0).x; +} diff --git a/src/BreathOfTheWild/Mods/CelShading/314b77345f06369b_0000000000000000_vs.txt b/src/BreathOfTheWild/Mods/CelShading/314b77345f06369b_0000000000000000_vs.txt new file mode 100644 index 00000000..a89129db --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/314b77345f06369b_0000000000000000_vs.txt @@ -0,0 +1,114 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +// shader 314b77345f06369b -- Vertex shader for Links Cel Shading - Texture format 0x005d + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R3i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x437f0000)); +PS0i = R3i.z; +R0i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; +// export +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); +// 0 +R127i.z = floatBitsToInt(float(R0i.x)); +PS0i = R127i.z; +// 1 +R127i.y = floatBitsToInt(float(R0i.y)); +PS1i = R127i.y; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 4 +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); + +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), 4.0); // we change R3i.w to 4 and send to to FS to catch it +// Multiplying xy by 200 minimizes the overlay and removes cel-shading, and multiplying z by 2 makes light shading +} diff --git a/src/BreathOfTheWild/Mods/CelShading/314b77349f0636db_0000000000000000_vs.txt b/src/BreathOfTheWild/Mods/CelShading/314b77349f0636db_0000000000000000_vs.txt new file mode 100644 index 00000000..f63c2704 --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/314b77349f0636db_0000000000000000_vs.txt @@ -0,0 +1,112 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +// shader 314b77349f0636db -- Vertex Shader -- Lights up Cel-Shade Link and NPCs but also messes up the sky in the new methods + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R3i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x437f0000)); +PS0i = R3i.z; +R0i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; +// export +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); +// 0 +R127i.z = floatBitsToInt(float(R0i.x)); +PS0i = R127i.z; +// 1 +R127i.y = floatBitsToInt(float(R0i.y)); +PS1i = R127i.y; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 4 +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.z)); // propety w is not set to 4.0 so it wont get processed the same way as the other 2 vertex shader +} diff --git a/src/BreathOfTheWild/Mods/CelShading/314b7734df06371b_0000000000000000_vs.txt b/src/BreathOfTheWild/Mods/CelShading/314b7734df06371b_0000000000000000_vs.txt new file mode 100644 index 00000000..2c0c563b --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/314b7734df06371b_0000000000000000_vs.txt @@ -0,0 +1,118 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +// shader 314b7734df06371b -- Vertex Shader for Water/Magma and etc, one of the 3 vertex shaders involved with cel-shade removal + +#ifdef VULKAN +layout(set = 0, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[1]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); + +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); + +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); + +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R3i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x437f0000)); +PS0i = R3i.z; + +R0i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; + +// export +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); + +// 0 +R127i.z = floatBitsToInt(float(R0i.x)); +PS0i = R127i.z; +// 1 +R127i.y = floatBitsToInt(float(R0i.y)); +PS1i = R127i.y; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 4 +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), 4.0); +} diff --git a/src/BreathOfTheWild/Mods/CelShading/8d24f32f18e6de47_0000000079249749_ps.txt b/src/BreathOfTheWild/Mods/CelShading/8d24f32f18e6de47_0000000079249749_ps.txt new file mode 100644 index 00000000..df968178 --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/8d24f32f18e6de47_0000000079249749_ps.txt @@ -0,0 +1,707 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +// shader 8d24f32f18e6de47 +#ifdef VULKAN +layout(set = 1, binding = 9) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[10]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[10]; +uniform vec2 uf_fragCoordScale; +#endif + +#define mode $mode +#define clarity $clarity + +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 5) uniform samplerCubeArray textureUnitPS8; +TEXTURE_LAYOUT(10, 1, 6) uniform sampler2DArray textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(13, 1, 8) uniform sampler2D textureUnitPS13; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex8 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem3); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem6); +R7i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R4i.zw)).xyzw); +R2i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); +R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw); +R6i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw); +R8i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R4i.zw)).xyzw); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R127i.w; +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.x)); +PS0i = R127i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PS1i = R9i.z; +// 2 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(R127i.w)))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(R127i.w)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(uf_remappedPS[2].y))); +R125i.w = floatBitsToInt(max(intBitsToFloat(R127i.z), -(intBitsToFloat(R127i.z)))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R126i.y = floatBitsToInt(tempResultf); +PS0i = R126i.y; +// 3 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R4i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.y)); +R126i.w = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.z)); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +PS1i = R127i.w; +// 4 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +PS0i = R9i.x; +// 5 +backupReg0i = R127i.z; +backupReg0i = R127i.z; +R126i.x = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.w)); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(R0i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 6 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 7 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(PS0i))); +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PS0i))); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.x)); +R125i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.y)); +PS1i = R125i.x; +// 8 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(max(intBitsToFloat(R126i.w), -(intBitsToFloat(R126i.w)))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.w)); +R125i.z = floatBitsToInt(max(intBitsToFloat(R126i.x), -(intBitsToFloat(R126i.x)))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.z)); +PS0i = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 4.0); +// 9 +backupReg0i = R126i.z; +PV1i.x = floatBitsToInt(max(intBitsToFloat(R125i.x), -(intBitsToFloat(R125i.x)))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 4.0); +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 4.0); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.y))); +PS1i = R5i.z; +// 10 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(fract(intBitsToFloat(R3i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt(fract(intBitsToFloat(R3i.y))); +PS0i = R125i.x; +// 11 +R127i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV0i.w))); +PV1i.x = R127i.x; +R126i.y = R4i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.y)); +PV1i.z = R126i.z; +R127i.w = R4i.y; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +R125i.w = R5i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +PS1i = R125i.w; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R12i.y),intBitsToFloat(R11i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +// 13 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R126i.y)) + intBitsToFloat(R5i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(backupReg0i))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(R12i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(R127i.z)); +PV1i.w = clampFI32(PV1i.w); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R11i.z))); +PS1i = R125i.z; +// 14 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(R1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R125i.x)); +PV0i.y = clampFI32(PV0i.y); +R10i.z = floatBitsToInt(roundEven(0.0)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.w)); +R2i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PS0i = R2i.w; +// 15 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R0i.x))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R9i.y)) + intBitsToFloat(R1i.w))); +R1i.z = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(uf_remappedPS[3].x)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.y)); +R1i.y = floatBitsToInt(intBitsToFloat(R12i.y) + intBitsToFloat(uf_remappedPS[3].y)); +PS1i = R1i.y; +// 16 +// edit here +// desaturates shadow making it look metal (R127i.y))*.05 +R125i.x = floatBitsToInt(max(-(intBitsToFloat(R127i.y)), 0.0)); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R0i.y))); +// rlli.z and uf_remapedPS3 both alter shinyness +R3i.z = floatBitsToInt(intBitsToFloat(R11i.z) + intBitsToFloat(uf_remappedPS[3].z)); +// edit here +// kinda tone maping on character ? (R8i.w)*.05 +// low numbers = darker darks and brighter brights +R127i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(0x437f0000)); +// Edit here +// 7i.w carrying character shinyness reflectivity without map items +R6i.z = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0); +PS0i = R6i.z; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.w = 0; +PS1i = R1i.w; +// 18 rotates reflection world cube map? +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV0i.x = R124i.x; +PV0i.y = R124i.x; +PV0i.z = R124i.x; +PV0i.w = R124i.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +PS0i = R124i.z; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = tempi.x; +R4i.z = int(intBitsToFloat(R127i.w)); +PS1i = R4i.z; +// 20 +redcCUBE(vec4(intBitsToFloat(R124i.z),intBitsToFloat(R124i.z),intBitsToFloat(R124i.x),intBitsToFloat(PV1i.x)),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(R124i.x),intBitsToFloat(R124i.z),intBitsToFloat(R124i.z)),cubeMapSTM,cubeMapFaceId); +R0i.x = floatBitsToInt(cubeMapSTM.x); +R0i.y = floatBitsToInt(cubeMapSTM.y); +R0i.z = floatBitsToInt(cubeMapSTM.z); +R0i.w = cubeMapFaceId; +PV0i.x = R0i.x; +PV0i.y = R0i.y; +PV0i.z = R0i.z; +PV0i.w = R0i.w; +// r125i. brightens shadows +R6i.y = floatBitsToInt(min(intBitsToFloat(R125i.x), 1.0)); +PS0i = R6i.y; +// 21 +R1i.x = 0; +R3i.y = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000)); +R2i.z = PV0i.w; +// tweak reflectivity of surfaces +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(R6i.z)) + intBitsToFloat(R6i.z))); +R3i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); +PS1i = R3i.x; +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(uf_remappedPS[7].w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(uf_remappedPS[7].w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R3i.x)) + 1.5)); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R3i.x)) + 1.5)); +PV0i.w = R123i.w; +R124i.y = R4i.z & 0x000000fc; +PS0i = R124i.y; +// 1 +R2i.x = PV0i.w; +R2i.y = PV0i.z; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(uf_remappedPS[7].w))); +// edit here for Plastic look +//(R3i.w)*.01 +// R3i.w how plastic a surface can look. Seems to change how much the bump mapping affects the surface .01 pure plastic - 65 nearly only the light grey cloud-ish texutre over top characters. +// Combine pure plastic with low specular further down in the file to make a more matte look +R127i.w = floatBitsToInt(intBitsToFloat(R3i.w) * clarity + intBitsToFloat(0x3c23d70a)); +R127i.w = clampFI32(R127i.w); +R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + 1.0); +PS1i = R125i.w; +// 2 more sun +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = int(intBitsToFloat(R3i.y)); +PS0i = R127i.y; +// 3 dot product makes brightness of sun on characters and land can totally knock out sun +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R124i.z)),-(intBitsToFloat(R1i.x))))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = tempi.x; +// pv0i.x messes saturation of clothing +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +// edit here +// R127i.w seems to control how shiny stuff is and amount of bloom it gives off +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +R127i.x = floatBitsToInt(float(R124i.y)); +PS0i = R127i.x; +// 5 +backupReg0i = R125i.w; +backupReg0i = R125i.w; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.x = R124i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.y = R124i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.z = R126i.z; +R125i.w = floatBitsToInt((intBitsToFloat(R6i.z) * 0.5 + 0.5)); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i))); +PS1i = R125i.z; +// 6 dot product makes specular highlight on charactes but not inverse. Lower is lower +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),-(intBitsToFloat(R1i.w))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = R127i.y & int(1); +PS0i = R126i.x; +// 7 +// dot product is finding the specular on characters +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R124i.z)),-0.0),vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R126i.z)),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 8 r127i.x how bright metal is +R1i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3b820821)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R125i.w))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) / 2.0); +// edit here Specular? +// charactr specular highlight intBitsToFloat(R127i.z)*3 +// higher number = less highlight less than 1 = more highlight. +// good combo with plastic to remove shiny 45 +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PS1i)) + -(intBitsToFloat(PS1i)))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.z))); +PS0i = R122i.x; +// 9 +backupReg0i = R126i.x; +R126i.x = R126i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0)); +R124i.y = ((backupReg0i == 0)?(0):(0x3f800000)); +PS1i = R124i.y; +// 10 +backupReg0i = R127i.w; +R7i.x = R126i.w; +R7i.x = clampFI32(R7i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.z) + 1.0); +R124i.z = floatBitsToInt((-(intBitsToFloat(R1i.x)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R6i.y))); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PS0i = R122i.x; +// 11 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +// how shiny is metal rli.x +R7i.z = floatBitsToInt((intBitsToFloat(R1i.x) * 0.25 + 0.25)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(backupReg0i))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +// 12 +backupReg0i = R124i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R127i.w)); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R7i.x))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.z))); +PS0i = R125i.x; +// 13 +backupReg0i = R127i.y; +backupReg1i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.z))); +PV1i.y = R127i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.z))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i)); +PS1i = R127i.w; +// 14 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.z))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),-(intBitsToFloat(R124i.y))) + intBitsToFloat(PV1i.z))); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),-(intBitsToFloat(R125i.y))) + intBitsToFloat(R125i.x))); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.y))); +R6i.y = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS0i = R6i.y; +// 15 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),-(intBitsToFloat(R124i.y))) + intBitsToFloat(R125i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(R124i.y))) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R127i.w))); +R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +PS1i = R127i.z; +// 16 +backupReg0i = R127i.x; +backupReg1i = R126i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R125i.w)); +R126i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(backupReg0i)); +R5i.z = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(backupReg1i)); +R125i.w = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R124i.z)); +R6i.z = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(PV1i.y)); +PS0i = R6i.z; +// 17 +PV1i.x = floatBitsToInt(0.25 * intBitsToFloat(R6i.y)); +R6i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R126i.x)); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.z))); +R3i.w = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R3i.w = clampFI32(R3i.w); +R0i.w = floatBitsToInt((intBitsToFloat(R8i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 18 +R0i.x = floatBitsToInt((intBitsToFloat(R8i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.x = clampFI32(R0i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.x))); +PS0i = R4i.z & int(1); +// 19 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x), intBitsToFloat(PV0i.w))); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z), intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y), intBitsToFloat(PV0i.z))); +R3i.z = floatBitsToInt(float(PS0i)); +PS1i = R3i.z; +// 20 +R4i.x = R10i.x; +R4i.y = R10i.y; +R4i.z = floatBitsToInt(roundEven(1.0)); +R8i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R9i.xy)).x); +R12i.xzw = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R10i.xy)).xzw); +R13i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z))).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z))).xyz); +R2i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R2i.xy),R2i.z),cubeMapArrayIndex8),intBitsToFloat(R2i.w)).xyz); +R10i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R10i.xy)).xyz); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),-(intBitsToFloat(R7i.z))) + intBitsToFloat(R12i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R12i.w) * 0.5 + 0.5)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(R8i.w)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(R7i.x))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R12i.z))); +PS0i = R125i.x; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV0i.y)); +PV1i.y = clampFI32(PV1i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R5i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R6i.x))); +// r7i.z shadow brightness PV0i.x shadow highlight brightness +R126i.x = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(PV0i.x)); +PS1i = R126i.x; +// 2 more edge lights in shadow +R127i.x = floatBitsToInt(-(intBitsToFloat(R11i.x)) + intBitsToFloat(PV1i.w)); +PV0i.x = R127i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R11i.y)) + intBitsToFloat(PV1i.z)); +PV0i.y = R126i.y; +// R9i.z tonemapping? brightnss of sun on bright surfaces vs nearby dark. Ratio of Rlli.xy above vs r9i.z below. Values tested (R11i.x and y)*.5) (R9i.z)*.1 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV1i.x)); +// brightness of sun +R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.y))); + +// uf_remappedps[9].x carries specular highlight of sun on shiny surfaces +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R125i.w))); + + +PS0i = R124i.y; +// 3 produces edge highlights on the shadowed edge +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R12i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = tempi.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R5i.z))); +PS1i = R125i.y; +// 4 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R6i.z))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +// 5 +backupReg0i = R125i.y; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R7i.w))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(R4i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R6i.y))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R126i.y)) + intBitsToFloat(R4i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(R4i.z))); +PV0i.w = R123i.w; +// 7 +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.w))); +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.z))); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 8 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R125i.x))); +PS0i = R4i.w; +// 9 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z), intBitsToFloat(PV0i.w))); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3ced9168)); +PV0i.y = clampFI32(PV0i.y); +// 11 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.z)) + 1.0)); +PV1i.y = R123i.y; +// 12 PVli.y seems to be a scalar for ambient light in the shadows +backupReg0i = R1i.x; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +// 0 r3i.xyz ambient light in the shadows +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(R8i.w)) + intBitsToFloat(R13i.x))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z),intBitsToFloat(R8i.w)) + intBitsToFloat(R13i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(R8i.w)) + intBitsToFloat(R13i.y))); +PV0i.w = R123i.w; +// 1 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R1i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R1i.x))); +// 2 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(backupReg0i))); +// 3PV0i sun color/brightness on land +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.z = R123i.z; +// 4 R2i.xy r8i.z brightness of reflectd sky light on shadowed surfaces kinda like rimlighting PVli.xyz brightness of run on land +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.z)); +// 5 PV0i.xyz color / brightness of sun Rl0i.xyz color / brightness of fog over land and sky +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R10i.x))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R10i.y))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R10i.z))); +// export +passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Mods/CelShading/f4e1147ab34a1677_0000000000000000_vs.txt b/src/BreathOfTheWild/Mods/CelShading/f4e1147ab34a1677_0000000000000000_vs.txt new file mode 100644 index 00000000..c0078225 --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/f4e1147ab34a1677_0000000000000000_vs.txt @@ -0,0 +1,248 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +// shader f4e1147ab34a1677 -- Vertex Shader where links gets drawn in the menu + +#ifdef VULKAN +layout(set = 0, binding = 0) uniform ufBlock +{ +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +}; +#else +uniform ivec4 uf_remappedVS[5]; +// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7 +#endif + +#define menuWrkrnd $menuWrkrnd +#define mode $mode + +// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 2) out vec4 passParameterSem4; +layout(location = 3) out vec4 passParameterSem5; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 4) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; + +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); + +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); + +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); + +// 0 +backupReg0i = R0i.x; +PV0i.x = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.y = 0x3f800000; // subtracting brings the black box top side down +PV0i.z = 0x3f800000; // subtracting slants down diagonally +PV0i.w = 0x40400000; +R127i.z = 0xbf800000; // unnecssary left side, extends the black box +PS0i = R127i.z; + +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3b808081)); +R123i.y = ((PV0i.x == 0)?(PV0i.w):(0xbf800000)); +PV1i.y = R123i.y; +R126i.z = uf_remappedVS[1].z; +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); +R123i.w = ((PV0i.x == 0)?(PV0i.z):(0xc0400000)); +PV1i.w = R123i.w; +R1i.w = 0x3f800000; +PS1i = R1i.w; + +// 2 +R1i.x = ((R0i.x == 0)?(R127i.z):(PV1i.y)); +PV0i.x = R1i.x; +R1i.y = ((R0i.x == 0)?(R127i.y):(PV1i.w)); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(0.5)); +R1i.z = floatBitsToInt(intBitsToFloat(R1i.z) * 2.0); +R125i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) / 2.0); +R4i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R4i.x = floatBitsToInt(intBitsToFloat(R4i.x) * 2.0); +PS0i = R4i.x; + +// 3 -- links lighting +R2i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PV1i.x = R2i.x; +R4i.y = uf_remappedVS[3].y; +R4i.y = floatBitsToInt(intBitsToFloat(R4i.y) * 2.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R127i.w = PV0i.x; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); +R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +PS1i = R127i.x; +// 4 -- links lighting +R126i.x = floatBitsToInt(intBitsToFloat(R125i.w) + -(0.5)); +R2i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + 0.5)); +PV0i.y = R2i.y; +R6i.z = PV1i.x; +PV0i.z = R6i.z; +R124i.w = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); +R126i.w = floatBitsToInt(-(intBitsToFloat(R4i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); +PS0i = R126i.w; +// 5 -- links lighting +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R125i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R126i.z)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R4i.y))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) / 2.0); +R6i.w = PV0i.y; +PV1i.w = R6i.w; +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(uf_remappedVS[4].z)); +PS1i = R127i.y; + +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.z))); +R126i.w = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(R124i.w)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.y))); +PS0i = R127i.w; +// 7 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(backupReg0i))); +R125i.y = uf_remappedVS[4].x; +R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) / 2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R126i.x)); +R125i.w = uf_remappedVS[4].y; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) / 2.0); +R0i.w = uf_remappedVS[4].z; +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +PS1i = R0i.w; +// 8 +backupReg0i = R126i.x; +backupReg1i = R127i.y; +backupReg2i = R126i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(backupReg0i)); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R124i.w)); +R127i.z = uf_remappedVS[4].w; +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(backupReg2i))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PV1i.z))); +PS0i = R125i.x; +// 9 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R125i.y)) + 0.5)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R125i.w)) + 0.5)); +R4i.z = R126i.y; +R5i.w = floatBitsToInt(1.0); +R4i.w = R126i.z; +PS1i = R4i.w; +// 10 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R127i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R126i.x))); +R2i.z = R127i.w; +R2i.w = R127i.x; +R3i.z = R0i.w; +PS0i = R3i.z; +// 11 +R0i.z = R126i.w; +R3i.w = R127i.z; +R0i.w = R125i.x; +PS1i = R0i.w; + +// export + +#if (mode == 4 && menuWrkrnd == 1) + +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)) * 0); + +#else + +SET_POSITION(vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w))); + +#endif + +// export +passParameterSem0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +// export +passParameterSem5 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +// export +// skipped export to semanticId 255 +// export +passParameterSem6 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.x), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); // z= moves link left, w= moves link right, affects link cut out in menu +} diff --git a/src/BreathOfTheWild/Mods/CelShading/rules.txt b/src/BreathOfTheWild/Mods/CelShading/rules.txt new file mode 100644 index 00000000..1d23637b --- /dev/null +++ b/src/BreathOfTheWild/Mods/CelShading/rules.txt @@ -0,0 +1,595 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Custom Cel Shading +path = "The Legend of Zelda: Breath of the Wild/Mods/Custom Cel Shading" +description = Changes the type of shading on Link and the world.|Inventory Menu Workaround will make Link invisible in the inventory.||Made by SkalFate, Altros and Pig. +version = 6 + +[Default] +$mode:int = 4 +$clarity = 0.05 +$menuWrkrnd:int = 0 +$shdwFix:int = 2 +$bright = 0.45 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +# Cel-Shading Type + +[Preset] +name = Cel-Shading Disabled +category = Preset +default = 1 + +[Preset] +name = Light Shading +category = Preset +$mode:int = 6 +$shdwFix:int = 2 # To hide Shadow Dropdowns + +[Preset] +name = Painting Shading (World) +category = Preset +$mode:int = 8 +$shdwFix:int = 2 # To hide Shadow Dropdowns + +[Preset] +name = Painting Shading (World & Link) +category = Preset +$mode:int = 10 +$shdwFix:int = 2 # To hide Shadow Dropdowns + +# Plastic Mode + +[Preset] +name = Disabled +category = Plastic Mode +condition = $mode == 4 +default = 1 +$clarity = 1 + +[Preset] +name = Plastic 100% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.05 + +[Preset] +name = Plastic 95% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.15 + +[Preset] +name = Plastic 90% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.30 + +[Preset] +name = Plastic 85% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.37 + +[Preset] +name = Plastic 75% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.43 + +[Preset] +name = Plastic 65% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.50 + +[Preset] +name = Plastic 55% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.57 + +[Preset] +name = Plastic 45% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.65 + +[Preset] +name = Plastic 35% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.75 + +[Preset] +name = Plastic 25% +category = Plastic Mode +condition = $mode == 4 +$clarity = 0.95 + +[Preset] +name = Plastic 15% +category = Plastic Mode +condition = $mode == 4 +$clarity = 1.15 + +[Preset] +name = Plastic 5% +category = Plastic Mode +condition = $mode == 4 +$clarity = 1.35 + +# Menu Workaround + +[Preset] +name = Disabled (Glitchy Inventory Background) +category = Inventory Menu Workaround +condition = $mode == 4 +default = 1 + +[Preset] +name = Enabled (Removes Link) +category = Inventory Menu Workaround +condition = $mode == 4 +$menuWrkrnd:int = 1 + +# Shadow Fix Verison + +[Preset] +name = Altros Version +category = Shadow Fix Version +condition = $mode == 4 +$shdwFix:int = 0 + +[Preset] +name = SkalFate Version +category = Shadow Fix Version +condition = $mode == 4 +$shdwFix:int = 1 + +# Altros Shadow Fix + +[Preset] +name = Shadows 0.25% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 0.25 + +[Preset] +name = Shadows 0.35% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 0.35 + +[Preset] +name = Shadows 0.45% (Default) +category = Altros Shadow Fix +condition = $shdwFix == 0 +default = 1 +$bright = 0.45 + +[Preset] +name = Shadows 0.55% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 0.55 + +[Preset] +name = Shadows 0.65% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 0.65 + +[Preset] +name = Shadows 0.75% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 0.75 + +[Preset] +name = Shadows 0.95% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 0.95 + +[Preset] +name = Shadows 1.0% (Game Original) +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.0 + +[Preset] +name = Shadows 1.15% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.15 + +[Preset] +name = Shadows 1.25% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.25 + +[Preset] +name = Shadows 1.35% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.35 + +[Preset] +name = Shadows 1.45% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.45 + +[Preset] +name = Shadows 1.55% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.55 + +[Preset] +name = Shadows 1.65% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.65 + +[Preset] +name = Shadows 1.75% +category = Altros Shadow Fix +condition = $shdwFix == 0 +$bright = 1.75 + +# SkalFate Shadow Fix + +# Shadow Mode (smode) -- Various visual styles can be achieved with mode 1-5 +# +# Shadow Brihtness (shadowbrightness) - Controls how brightened up link and his back side will be +# +# RGB - sred, sgreen, sblue - adjusting this will add more intensity of the specific color. +# ------ Values are multiplied, so if you want to lower values use [0.01 - 1.0], or if you want to raise then use [1.00 - X.X] + +[Preset] +name = Mode 1 - Shadows X1 (Best Mode) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +default = 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X1 (No Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 2 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X1 (Strong Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 3 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X1 (LightShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 4 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X1 (DarkShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 5 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 1 - Shadows X2 (Best Mode) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X2 (No Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 2 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X2 (Strong Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 3 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X2 (LightShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 4 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X2 (DarkShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 5 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 1 - Shadows X4 (Best Mode) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X4 (No Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 2 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X4 (Strong Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 3 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X4 (LightShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 4 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X4 (DarkShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 5 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 1 - Shadows X8 (Best Mode) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X8 (No Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 2 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X8 (Strong Highlights) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 3 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X8 (LightShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 4 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X8 (DarkShade) +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 5 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Red Link +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 10 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Red Link X2 +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 20 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Green Link +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 10 +$sblue = 1 + +[Preset] +name = Green Link X2 +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 20 +$sblue = 1 + +[Preset] +name = Blue Link +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 10 + +[Preset] +name = Blue Link X2 +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 20 + +[Preset] +name = ---------------------------------------- +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Original Game Mode +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 0 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Custom Settings +category = SkalFate Shadow Fix +condition = $shdwFix == 1 +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 diff --git a/src/BreathOfTheWild/Mods/DayLength/patch_DayLength.asm b/src/BreathOfTheWild/Mods/DayLength/patch_DayLength.asm new file mode 100644 index 00000000..2f4544c7 --- /dev/null +++ b/src/BreathOfTheWild/Mods/DayLength/patch_DayLength.asm @@ -0,0 +1,4 @@ +[BotW_DayLength_V208] +moduleMatches = 0x6267BFD0 + +0x10301844 = .float (1/(120*$timeScale)) diff --git a/src/BreathOfTheWild/Mods/DayLength/rules.txt b/src/BreathOfTheWild/Mods/DayLength/rules.txt new file mode 100644 index 00000000..a90ee1d5 --- /dev/null +++ b/src/BreathOfTheWild/Mods/DayLength/rules.txt @@ -0,0 +1,80 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Day Length +path = "The Legend of Zelda: Breath of the Wild/Mods/Day Length" +description = Changes the amount of real time that an in-game day takes.|Blood moons might not appear when you change the day length.||Made by chrispurnell. +version = 6 + +[Default] +$timeScale = 1 + + +[Preset] +name = 15 seconds +category = Day Length +$timeScale = 0.025 + +[Preset] +name = 30 seconds +category = Day Length +$timeScale = 0.05 + +[Preset] +name = 1 minutes +category = Day Length +$timeScale = 0.1 + +[Preset] +name = 6 minutes +category = Day Length +$timeScale = 0.25 + +[Preset] +name = 12 minutes +category = Day Length +$timeScale = 0.5 + +[Preset] +name = 24 minutes (Default) +category = Day Length +default = 1 + +[Preset] +name = 48 minutes +category = Day Length +$timeScale = 2 + +[Preset] +name = 72 minutes +category = Day Length +$timeScale = 3 + +[Preset] +name = 96 minutes +category = Day Length +$timeScale = 4 + +[Preset] +name = 2 hours +category = Day Length +$timeScale = 5 + +[Preset] +name = 4 hours +category = Day Length +$timeScale = 10 + +[Preset] +name = 12 hours +category = Day Length +$timeScale = 30 + +[Preset] +name = 24 hours +category = Day Length +$timeScale = 60 + +[Preset] +name = Freeze time +category = Day Length +$timeScale = 9999 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt b/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt new file mode 100644 index 00000000..7bb0c372 --- /dev/null +++ b/src/BreathOfTheWild/Mods/DivineLaserBeam/6fa2baef8a4ece42_0000000000000709_ps.txt @@ -0,0 +1,173 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 6fa2baef8a4ece42 +// Used for: Rings around divine beast laser +// Credit for hsv functions below +// http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl + +#define RAINBOW_EFFECT $rainbow // [0 or 1] set it to 1 to enable rainbow beams effect. in that case, HUE_ROTATION is ignored +#define DISABLE_BEAMS $disableBeams // [0 or 1] set it to 1 to hide the lasers completely +#define HUE_ROTATION $hue //[0, 360] where 0 and 360 is unchanged Hue and 180 is completely opposite Hue. Check http://i.imgur.com/5UpyIGh.png +#define SATURATION_FACTOR 1.0 //[0.0, 1.0] 1.0 means unchanged Saturation, 0.0 means completely desaturated. Values above 1.0 are accepted, but they may cause clipping +#define VALUE_FACTOR 1.0 //same as above; applies to Value +#define ALPHA_FACTOR 1.0 //same as above; applies to Transparency + +const float hueRotation = HUE_ROTATION / 360.0; + +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem14; +layout(location = 0) out vec4 passPixelColor0; + + +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +vec3 rgb2hsv(vec3 c) { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} +vec3 hsv2rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} +void main() +{ +#if (DISABLE_BEAMS == 1) && (RAINBOW_EFFECT == 0) +discard; +#endif +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem14; +R7f.xw = (texture(textureUnitPS0, R5f.xy).xw); +// 0 +R123f.x = (R7f.x * 2.0 + -(1.0)); +PV0f.x = R123f.x; +R123f.y = (R7f.w * 2.0 + -(1.0)); +PV0f.y = R123f.y; +PV0f.z = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].y)); +PV0f.w = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].x)); +PS0f = 1.0 / R2f.w; +// 1 +R5f.x = (mul_nonIEEE(PV0f.w,PV0f.x) + R5f.z); +R5f.y = (mul_nonIEEE(PV0f.z,PV0f.y) + R5f.w); +PV1f.z = R2f.z * PS0f; +PS1f = 1.0 / R2f.w; +// 2 +backupReg0f = R2f.x; +backupReg1f = R2f.y; +R2f.x = mul_nonIEEE(backupReg0f, PS1f); +R2f.y = (mul_nonIEEE(PV1f.z,intBitsToFloat(uf_remappedPS[1].w)) + -(intBitsToFloat(uf_remappedPS[1].y))); +R2f.z = mul_nonIEEE(backupReg1f, PS1f); +R7f.x = mul_nonIEEE(R0f.x, R4f.x); +PS0f = R7f.x; +R2f.z = (texture(textureUnitPS4, R2f.xz).x); +R5f.x = (texture(textureUnitPS1, R5f.xy).w); +// 0 +R123f.x = (mul_nonIEEE(R4f.w,R5f.x) + -(R0f.w)); +PV0f.x = R123f.x; +R127f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R2f.z) + intBitsToFloat(uf_remappedPS[1].x)); +R7f.z = mul_nonIEEE(R0f.z, R4f.z); +PS0f = 1.0 / R2f.y; +// 1 +R127f.x = mul_nonIEEE(R1f.w, PV0f.x); +R127f.x = clamp(R127f.x, 0.0, 1.0); +R7f.y = mul_nonIEEE(R0f.y, R4f.y); +PV1f.w = -(intBitsToFloat(uf_remappedPS[1].z)) * PS0f; +R127f.w = 1.0 / intBitsToFloat(uf_remappedPS[2].y); +PS1f = R127f.w; +// 2 +PV0f.x = -(PV1f.w) + R127f.y; +// 3 +PV1f.z = PV0f.x * R127f.w; +PV1f.z = clamp(PV1f.z, 0.0, 1.0); +// 4 +PV0f.y = mul_nonIEEE(R127f.x, PV1f.z); +// 5 +PV1f.x = mul_nonIEEE(R3f.x, PV0f.y); +// 6 +R7f.w = mul_nonIEEE(R6f.w, PV1f.x); +// export +if( ((vec4(R7f.x, R7f.y, R7f.z, R7f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w); +vec3 colhsv = rgb2hsv(passPixelColor0.rgb); +#if (RAINBOW_EFFECT == 1) +passPixelColor0.rgb = hsv2rgb(vec3(mod(colhsv.x + 1.5*R5f.y, 1.0), colhsv.y*SATURATION_FACTOR, colhsv.z*VALUE_FACTOR)); +#else +passPixelColor0.rgb = hsv2rgb(vec3(mod(colhsv.x + hueRotation, 1.0), colhsv.y*SATURATION_FACTOR, colhsv.z*VALUE_FACTOR)); +#endif +passPixelColor0.a *= ALPHA_FACTOR; +} diff --git a/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt b/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt new file mode 100644 index 00000000..002fbaef --- /dev/null +++ b/src/BreathOfTheWild/Mods/DivineLaserBeam/de960d36a997b34d_0000000000000709_ps.txt @@ -0,0 +1,189 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader de960d36a997b34d +// Divine Laser Beams Customizer - beams +// Credit for hsv functions below +// http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl + +#define RAINBOW_EFFECT $rainbow // [0 or 1] set it to 1 to enable rainbow beams effect. in that case, HUE_ROTATION is ignored +#define DISABLE_BEAMS $disableBeams // [0 or 1] set it to 1 to hide the lasers completely +#define HUE_ROTATION $hue //[0, 360] where 0 and 360 is unchanged Hue and 180 is completely opposite Hue. Check http://i.imgur.com/5UpyIGh.png +#define SATURATION_FACTOR 1.0 //[0.0, 1.0] 1.0 means unchanged Saturation, 0.0 means completely desaturated. Values above 1.0 are accepted, but they may cause clipping +#define VALUE_FACTOR 1.0 //same as above; applies to Value +#define ALPHA_FACTOR 1.0 //same as above; applies to Transparency + +const float hueRotation = HUE_ROTATION / 360.0; +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +// uf_alphaTestRef was moved to the ufBlock +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem5; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem12; +layout(location = 7) in vec4 passParameterSem14; +layout(location = 0) out vec4 passPixelColor0; +// uf_fragCoordScale was moved to the ufBlock +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +vec3 rgb2hsv(vec3 c) { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} +vec3 hsv2rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} +void main() +{ +#if (DISABLE_BEAMS == 1) && (RAINBOW_EFFECT == 0) +discard; +#endif +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem5; +R5f = passParameterSem8; +R6f = passParameterSem12; +R7f = passParameterSem14; +R1f.w = (texture(textureUnitPS0, R5f.xy).x); +// 0 +backupReg0f = R4f.y; +R127f.x = 1.0; +R4f.y = R5f.w + 0.0; +R3f.z = -(R3f.y) + backupReg0f; +R123f.w = (R1f.w * 2.0 + -(1.0)); +PV0f.w = R123f.w; +PS0f = 1.0 / R2f.w; +// 1 +backupReg0f = R5f.z; +R5f.x = mul_nonIEEE(R2f.x, PS0f); +R5f.y = mul_nonIEEE(R2f.y, PS0f); +R5f.z = R0f.x + -(R1f.x); +R5f.w = R0f.y + -(R1f.y); +R4f.x = (PV0f.w * intBitsToFloat(0x3dcccccd) + backupReg0f); +PS1f = R4f.x; +// 2 +backupReg0f = R6f.y; +tempf.x = dot(vec4(R6f.x,backupReg0f,R6f.z,R127f.x),vec4(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(uf_remappedPS[0].y),intBitsToFloat(uf_remappedPS[0].z),intBitsToFloat(uf_remappedPS[0].w))); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R6f.y = tempf.x; +R6f.x = 1.0 / R2f.w; +PS0f = R6f.x; +R5f.x = (texture(textureUnitPS4, R5f.xy).x); +R4f.xyzw = (texture(textureUnitPS1, R4f.xy).xyzw); +// 0 +R127f.x = mul_nonIEEE(R0f.w, R4f.w); +R127f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R5f.x) + intBitsToFloat(uf_remappedPS[1].x)); +PV0f.z = -(R3f.y) + -(R6f.y); +PV0f.w = R2f.z * R6f.x; +PS0f = 1.0 / R3f.z; +// 1 +PV1f.x = mul_nonIEEE(PV0f.z, PS0f); +PV1f.x = clamp(PV1f.x, 0.0, 1.0); +R123f.y = (mul_nonIEEE(PV0f.w,intBitsToFloat(uf_remappedPS[1].w)) + -(intBitsToFloat(uf_remappedPS[1].y))); +PV1f.y = R123f.y; +R127f.w = R0f.z + -(R1f.z); +R0f.x = (mul_nonIEEE(R5f.z,R4f.x) + R1f.x); +PS1f = R0f.x; +// 2 +R0f.y = (mul_nonIEEE(R5f.w,R4f.y) + R1f.y); +R127f.z = mul_nonIEEE(R127f.x, PV1f.x); +R127f.z = clamp(R127f.z, 0.0, 1.0); +PS0f = 1.0 / PV1f.y; +// 3 +R0f.z = (mul_nonIEEE(R127f.w,R4f.z) + R1f.z); +PV1f.w = -(intBitsToFloat(uf_remappedPS[1].z)) * PS0f; +R127f.w = 1.0 / intBitsToFloat(uf_remappedPS[2].y); +PS1f = R127f.w; +// 4 +PV0f.x = -(PV1f.w) + R127f.y; +// 5 +PV1f.z = PV0f.x * R127f.w; +PV1f.z = clamp(PV1f.z, 0.0, 1.0); +// 6 +PV0f.y = mul_nonIEEE(R127f.z, PV1f.z); +// 7 +PV1f.x = mul_nonIEEE(R3f.x, PV0f.y); +// 8 +R0f.w = mul_nonIEEE(R7f.w, PV1f.x); +// export +if( ((vec4(R0f.x, R0f.y, R0f.z, R0f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w); +vec3 colhsv = rgb2hsv(passPixelColor0.rgb); +#if (RAINBOW_EFFECT == 1) +passPixelColor0.rgb = hsv2rgb(vec3(mod(colhsv.x + 3.0*R5f.y, 1.0), colhsv.y*SATURATION_FACTOR, colhsv.z*VALUE_FACTOR)); +#else +passPixelColor0.rgb = hsv2rgb(vec3(mod(colhsv.x + hueRotation, 1.0), colhsv.y*SATURATION_FACTOR, colhsv.z*VALUE_FACTOR)); +#endif +passPixelColor0.a *= ALPHA_FACTOR; +} diff --git a/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt b/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt new file mode 100644 index 00000000..63137a04 --- /dev/null +++ b/src/BreathOfTheWild/Mods/DivineLaserBeam/rules.txt @@ -0,0 +1,61 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Divine Laser Beams +path = "The Legend of Zelda: Breath of the Wild/Mods/Divine Laser Beams" +description = Allows customization of the color of the Divine Beasts's Laser Beams. They can also be completely hidden.||Made by Kiri. +version = 6 + +[Default] +$hue:int = 0 +$rainbow:int = 0 +$disableBeams:int = 0 + + +[Preset] +name = Disabled (Default) +category = Hide Laser +default = 1 +$disableBeams:int = 0 + +[Preset] +name = Enabled +category = Hide Laser +default = 1 +$disableBeams:int = 1 + + +[Preset] +name = Red (Default) +category = Laser Color +default = 1 +$hue:int = 0 + +[Preset] +name = Rainbow +category = Laser Color +$rainbow:int = 1 + +[Preset] +name = Purple +category = Laser Color +$hue:int = 300 + +[Preset] +name = Blue +category = Laser Color +$hue:int = 225 + +[Preset] +name = Cyan +category = Laser Color +$hue:int = 160 + +[Preset] +name = Green +category = Laser Color +$hue:int = 120 + +[Preset] +name = Yellow +category = Laser Color +$hue:int = 45 diff --git a/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm b/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm new file mode 100644 index 00000000..6636b33b --- /dev/null +++ b/src/BreathOfTheWild/Mods/DrawDistance/patch_DrawDistance.asm @@ -0,0 +1,46 @@ +[BotW_DrawDistance_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + +actorMultiplier: +.float $actor + +_replaceDrawDistanceActorInvoke: +lis r12, actorMultiplier@ha +lfs f13, actorMultiplier@l(r12) +fmuls f1, f1, f13 +lwz r12, 0x3B0(r29) +blr + +0x037A617C = bla _replaceDrawDistanceActorInvoke + +_replaceDrawDistanceActorKeepAlive_1: +lis r4, actorMultiplier@ha +lfs f6, actorMultiplier@l(r4) +fmuls f1, f1, f6 +lwz r4, 0x4FC(r31) +blr + +0x0379E6B8 = bla _replaceDrawDistanceActorKeepAlive_1 + +_replaceDrawDistanceActorKeepAlive_2: +lis r23, actorMultiplier@ha +lfs f9, actorMultiplier@l(r23) +fmuls f1, f1, f9 +lfs f9, 0x280(r31) +blr + +0x0379E63C = bla _replaceDrawDistanceActorKeepAlive_2 + +objectMultiplier: +.float $object + +_replaceObjectDrawDistance: +lis r9, objectMultiplier@ha +lfs f11, objectMultiplier@l(r9) +fmuls f1, f1, f11 +lwz r0, 0xC(r1) +blr + +0x03137F04 = bla _replaceObjectDrawDistance \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/DrawDistance/rules.txt b/src/BreathOfTheWild/Mods/DrawDistance/rules.txt new file mode 100644 index 00000000..4bc988ed --- /dev/null +++ b/src/BreathOfTheWild/Mods/DrawDistance/rules.txt @@ -0,0 +1,151 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Draw Distance +path = "The Legend of Zelda: Breath of the Wild/Mods/Draw Distance" +description = Extend the draw distance of objects and entities in the game, which will see a small performance decrease when making it higher. Lowering this will not offer more performance.|You can also make distant textures appear as higher resolution variants.||Made By Crementif. +version = 6 + +[Default] +$actor = 1.0 +$object = 1.0 +$textureLODBias:int = 0 + + +# Actor Draw Distance + +[Preset] +name = Very Low (0.5x) +category = NPC, Enemies And Other Entities +$actor = 0.5 + +[Preset] +name = Low (0.75x) +category = NPC, Enemies And Other Entities +$actor = 0.75 + +[Preset] +name = Medium (1x) +category = NPC, Enemies And Other Entities +default = 1 +$actor = 1.0 + +[Preset] +name = High (1.25x) +category = NPC, Enemies And Other Entities +$actor = 1.25 + +[Preset] +name = Ultra (1.5x) +category = NPC, Enemies And Other Entities +$actor = 1.5 + +[Preset] +name = Extreme (2x, requires Extended Memory pack!) +category = NPC, Enemies And Other Entities +$actor = 2 + +# Objects Draw Distance + +[Preset] +name = Potato (0.2x) +category = Trees, Bushes, Landscape And Other Objects (Experimental) +$object = 0.2 + +[Preset] +name = Very Low (0.5x) +category = Trees, Bushes, Landscape And Other Objects (Experimental) +$object = 0.5 + +[Preset] +name = Low (0.75x) +category = Trees, Bushes, Landscape And Other Objects (Experimental) +$object = 0.75 + +[Preset] +name = Medium (1x) +category = Trees, Bushes, Landscape And Other Objects (Experimental) +default = 1 +$object = 1.0 + +[Preset] +name = High (1.25x) +category = Trees, Bushes, Landscape And Other Objects (Experimental) +$object = 1.25 + +[Preset] +name = Ultra (1.5x, requires Extended Memory pack!) +category = Trees, Bushes, Landscape And Other Objects (Experimental) +$object = 1.5 + + +# Texture LOD Bias + +[Preset] +name = Lowest (+16, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = +16 + +[Preset] +name = Extremely low (+8, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = +8 + +[Preset] +name = Very low (+4, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = +4 + +[Preset] +name = Much lower (+3, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = +3 + +[Preset] +name = Lower (+2) +category = Texture Distance Detail (LOD) +$textureLODBias:int = +2 + +[Preset] +name = Slightly lower (+1) +category = Texture Distance Detail (LOD) +$textureLODBias:int = +1 + +[Preset] +name = Normal (Default) +category = Texture Distance Detail (LOD) +default = 1 + +[Preset] +name = Slightly higher (-1) +category = Texture Distance Detail (LOD) +$textureLODBias:int = -1 + +[Preset] +name = Higher (-2) +category = Texture Distance Detail (LOD) +$textureLODBias:int = -2 + +[Preset] +name = Much higher(-3) +category = Texture Distance Detail (LOD) +$textureLODBias:int = -3 + +[Preset] +name = Very high (-4, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = -4 + +[Preset] +name = Extremely high (-8, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = -8 + +[Preset] +name = Highest (-16, Not Recommended) +category = Texture Distance Detail (LOD) +$textureLODBias:int = -16 + + +[TextureRedefine] +formats = 0x31,0x32,0x34,0x35,0x431,0x432,0x433,0x234,0x235 +overwriteRelativeLodBias = $textureLODBias \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm b/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm new file mode 100644 index 00000000..f44c93c4 --- /dev/null +++ b/src/BreathOfTheWild/Mods/ExtendedMemory/patch_extendedHeaps.asm @@ -0,0 +1,67 @@ +[BotW_ExtendedMemory_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + +0x02C5E660 = lis r9, 0x8B60 ; add 0x50000000 to main gameheap which by default has a fixed size of 0x3B600000. Can't make it larger due to overlay arena being in the way + +SaveAreaHeapSize = 8 * 1024 * 1024 ; 8MiB (default is 2312KiB) +TriggerParamHeapSize = 8 * 1024 * 1024 ; 8MiB (default is around 2616KiB) +HavokMainHeapSize = 80 * 1024 * 1024 ; 80MiB (default is 30MiB) + +; GameDataHeap +0x032015E0 = lis r3, (SaveAreaHeapSize@ha + TriggerParamHeapSize@ha) + +; GameDataHeap -> SaveArea heap +0x03201A44 = lis r3, SaveAreaHeapSize@ha +0x03201A5C = addi r3, r3, SaveAreaHeapSize@l + +; GameDataHeap -> TriggerParam +; Uses the remaining allocatable size of GameDataHeap + +; HavokMainHeap +0x037FD6A4 = lis r6, HavokMainHeapSize@ha + +; Overlay arena +0x030AA5F4 = lis r7, 0x4000 ; expand overlay arena root heap size to 0x40000000 (1GiB) from default 0x1C000000 (448MiB). Can't make it larger due to forground bucket memory being in the way (starts at 0xE0000000) + ; Extra size for overlay arena from rules.txt is 0x24000000 (576MiB) +; Overlay arena -> FixedHeap +0x034ED614 = lis r3, 0x0C20 + 0x1000 ; add 256MiB + +; Overlay arena -> MoveableMemoryHeap +0x034ED66C = lis r3, 0x0FD0 + 0x1000 ; add 256MiB + +; Increase the size of the resource heap for small resources. When using mods like e.g. draw distance this would likely be the reason why it would spawn panic moons. +_increaseResourceSmallHeap: +lwz r10, 0x70(r24) +addis r10, r10, 0x500 +stw r10, 0x70(r24) +blr + +0x037EAADC = bla _increaseResourceSmallHeap + +; Increase the size of the resource heap for large resources. When using mods like e.g. draw distance this would likely be the reason why it would spawn panic moons. +_increaseResourceLargeHeap: +lwz r11, 0x6C(r24) +addis r11, r11, 0x500 +stw r11, 0x6C(r24) +blr + +0x037EAB84 = bla _increaseResourceLargeHeap + +; Some notes on potential further heaps + +; The function at 0x030A5FA0 is the sead::ExpHeap::create function, which is used for pretty much all of BotW's heap creations. +; 0x02C235A0 = KingSystem -> uking::frm::System -> StageBinder +; 0x030A9E7C = Could be used to increase the sead::Arena size. Might already be increased. +; A lot of heaps inside the function at 0x034ED524 are used to initialize individual heaps +; 0x034ED55C = Overlay arena -> FixedHeap -> GameDataWork +; 0x034ECFCC = Overlay arena -> FixedHeap -> ForOverlayArena +; 0x034ECED8 = Overlay arena -> FixedHeap -> TexArcWork +; 0x034ED4EC = Overlay arena -> FixedHeap -> PlacementTree +; 0x034ED884 = Overlay arena -> SZSDecompressorInst +; 0x0309F1AC = ? -> SeadResourceMgr +; 0x037A19B0 = ? -> ActorFactory Related 1 - This could be used to increase the size that a heap can have. +; 0x037AE978 = ? -> ActorFactory Related 2 - This could be used to increase the size that a heap can have. +; 0x03B3EA40 = ? -> AglWorkHeap +; Heap creation is near 0x03201174 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/ExtendedMemory/rules.txt b/src/BreathOfTheWild/Mods/ExtendedMemory/rules.txt new file mode 100644 index 00000000..b0719072 --- /dev/null +++ b/src/BreathOfTheWild/Mods/ExtendedMemory/rules.txt @@ -0,0 +1,15 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Extended Memory +path = "The Legend of Zelda: Breath of the Wild/Mods/Extended Memory" +description = Adds an extra 2GB of emulated RAM.|Only enable this if a mod you want to use requires this since it'll use more RAM. +version = 6 + +[RAM] +mapping0 = 0x10000000-0xA0000000 # extend MEM2 region (default range is 0x10000000-0x50000000) +mapping1 = 0xA0000000-0xE0000000 # extend overlay region (default range is 0xA0000000-0xBC000000) +# BotW (and other games might) require additional modifications to the code to utilize this extra ram. + + +# If you've got any improvements for this pack (since it's currently work-in-progress), please let us know in the Cemu Graphic Packs github (https://github.com/slashiee/cemu_graphic_packs) via an issue. +# Also, it'd be appreciated if the code for this graphic pack wasn't included inside of mods for the sake of mod compatibility. \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/FPS++/README.md b/src/BreathOfTheWild/Mods/FPS++/README.md new file mode 100644 index 00000000..27a1bf0c --- /dev/null +++ b/src/BreathOfTheWild/Mods/FPS++/README.md @@ -0,0 +1,4 @@ +Since this work isn't wholly mine anymore I feel it needs a readme. +Thanks to the contributors Crementif and epigramx and as always rajkosto for the input early on and for making it possible to begin with. Also thanks to the Cemu dev team for creating such a fun emulator. They recently added a debugger to aid in projects like this and I can't wait to try it out. + +Credits for the arrow fix go to epigramx and the initial porting of it to FPS++ by Crementif. It's always nice to see people contribute to make something better. I fully welcome others messing around with this and have added comments to all the original code in hope that it is easier to understand. But I suck at comments as much as I suck at code. If you have questions about patching feel free to ask me on Discord. I would like to avoid situations where a whole bunch of lines are copy pasted into FPS++, where 90% of them don't do anything, claiming it fixes things it doesn't. And fragmenting the user base with regards to which FPS++ they should use. diff --git a/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm b/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm new file mode 100644 index 00000000..efa37780 --- /dev/null +++ b/src/BreathOfTheWild/Mods/FPS++/patch_ControllerScrollSpeed.asm @@ -0,0 +1,96 @@ +[BotW_ControllerScrollSpeed_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + + +const_roundUpModifier: +.float $roundUpModifier + +averageFPS1IntInvIgnore: +.int 0 +averageFPS1IntInvValue: +.int 1 + +disableFastScrolling: +.int 0 + +; The game initializes two tables for intial and repeated delay. One entry for each button (up to 32). Counts in frames. +; This is a very imperfect fix, which is why it's an opt-in fix that's even then only enabled for those that are above 60FPS in the menus. + +; This calculates dynamic FPS system. +_calculateAverageFPSInt: +lis r8, averageFPS1Inv@ha +lfs f0, averageFPS1Inv@l(r8) +lis r8, const_roundUpModifier@ha +lfs f13, const_roundUpModifier@l(r8) +fadds f0, f0, f13 +fctiwz f0, f0 +lis r8, averageFPS1IntInvIgnore@ha +stfd f0, averageFPS1IntInvIgnore@l(r8) +li r8, 0 +lis r10, disableFastScrolling@ha +stw r8, disableFastScrolling@l(r10) +lis r8, averageFPS1IntInvValue@ha +lwz r10, averageFPS1IntInvValue@l(r8) +cmpwi r10, $cursorFixAbove +ble disabledFix + +lis r8, averageFPS1IntInvValue@ha +stw r10, averageFPS1IntInvValue@l(r8) +li r8, 1 +lis r10, disableFastScrolling@ha +stw r8, disableFastScrolling@l(r10) +add r8, r29, r6 +blr + +disabledFix: +li r8, 1 +lis r10, averageFPS1IntInvValue@ha +stw r8, averageFPS1IntInvValue@l(r10) +add r8, r29, r6 +blr + +_scaleRepeatInputDelay: +lis r7, averageFPS1IntInvValue@ha +lwz r7, averageFPS1IntInvValue@l(r7) +lbz r10, 0xC8(r8) ; read repeat delay (in frames) from table +mullw r10, r10, r7 +blr + +_scaleInitialInputDelay: +lis r7, averageFPS1IntInvValue@ha +lwz r7, averageFPS1IntInvValue@l(r7) +lbz r8, 0xA8(r4) ; read initial delay (in frames) from table +mullw r8, r8, r7 +lwzx r7, r9, r11 +blr + +; Patch sead::ControllerBase::updateDerivativeParams_ +0x030BD76C = bla _calculateAverageFPSInt +0x030bd770 = bla _scaleRepeatInputDelay +0x030BD77C = nop +0x030bd784 = bla _scaleInitialInputDelay + + +; Disable fast scrolling function +_disableFastScrolling: +lis r12, disableFastScrolling@ha +lwz r10, disableFastScrolling@l(r12) +cmpwi r10, 1 +beq disableFastScrollingPath + +lis r12, 4 +addi r12, r12, 0x68C +cmpwi r6, 0 +add r12, r3, r12 +blr + +disableFastScrollingPath: +mtlr r9 +blr + +0x03053AF8 = mflr r9 +0x03053AFC = bla _disableFastScrolling +0x03053B00 = mtlr r9 +0x03053B04 = nop diff --git a/src/BreathOfTheWild/Mods/FPS++/patch_FenceMethod.asm b/src/BreathOfTheWild/Mods/FPS++/patch_FenceMethod.asm new file mode 100644 index 00000000..cea4f91c --- /dev/null +++ b/src/BreathOfTheWild/Mods/FPS++/patch_FenceMethod.asm @@ -0,0 +1,78 @@ +[BotW_FenceMethod_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + +# variables +_fenceMethod: # stores fence method mode from preset +.int $fenceMethod + +_conditionalPerformanceFence: +lis r11, _fenceMethod@ha +lwz r11, _fenceMethod@l(r11) ; Load the fence method value +cmpwi r11, 1 ; Compare the skip fence method with the fence method that's set, store comparison to the conditional register +bne .+0x0C ; If the conditional register isn't equel to the performance fence method, skip the next two instructions +li r0, 1 # Performance fence always set the fence skip value to 1 +blr ; Return to the instruction that jumped to this part to the code cave +lwz r0, 0x388(r31) ; Instruction that gets executed if performance fence isn't used, this is the original instruction. +blr ; Return to the instruction that jumped to this part to the code cave + +# Accurate and Skip Fence methods + +_conditionalAccurateAndSkipFence: +lis r5, _fenceMethod@ha +lwz r11, _fenceMethod@l(r5) ; Load the fence method value +cmpwi r11, 2 ; Compare the accurate fence method with the fence method that's set, store comparison to the conditional register +li r5, 6 ; Original instruction that got replaced with the jump +add r6, r12, r0 ; Instruction that got replaced with the fence skip check +bne .+0x10 ; If the conditional register isn't equel to accurate fence, skip the next three instructions (the ones that are the accurate fence) to the next comparison instruction. +cmpwi r6, 500 # Accurate fence basically checks if it's the first 500 frames of the game, in which case it does a full fence. +blt .+0x08 +subi r6, r6, 1 +cmpwi r11, 3 ; Compare the skip fence method with the fence method that's set, in preparation of the fence skip since it stores the result in the conditional register. +blr ; Return to the instruction that jumped to this part to the code cave + +0x31FAAE8 = bla _conditionalPerformanceFence ; Jumps to the conditional performance part of the code cave that creates the performance fence skip if that preset has been chosen. +0x31FAAF8 = bla _conditionalAccurateAndSkipFence ; Jumps to the conditional accurate part of the code cave that creates the accurate fence skip if that preset has been chosen. +0x31FAAFC = beq .+0x08 ; This part is the crucial part of the fence skip method. It skips the GX2SetGPUFence call in which case there's no fence skip, if the conditional register that has previously been set by the accurate code cave was true. + +[BotW_FenceMethod_V176V192] +moduleMatches = 0xFD091F9F, 0xD472D8A5 + +# Code Cave +codeCaveSize = 0x50 + +# Fence Method Value +_fenceMethod = 0x0000000 +0x0000000 = .int $fenceMethod + +# Performance Fence method + +_conditionalPerformanceFence = 0x0000004 +0x0000004 = lis r11, _fenceMethod@ha +0x0000008 = lwz r11, _fenceMethod@l(r11) +0x000000C = cmpwi r11, 1 +0x0000010 = bne .+0x0C +0x0000014 = li r0, 1 +0x0000018 = blr +0x000001C = lwz r0, 0x388(r31) +0x0000020 = blr + +# Accurate and Skip Fence methods + +_conditionalAccurateAndSkipFence = 0x0000024 +0x0000024 = lis r5, _fenceMethod@ha +0x0000028 = lwz r11, _fenceMethod@l(r5) +0x000002C = cmpwi r11, 2 +0x0000030 = li r5, 6 +0x0000034 = add r6, r12, r0 +0x0000038 = bne .+0x10 +0x000003C = cmpwi r6, 500 +0x0000040 = blt .+0x08 +0x0000044 = subi r6, r6, 1 +0x0000048 = cmpwi r11, 3 +0x000004C = blr + +0x31F9FEC = bla _conditionalPerformanceFence +0x31F9FFC = bla _conditionalAccurateAndSkipFence +0x31FA000 = beq .+0x08 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm b/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm new file mode 100644 index 00000000..0a1c851d --- /dev/null +++ b/src/BreathOfTheWild/Mods/FPS++/patch_GameSpeed.asm @@ -0,0 +1,236 @@ +[BotW_Gamespeed_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + + +# Constants + +const_0.5: +.float 30 +const_1: +.float 1 +const_30: +.float 30 + +busSpeed: +.float 62156250 + +convSub: +.uint 0x43300000 +.uint 0x80000000 + + +# Variables + +fpsLimit: +.float $fpsLimit + +lowFPSLimit: +.float $lowFPSLimit + +bufferSizeDivider: +.float $frameAverageAmount + +averageFPS30: +.float $fpsLimit + +averageFPS30Inv: +.float $fpsLimit + +averageFPS1: +.float 30/$fpsLimit + +averageFPS1Inv: +.float $fpsLimit/30 + +averageSum: +.float $fpsLimit*$frameAverageAmount + +bufferStart: +.ptr 0xDC + +bufferCurrEntry: +.ptr 0xDC + +bufferEnd: +.ptr 0xDC+(4*$frameAverageAmount) + +; Useful for trying potential FPS values. Need to set debugMode = 1 to enable the debugging in the interface and code. +debugAddr: +.ptr 0x1040CE78 + +debugMultiplier: +.float $debugMultiplier + + +# Code + +_calculateGamespeed: +stw r0, 0x78(r30) ; Execute original instruction that got replaced with a jump to this function + +; If static FPS is enabled, always set currently "running" FPS to $fpsLimit +li r3, $staticFPSMode ; Load the $staticFPSMode setting into r3 +cmpwi r3, 1 ; Compare with 1, which is when it's enabled +bne _calculateDynamicFPS ; If the comparison is not equal, run +lis r3, fpsLimit@ha ; Load current FPS limit... +lfs f10, fpsLimit@l(r3) ; ...into f10 +b _setGamespeed ; Skip dynamic FPS code when static mode is enabled and go to the game speed setting code + +; Calculate speed of current frame (FPS). It's calculated by using the ticks between the previous frame and now, which is stored in r12, and the amount of ticks that the Wii U executes in a second (the bus speed). +_calculateDynamicFPS: +xoris r12, r12, 0x8000 ; Flip the sign bit of int ticks for floating point conversion +stw r12, 0xD4(r30) ; Store sign flipped ticks in memory as lower half of double +lis r12, 0x4330 ; Create upper half of ticks double +stw r12, 0xD0(r30) ; Store it in upper half of memory +lfd f10, 0xD0(r30) ; Load full double ticks into f10 +lis r12, convSub@ha ; Load number to subtract from tick double... +lfd f12, convSub@l(r12) ; ...to create tick float into f12 +fsub f10, f10, f12 ; Do the subtraction +frsp f10, f10 ; Round to single precision and tick float is in f10 +lis r12, const_1@ha ; Load float of 1... +lfs f12, const_1@l(r12) ; ...into f12 +fdivs f10, f12, f10 ; Divide 1 by ticks +lis r12, busSpeed@ha ; Load wii u bus speed... +lfs f12, busSpeed@l(r12) ; ...into f12 +fmuls f10, f12, f10 ; Multiply bus speed to have current fps in f10. (1/ticks)*bus speed + +; Initialize the circular buffer with default values +_initializeAverageBuffer: +lwz r11, 0xD8(r30) ; Check whether/what the current buffer settings are +cmpwi r11, $frameAverageAmount ; Compare the previously $frameAverageAmount with the current $frameAverageAmount +beq _calcAverageFPS ; Continue to calulating the average FPS if the previous settings are the same as the permanently set settings +lis r12, fpsLimit@ha ; Load current FPS limit... +lfs f10, fpsLimit@l(r12) ; ...into f12 +lis r12, bufferStart@ha ; Load offset to the start of the averaging buffer... +lwz r12, bufferStart@l(r12) ; ...into r12 +lis r3, bufferEnd@ha ; Load offset to the end of the averaging buffer... +lwz r3, bufferEnd@l(r3) ; ...into r3 +add r11, r12, r30 ; Make full offset by adding r30 (the empty buffer offset) to r12, which is the buffer offset. +stfs f10, 0x0(r11) ; Store f12 to the address in r12 + 0x04 using this specific instruction, which also adds the 0x04 to r12 +addi r12, r12, 0x04 ; Add 0x04 to the buffer offset to make the next entry offset +cmpw r12, r3 ; Compare the current address offset in r12 with the address offset in r3 +ble .-0x10 ; Loop back until the whole buffer is initialized with the value from f12 +li r11, $frameAverageAmount ; Load current $frameAverageAmount again... +stw r11, 0xD8(r30) ; ...to store that value again in the permanent (doesn't change after reloading) memory + +; Calculate the rolling average FPS over the last N amount of frames which are stored in the circular buffer +_calcAverageFPS: +lis r3, bufferCurrEntry@ha ; Load the offset to the current value +lwz r12, bufferCurrEntry@l(r3) ; Load the current buffer offset +lis r11, averageSum@ha ; Load the current average sum +lfs f7, averageSum@l(r11) ; ...into f7 + +add r3, r12, r30 ; Add r12 to r30 to create the whole offset, since Cemu's assembly doesn't support LFSX and STFX +lfs f12, 0x0(r3) ; Load the value that's stored in the current offset +fadds f7, f7, f10 ; Add the FPS from this current frame +fsubs f7, f7, f12 ; Subtract this value from the current average sum +stfs f7, averageSum@l(r11) ; Store this new average sum again +stfs f10, 0x0(r3) ; Store the FPS value from this current frame in place of the old value + +; Store the offset to the next buffer entry +lis r11, bufferEnd@ha ; Load offset to the end of the averaging buffer +lwz r11, bufferEnd@l(r11) ; ...into r11 +addi r12, r12, 0x04 ; Add 0x04 to the current entry offset to have the next entry offset +cmpw r11, r12 ; Compare this new entry offset to the end offset +bge .+0x0C ; Skip the next 2 lines if the next entry offset is smaller +lis r12, bufferStart@ha ; Load start of the buffer offset... +lwz r12, bufferStart@l(r12) ; ...into r12 +lis r3, bufferCurrEntry@ha ; Load current buffer entry +stw r12, bufferCurrEntry@l(r3) ; ...into r12 + +lis r3, bufferSizeDivider@ha ; Load the buffer size divider +lfs f10, bufferSizeDivider@l(r3); ...into f10 +fdivs f10, f7, f10 ; Divide the average FPS sum by the buffer size divider to get the average FPS + +; Calculates the gamespeed (which is stored in f10 regardless of average or static code path) +_setGamespeed: +; Prevent the FPS from going below 30FPS. +lis r11, lowFPSLimit@ha ; Load the lowest FPS that the game speed may be set to... +lfs f12, lowFPSLimit@l(r11) ; ...into f12 +fcmpu cr0, f10, f12 ; Compare the calculated FPS with the lowest FPS limit +bgt .+0x08 ; Skip the next line when the calculated FPS is higher then the low limit +fmr f10, f12 ; ...if this line isn't skipped, set the FPS to that low limit + +; Set average speed (30 range) +lis r11, averageFPS30@ha ; Store the calculated FPS... +stfs f10, averageFPS30@l(r11) ; ...to replace constants that normally use 30 + +; Set average speed (1.0 range) +lis r11, const_30@ha ; Load a constant float with 30... +lfs f12, const_30@l(r11) ; ...into f12 +fdivs f7, f12, f10 ; Divide the calculated FPS by 30 +lis r11, averageFPS1@ha ; Store this new divided calculated FPS... +stfs f7, averageFPS1@l(r11) ; ...to replace constants that normally use 1 + +; Set average speed (inverted 1.0 range) +fdivs f10, f10, f12 ; Multiply 1.0 by 30.0 to invert the FPS +lis r11, averageFPS1Inv@ha ; Store the inverted 30 float... +stfs f10, averageFPS1Inv@l(r11) ; ...to replace constants that is lower when FPS is higher + +; Set average speed (inverted 30 range) +fmuls f10, f7, f12 ; Multiply 1.0 by 30.0 to invert the FPS +lis r11, averageFPS30Inv@ha ; Store the inverted 30 float... +stfs f10, averageFPS30Inv@l(r11); ...to replace constants that is lower when FPS is higher + +; Check whether debug mode is on +li r11, $debugMode ; Load debugMode value in r11 +cmpwi r11, 1 ; Compare the value with 1 +bnelr ; If it's not equal, return back to the link register. Otherwise, run the following lines too... + +lis r11, debugMultiplier@ha ; Load the debug multiplier... +lfs f12, debugMultiplier@l(r11) ; ...which is used to modify the calulated FPS to experiment with potential FPS values +fmuls f7, f7, f12 ; Multiply the current FPS with this debug multiplier +lis r11, debugAddr@ha ; Load the pointer to the debug value address... +lwz r11, debugAddr@l(r11) ; ...into r11 +stfs f7, 0x0(r11) ; Store the multiplied value in the address from the pointer +blr ; Return back to the address stored in the link register + +; Multiplies the time draining using the calculated FPS +_changeArrowTimeDrain: +lfs f1, 0xFC(r11) ; Execute original instruction that got replaced with this codecave jump +lis r12, averageFPS1@ha ; Load the average FPS... +lfs f0, averageFPS1@l(r12) ; ...into f0 +fmuls f1, f1, f0 ; Multiply the time draining value by the average FPS divider +blr ; Return to the address that's stored in the link register + +; Multiplies the distance you travel during the flurry rush dash using the calculated FPS +_changeFlurryRush: +lis r4, averageFPS1Inv@ha ; Load average FPS into f8.. +lfs f8, averageFPS1Inv@l(r4) ; ...which is a float register that's safe to use since it's initialized later +fmuls f13, f13, f8 ; Multiply the flurry rush distance (stored in f1) with the FPS multiplier +fcmpu cr0, f13, f29 ; Execute original instruction that got replaced with this codecave jump +blr ; Return to the address that's stored in the link register + +# Patches + +0x1031E2C0 = .float 2 +0x031FACD0 = nop ; Disable vsync +0x031FACF4 = nop ; Disable vsync loop + +0x031FA97C = bla _calculateGamespeed ; Replace an instruction that gets called every frame to calculate the FPS + +0x100775AC = .float -999.0 ; Disable something that makes thunderblight ganon yeet off + +0x02C6B8F8 = bla _changeFlurryRush ; Fix the flurry rush distance +0x02D5F760 = bla _changeArrowTimeDrain ; Fix the stamina drain during arrow time +0x03793328 = nop +0x03793334 = nop +0x03793378 = lis r29, averageFPS1@ha ; Load the calculated FPS value +0x03793380 = lfs f0, averageFPS1@l(r29) ; ...to use that as animation speed +0x0379338C = nop ; Prevent an instruction from overwriting the loaded value +0x03415C1C = lis r12, averageFPS1@ha ; Load the calculated FPS value +0x03415C24 = lfs f0, averageFPS1@l(r12) ; ...to store that for the GUI speed value +0x03415C2C = nop ; Prevent an instruction from overwriting the loaded value +0x02D90D2C = lis r10, averageFPS30@ha +0x02D90D30 = lfs f11, averageFPS30@l(r10) +0x02D90D88 = lis r10, averageFPS30@ha +0x02D90D8C = lfs f11, averageFPS30@l(r10) +0x037DC35C = lis r12, averageFPS1@ha ; Fix audio looping by loading the calculated FPS value... +0x037DC360 = lfs f13, averageFPS1@l(r12) ; ...instead of the normal static 1.0 float it uses +0x02F62B3C = lis r12, averageFPS1@ha ; Fix map scrolling by loading the calculated FPS value... +0x02F62B40 = lfs f0, averageFPS1@l(r12) ; ...instead of the normal static 1.0 float it uses +0x020E730C = lis r12, averageFPS30Inv@ha ; Fix arrow speed by loading the calculated FPS value... +0x020E731C = lfs f13, averageFPS30Inv@l(r12); ...instead of the normal static 30.0 float it uses +0x033609D8 = lis r6, averageFPS1@ha ; Fix shield surfing by loading the calculated FPS value... +0x033609E0 = lfs f0, averageFPS1@l(r6) ; ...instead of the normal static 1.0 float it uses \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/FPS++/rules.txt b/src/BreathOfTheWild/Mods/FPS++/rules.txt new file mode 100644 index 00000000..dc21614a --- /dev/null +++ b/src/BreathOfTheWild/Mods/FPS++/rules.txt @@ -0,0 +1,390 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = FPS++ +path = "The Legend of Zelda: Breath of the Wild/Mods/FPS++" +description = Allows you to change the FPS and the speed that most things run at.|Some elements aren't patched though which can cause some physics issues. To bypass any issues you can enable the Temporary 30FPS Limit.||Made by Xalphenos, rajkosto, epigramx, Crementif and leoetlino. +version = 6 + +[Default] +$fpsLockMode:int = 0 +$advancedMode:int = 0 +$staticFPSMode:int = 0 + +$fpsLimit = 60 +$frameAverageAmount = 8 +$fenceMethod = 1 +$lowFPSLimit = 20 +$cursorFixAbove:int = 999 +$roundUpModifier = 0.8 + +$showDebugModeOptions:int = 0 +$debugMode:int = 0 +$debugMultiplier = 1 + + +# Settings Mode + +[Preset] +name = Normal Settings +category = Mode +default = 1 +$advancedMode:int = 0 + +[Preset] +name = Advanced Settings +category = Mode +$advancedMode:int = 1 + + +# Simple FPS Limit + +[Preset] +name = 240FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 240 + +[Preset] +name = 165FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 165 + +[Preset] +name = 144FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 144 + +[Preset] +name = 120FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 120 + +[Preset] +name = 90FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 90 + +[Preset] +name = 75FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 75 + +[Preset] +name = 72FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 72 + +[Preset] +name = 60FPS Limit (Default) +category = FPS Limit +condition = $advancedMode == 0 +default = 1 +$fpsLimit = 60 + +[Preset] +name = 45FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 45 + +[Preset] +name = 30FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 30 + +[Preset] +name = 20FPS Limit +category = FPS Limit +condition = $advancedMode == 0 +$fpsLimit = 20 + + +# Simple FPS Lock + +[Preset] +name = Enabled (prevents cutscene crashing, specific shrine physics issues) +category = Temporary 30FPS Limit +condition = $advancedMode == 0 +$fpsLockMode:int = 1 +$fpsLimit = 30 + + +[Preset] +name = Disabled (Default) +category = Temporary 30FPS Limit +condition = $advancedMode == 0 +default = 1 +$fpsLockMode:int = 0 + + +# Advanced Settings + +# Framerate Limit + +[Preset] +name = No FPS Limit (for benchmarking) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 999 + +[Preset] +name = 244FPS (ideal for 244Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 244 + +[Preset] +name = 240FPS (ideal for 240Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 240 + +[Preset] +name = 165FPS (ideal for 165Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 165 + +[Preset] +name = 144FPS (ideal for 144Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 144 + +[Preset] +name = 120FPS (ideal for 240/120/60Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 120 + +[Preset] +name = 75FPS (ideal for 75Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 75 + +[Preset] +name = 72FPS (ideal for 144Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 72 + +[Preset] +name = 60FPS (ideal for 240/120/60Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +default = 1 +$fpsLimit = 60 + +[Preset] +name = 55FPS (ideal for 165Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 55 + +[Preset] +name = 48FPS (ideal for 144Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 48 + +[Preset] +name = 40FPS (ideal for 240/120/60Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 40 + +[Preset] +name = 33FPS (ideal for 165Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 33 + +[Preset] +name = 30FPS (ideal for 240/120/60Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 30 + +[Preset] +name = 20FPS (ideal for 240/120/60Hz displays) +category = Framerate Limit +condition = $advancedMode == 1 +$fpsLimit = 20 + + +# Static Mode + +[Preset] +name = Enabled (slowdown when under framerate limit) +category = Static Mode +condition = $advancedMode == 1 +$staticFPSMode:int = 1 + +[Preset] +name = Disabled (Default, dynamically adjust game speed) +category = Static Mode +condition = $advancedMode == 1 +default = 1 +$staticFPSMode:int = 0 + + +# Frame Average + +[Preset] +name = 32 Frames Averaged (short slowdown after FPS drops) +category = Frame Average +condition = ($advancedMode-$staticFPSMode == 1) +$frameAverageAmount = 32 + +[Preset] +name = 16 Frames Averaged +category = Frame Average +condition = ($advancedMode-$staticFPSMode == 1) +$frameAverageAmount = 16 + +[Preset] +name = 8 Frames Averaged (Default) +category = Frame Average +condition = ($advancedMode-$staticFPSMode == 1) +default = 1 +$frameAverageAmount = 8 + +[Preset] +name = 6 Frames Averaged +category = Frame Average +condition = ($advancedMode-$staticFPSMode == 1) +$frameAverageAmount = 6 + +[Preset] +name = 4 Frames Averaged (juddery animations) +category = Frame Average +condition = ($advancedMode-$staticFPSMode == 1) +$frameAverageAmount = 4 + +[Preset] +name = 3 Frames Averaged (juddery animations) +category = Frame Average +condition = ($advancedMode-$staticFPSMode == 1) +$frameAverageAmount = 3 + + +# Fence Type + +[Preset] +name = Performance Fence (Default) +category = Fence Type +condition = $advancedMode == 1 +default = 1 +$fenceMethod = 1 + +[Preset] +name = Accurate Fence +category = Fence Type +condition = $advancedMode == 1 +$fenceMethod = 2 + +[Preset] +name = Fence Skip +category = Fence Type +condition = $advancedMode == 1 +$fenceMethod = 3 + + +# Cursor Fix Mode + +[Preset] +name = Disabled (Default) +category = Menu Cursor Fix (Experimental) +condition = ($advancedMode-$staticFPSMode == 1) +$cursorFixAbove:int = 999 + +[Preset] +name = Enabled At 72FPS And Higher (Recommended) +category = Menu Cursor Fix (Experimental) +condition = ($advancedMode-$staticFPSMode == 1) +$cursorFixAbove:int = 2 + +[Preset] +name = Enabled (For Testing, Not Recommended!) +category = Menu Cursor Fix (Experimental) +condition = ($advancedMode-$staticFPSMode == 1) +$cursorFixAbove:int = 1 + + +# Debug Menu Options + +[Preset] +name = Disabled (Default) +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +default = 1 +$debugMode:int = 0 +$debugMultiplier = 1 + +[Preset] +name = Multiply Debug Address By 100x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = 100 + +[Preset] +name = Multiply Debug Address By 50x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = 50 + +[Preset] +name = Multiply Debug Address By 10x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = 10 + +[Preset] +name = Tied To Framerate +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = 1 + +[Preset] +name = Divide Debug Value By 10x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = -10 + +[Preset] +name = Divide Debug Value By 30x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = -30 + +[Preset] +name = Divide Debug Value By 50x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = -50 + +[Preset] +name = Divide Debug Value By 100x +category = Debug Options +condition = ($advancedMode + $showDebugModeOptions == 2) +$debugMode:int = 1 +$debugMultiplier = -100 + + +[Control] +vsyncFrequency = $fpsLimit \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/Fog/29c30aaa023dc7e6_0000000000000709_ps.txt b/src/BreathOfTheWild/Mods/Fog/29c30aaa023dc7e6_0000000000000709_ps.txt new file mode 100644 index 00000000..dfbf6aef --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/29c30aaa023dc7e6_0000000000000709_ps.txt @@ -0,0 +1,181 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 29c30aaa023dc7e6 +// Used for: Big Bottom Swirls of Ganon's Aura around Hyrule Castle + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem5; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 7) in vec4 passParameterSem14; +layout(location = 8) in vec4 passParameterSem15; +layout(location = 9) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem4; +R3f = passParameterSem5; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem9; +R7f = passParameterSem14; +R8f = passParameterSem15; +R9f = passParameterSem16; +R3f.xw = (texture(textureUnitPS0, R5f.xy).xw); +// 0 +R123f.z = (R3f.w * 2.0 + -(1.0)); +PV0f.z = R123f.z; +R123f.w = (R3f.x * 2.0 + -(1.0)); +PV0f.w = R123f.w; +// 1 +PV1f.y = mul_nonIEEE(R2f.y, PV0f.w); +PV1f.w = mul_nonIEEE(R3f.y, PV0f.z); +// 2 +backupReg0f = R3f.z; +backupReg0f = R3f.z; +R3f.x = R5f.z + PV1f.y; +R3f.y = R5f.w + PV1f.w; +R3f.z = (mul_nonIEEE(backupReg0f,PV1f.y) + R6f.x); +R3f.w = (mul_nonIEEE(backupReg0f,PV1f.w) + R6f.y); +R3f.x = (texture(textureUnitPS1, R3f.xy).w); +R5f.xw = (texture(textureUnitPS2, R3f.zw).xw); +// 0 +R127f.x = mul_nonIEEE(R5f.x, R5f.x); +R123f.z = (mul_nonIEEE(R4f.w,R3f.x) + -(R0f.w)); +PV0f.z = R123f.z; +R127f.w = mul_nonIEEE(R5f.w, R5f.w); +// 1 +PV1f.y = mul_nonIEEE(R1f.w, PV0f.z); +PV1f.y = clamp(PV1f.y, 0.0, 1.0); +// 2 +backupReg0f = R127f.x; +R127f.x = mul_nonIEEE(backupReg0f, PV1f.y); +PV0f.y = PV1f.y; +PV0f.y = clamp(PV0f.y, 0.0, 1.0); +PV0f.w = mul_nonIEEE(R127f.w, PV1f.y); +// 3 +R123f.x = (mul_nonIEEE(R0f.z,PV0f.w) + intBitsToFloat(0x3d23d70a)); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R0f.y,PV0f.w) + intBitsToFloat(0x3c75c28f)); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(R0f.x,PV0f.w) + intBitsToFloat(0x3c75c28f)); +PV1f.z = R123f.z; +PV1f.w = mul_nonIEEE(R2f.x, PV0f.y); +// 4 +R127f.y = (mul_nonIEEE(R1f.z,R127f.x) + PV1f.x); +PV0f.y = R127f.y; +R127f.z = (mul_nonIEEE(R1f.y,R127f.x) + PV1f.y); +PV0f.z = R127f.z; +R127f.w = (mul_nonIEEE(R1f.x,R127f.x) + PV1f.z); +PV0f.w = R127f.w; +R1f.w = mul_nonIEEE(R7f.w, PV1f.w); +PS0f = R1f.w; +// 5 +PV1f.x = -(PV0f.y) + intBitsToFloat(uf_remappedPS[0].z); +PV1f.y = -(PV0f.z) + intBitsToFloat(uf_remappedPS[0].y); +PV1f.z = -(PV0f.w) + intBitsToFloat(uf_remappedPS[0].x); +// 6 +backupReg0f = R127f.y; +backupReg1f = R127f.z; +backupReg2f = R127f.w; +R127f.y = (mul_nonIEEE(PV1f.x,R9f.y) + backupReg0f); +PV0f.y = R127f.y; +R127f.z = (mul_nonIEEE(PV1f.y,R9f.y) + backupReg1f); +PV0f.z = R127f.z; +R127f.w = (mul_nonIEEE(PV1f.z,R9f.y) + backupReg2f); +PV0f.w = R127f.w; +// 7 +PV1f.x = R8f.x + -(PV0f.w); +PV1f.z = R8f.z + -(PV0f.y); +PV1f.w = R8f.y + -(PV0f.z); +// 8 +backupReg0f = R127f.y; +R127f.x = (mul_nonIEEE(PV1f.w,R8f.w) + R127f.z); +PV0f.x = R127f.x; +R127f.y = (mul_nonIEEE(PV1f.x,R8f.w) + R127f.w); +PV0f.y = R127f.y; +R127f.w = (mul_nonIEEE(PV1f.z,R8f.w) + backupReg0f); +PV0f.w = R127f.w; +// 9 +PV1f.x = -(PV0f.w) + intBitsToFloat(uf_remappedPS[1].z); +PV1f.y = -(PV0f.x) + intBitsToFloat(uf_remappedPS[1].y); +PV1f.z = -(PV0f.y) + intBitsToFloat(uf_remappedPS[1].x); +// 10 +R1f.x = (mul_nonIEEE(PV1f.z,R9f.x) + R127f.y); +R1f.y = (mul_nonIEEE(PV1f.y,R9f.x) + R127f.x); +R1f.z = (mul_nonIEEE(PV1f.x,R9f.x) + R127f.w); +// export +if( ((vec4(R1f.x, R1f.y, R1f.z, R1f.w)).a > uf_alphaTestRef) == false) discard; + +#if ($enableGanonAuraColor == 0) +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w*$ganonAuraOpacity); +#else +passPixelColor0 = vec4($ganonAuraRed, $ganonAuraGreen, $ganonAuraBlue, R1f.w*$ganonAuraOpacity); +#endif +} diff --git a/src/BreathOfTheWild/Mods/Fog/397f3d8521c96e30_0000000000000709_ps.txt b/src/BreathOfTheWild/Mods/Fog/397f3d8521c96e30_0000000000000709_ps.txt new file mode 100644 index 00000000..02cb8a79 --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/397f3d8521c96e30_0000000000000709_ps.txt @@ -0,0 +1,205 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 397f3d8521c96e30 +// Used for: Small Top Swirls of Ganon's Aura around Hyrule Castle + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem5; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 7) in vec4 passParameterSem12; +layout(location = 8) in vec4 passParameterSem14; +layout(location = 9) in vec4 passParameterSem15; +layout(location = 10) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem4; +R3f = passParameterSem5; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem9; +R7f = passParameterSem12; +R8f = passParameterSem14; +R9f = passParameterSem15; +R10f = passParameterSem16; +R3f.xw = (texture(textureUnitPS0, R5f.xy).xw); +// 0 +R123f.x = (R3f.x * 2.0 + -(1.0)); +PV0f.x = R123f.x; +PV0f.y = 1.0; +R123f.w = (R3f.w * 2.0 + -(1.0)); +PV0f.w = R123f.w; +// 1 +PV1f.x = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedPS[0].w)); +PV1f.y = mul_nonIEEE(R3f.y, PV0f.w); +PV1f.z = mul_nonIEEE(R2f.y, PV0f.x); +// 2 +R3f.x = (mul_nonIEEE(R3f.z,PV1f.z) + R6f.x); +R3f.y = (mul_nonIEEE(R3f.z,PV1f.y) + R6f.y); +R3f.z = R5f.z + PV1f.z; +R3f.w = R5f.w + PV1f.y; +R5f.x = (mul_nonIEEE(R7f.z,intBitsToFloat(uf_remappedPS[0].z)) + PV1f.x); +PS0f = R5f.x; +R6f.xw = (texture(textureUnitPS2, R3f.xy).xw); +R3f.x = (texture(textureUnitPS1, R3f.zw).w); +// 0 +tempf.x = dot(vec4(R7f.x,R7f.y,R5f.x,0.0),vec4(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(uf_remappedPS[0].y),1.0,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +PS0f = mul_nonIEEE(R6f.w, R6f.w); +// 1 +PV1f.x = mul_nonIEEE(R6f.x, R6f.x); +R127f.y = mul_nonIEEE(R4f.w, R3f.x); +PV1f.y = R127f.y; +PV1f.z = mul_nonIEEE(R4f.w, PS0f); +PV1f.w = -(PV0f.x) + intBitsToFloat(0xc2c80000); +// 2 +R127f.x = mul_nonIEEE(PV1f.z, PV1f.y); +R126f.y = -(R0f.w) + PV1f.y; +R126f.y = clamp(R126f.y, 0.0, 1.0); +R127f.z = PV1f.w * intBitsToFloat(0x3ba3d70a); +R127f.z = clamp(R127f.z, 0.0, 1.0); +PV0f.z = R127f.z; +PV0f.w = mul_nonIEEE(R4f.w, PV1f.x); +// 3 +backupReg0f = R0f.x; +backupReg1f = R0f.y; +PV1f.x = mul_nonIEEE(R0f.z, PV0f.z); +PV1f.y = mul_nonIEEE(backupReg0f, PV0f.z); +PV1f.z = mul_nonIEEE(backupReg1f, PV0f.z); +R126f.w = mul_nonIEEE(PV0f.w, R127f.y); +R127f.w = mul_nonIEEE(R1f.x, PV0f.z); +PS1f = R127f.w; +// 4 +R123f.x = (mul_nonIEEE(PV1f.x,R127f.x) + intBitsToFloat(0x3d23d70a)); +PV0f.x = R123f.x; +R123f.y = (mul_nonIEEE(PV1f.z,R127f.x) + intBitsToFloat(0x3c75c28f)); +PV0f.y = R123f.y; +R123f.z = (mul_nonIEEE(PV1f.y,R127f.x) + intBitsToFloat(0x3c75c28f)); +PV0f.z = R123f.z; +PV0f.w = mul_nonIEEE(R1f.y, R127f.z); +PS0f = mul_nonIEEE(R1f.z, R127f.z); +// 5 +R127f.x = (mul_nonIEEE(R126f.w,R127f.w) + PV0f.z); +PV1f.x = R127f.x; +PV1f.y = mul_nonIEEE(R1f.w, R126f.y); +PV1f.y = clamp(PV1f.y, 0.0, 1.0); +R127f.z = (mul_nonIEEE(R126f.w,PS0f) + PV0f.x); +PV1f.z = R127f.z; +R127f.w = (mul_nonIEEE(R126f.w,PV0f.w) + PV0f.y); +PV1f.w = R127f.w; +// 6 +PV0f.x = -(PV1f.z) + intBitsToFloat(uf_remappedPS[1].z); +PV0f.y = -(PV1f.w) + intBitsToFloat(uf_remappedPS[1].y); +PV0f.z = -(PV1f.x) + intBitsToFloat(uf_remappedPS[1].x); +PV0f.w = mul_nonIEEE(R2f.x, PV1f.y); +// 7 +backupReg0f = R8f.w; +R126f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R127f.z); +PV1f.y = R126f.y; +R127f.z = (mul_nonIEEE(PV0f.y,R10f.y) + R127f.w); +PV1f.z = R127f.z; +R127f.w = (mul_nonIEEE(PV0f.z,R10f.y) + R127f.x); +PV1f.w = R127f.w; +R8f.w = mul_nonIEEE(backupReg0f, PV0f.w); +PS1f = R8f.w; +// 8 +PV0f.x = R9f.x + -(PV1f.w); +PV0f.z = R9f.z + -(PV1f.y); +PV0f.w = R9f.y + -(PV1f.z); +// 9 +backupReg0f = R126f.y; +R127f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R127f.z); +PV1f.x = R127f.x; +R126f.y = (mul_nonIEEE(PV0f.x,R9f.w) + R127f.w); +PV1f.y = R126f.y; +R127f.w = (mul_nonIEEE(PV0f.z,R9f.w) + backupReg0f); +PV1f.w = R127f.w; +// 10 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[2].z); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[2].y); +PV0f.z = -(PV1f.y) + intBitsToFloat(uf_remappedPS[2].x); +// 11 +R8f.x = (mul_nonIEEE(PV0f.z,R10f.x) + R126f.y); +R8f.y = (mul_nonIEEE(PV0f.y,R10f.x) + R127f.x); +R8f.z = (mul_nonIEEE(PV0f.x,R10f.x) + R127f.w); +// export +if( ((vec4(R8f.x, R8f.y, R8f.z, R8f.w)).a > uf_alphaTestRef) == false) discard; + +#if ($enableGanonAuraColor == 0) +passPixelColor0 = vec4(R8f.x, R8f.y, R8f.z, R8f.w*$ganonAuraOpacity); +#else +passPixelColor0 = vec4($ganonAuraRed, $ganonAuraGreen, $ganonAuraBlue, R8f.w*$ganonAuraOpacity); +#endif +} diff --git a/src/BreathOfTheWild/Mods/Fog/527591781440691a_000000000001c24b_ps.txt b/src/BreathOfTheWild/Mods/Fog/527591781440691a_000000000001c24b_ps.txt new file mode 100644 index 00000000..9f6e46ed --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/527591781440691a_000000000001c24b_ps.txt @@ -0,0 +1,352 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 527591781440691a +// Used for: Distance Fog + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 5) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[7]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[7]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(10, 1, 4) uniform samplerCubeArray textureUnitPS10; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 7) in vec4 passParameterSem11; +layout(location = 8) in vec4 passParameterSem14; +layout(location = 9) in vec4 passParameterSem15; +layout(location = 10) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R12f = vec4(0.0); +vec4 R13f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex10 = 0.0; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem9; +R7f = passParameterSem11; +R8f = passParameterSem14; +R9f = passParameterSem15; +R10f = passParameterSem16; +R11f.xw = (texture(textureUnitPS0, R5f.xy).xw); +R13f.x = (texture(textureUnitPS2, R6f.xy).w); +// 0 +backupReg0f = R7f.z; +R127f.x = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].y)); +PV0f.y = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].x)); +R7f.z = -(backupReg0f); +PV0f.z = R7f.z; +R123f.w = (R11f.x * 2.0 + -(1.0)); +PV0f.w = R123f.w; +R127f.z = (R11f.w * 2.0 + -(1.0)); +PS0f = R127f.z; +// 1 +redcCUBE(vec4(PV0f.z,PV0f.z,R7f.x,R7f.y),vec4(R7f.y,R7f.x,PV0f.z,PV0f.z),cubeMapSTM,cubeMapFaceId); +R126f.x = cubeMapSTM.x; +R126f.y = cubeMapSTM.y; +R126f.z = cubeMapSTM.z; +R126f.w = intBitsToFloat(cubeMapFaceId); +PV1f.x = R126f.x; +PV1f.y = R126f.y; +PV1f.z = R126f.z; +PV1f.w = R126f.w; +R7f.x = (mul_nonIEEE(PV0f.y,PV0f.w) + R5f.z); +PS1f = R7f.x; +// 2 +R11f.x = R0f.x + -(R1f.x); +R7f.y = (mul_nonIEEE(R127f.x,R127f.z) + R5f.w); +R5f.z = PV1f.w; +R5f.w = intBitsToFloat(uf_remappedPS[1].x); +PS0f = 1.0 / abs(PV1f.z); +// 3 +R6f.x = R0f.z + -(R1f.z); +R6f.y = R0f.y + -(R1f.y); +R123f.z = (mul_nonIEEE(R126f.y,PS0f) + 1.5); +PV1f.z = R123f.z; +R123f.w = (mul_nonIEEE(R126f.x,PS0f) + 1.5); +PV1f.w = R123f.w; +PS1f = 1.0 / R2f.w; +// 4 +R5f.x = PV1f.z; +R5f.y = PV1f.w; +R7f.z = mul_nonIEEE(R2f.x, PS1f); +R7f.w = mul_nonIEEE(R2f.y, PS1f); +R11f.w = 1.0 / R2f.w; +PS0f = R11f.w; +R12f.xyzw = (texture(textureUnitPS1, R7f.xy).xyzw); +R5f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R5f.xy,floatBitsToInt(R5f.z)),cubeMapArrayIndex10),R5f.w).xyz); +R7f.x = (texture(textureUnitPS4, R7f.zw).x); +// 0 +PV0f.x = mul_nonIEEE(R12f.y, R12f.y); +PV0f.y = mul_nonIEEE(R12f.x, R12f.x); +R126f.z = R5f.x * 1.0; +PV0f.w = mul_nonIEEE(R12f.z, R12f.z); +R126f.x = R5f.y * 1.0; +PS0f = R126f.x; +// 1 +PV1f.x = PV0f.w * 1.0; +PV1f.y = PV0f.x * 1.0; +PV1f.z = PV0f.y * 1.0; +R126f.w = R5f.z * 1.0; +R127f.w = R8f.x + 0.0; +PS1f = R127f.w; +// 2 +R127f.x = R8f.y + 0.0; +R126f.y = (mul_nonIEEE(R6f.x,PV1f.x) + R1f.z); +R123f.z = (mul_nonIEEE(R6f.y,PV1f.y) + R1f.y); +PV0f.z = R123f.z; +R123f.w = (mul_nonIEEE(R11f.x,PV1f.z) + R1f.x); +PV0f.w = R123f.w; +R127f.y = R8f.z + 0.0; +PS0f = R127f.y; +// 3 +R123f.x = (mul_nonIEEE(R126f.w,intBitsToFloat(uf_remappedPS[2].y)) + 0.0); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R126f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(R126f.z,intBitsToFloat(uf_remappedPS[2].y)) + 0.0); +PV1f.z = R123f.z; +R126f.w = mul_nonIEEE(R4f.x, PV0f.w); +R125f.w = mul_nonIEEE(R4f.y, PV0f.z); +PS1f = R125f.w; +// 4 +R2f.x = R2f.z * R11f.w; +R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.y) + R127f.x); +PV0f.y = R123f.y; +PV0f.z = mul_nonIEEE(R4f.z, R126f.y); +R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.z) + R127f.w); +PV0f.w = R123f.w; +R122f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.x) + R127f.y); +PS0f = R122f.x; +// 5 +R127f.x = mul_nonIEEE(R126f.w, PV0f.w); +PV1f.x = R127f.x; +PV1f.y = mul_nonIEEE(R12f.w, R13f.x); +R126f.z = mul_nonIEEE(PV0f.z, PS0f); +PV1f.z = R126f.z; +R126f.w = mul_nonIEEE(R125f.w, PV0f.y); +PV1f.w = R126f.w; +// 6 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[3].y); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[3].x); +R123f.z = (mul_nonIEEE(R4f.w,PV1f.y) + -(R0f.w))*4.0; +R123f.z = clamp(R123f.z, 0.0, 1.0); +PV0f.z = R123f.z; +PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[3].z); +// 7 +backupReg0f = R127f.x; +backupReg1f = R1f.w; +R127f.x = (mul_nonIEEE(PV0f.w,R10f.y) + R126f.z); +PV1f.x = R127f.x; +R127f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R126f.w); +PV1f.y = R127f.y; +R126f.z = (mul_nonIEEE(PV0f.y,R10f.y) + backupReg0f); +PV1f.z = R126f.z; +R1f.w = mul_nonIEEE(backupReg1f, PV0f.z); +R1f.w = clamp(R1f.w, 0.0, 1.0); +// 8 +PV0f.y = R9f.z + -(PV1f.x); +PV0f.z = R9f.y + -(PV1f.y); +PV0f.w = R9f.x + -(PV1f.z); +// 9 +backupReg0f = R127f.x; +R127f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R126f.z); +PV1f.x = R127f.x; +R126f.z = (mul_nonIEEE(PV0f.y,R9f.w) + backupReg0f); +PV1f.z = R126f.z; +R126f.w = (mul_nonIEEE(PV0f.z,R9f.w) + R127f.y); +PV1f.w = R126f.w; +// 10 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].y); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].x); +PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[4].z); +// 11 +backupReg0f = R10f.x; +backupReg0f = R10f.x; +backupReg0f = R10f.x; +R10f.x = (mul_nonIEEE(PV0f.y,backupReg0f) + R127f.x); +R10f.y = (mul_nonIEEE(PV0f.x,backupReg0f) + R126f.w); +R10f.z = (mul_nonIEEE(PV0f.w,backupReg0f) + R126f.z); +// 0 +R127f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].w),R7f.x) + intBitsToFloat(uf_remappedPS[5].x)); +R123f.y = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedPS[5].w)) + -(intBitsToFloat(uf_remappedPS[5].y))); +PV0f.y = R123f.y; +// 1 +PS1f = 1.0 / PV0f.y; +// 2 +PV0f.z = -(intBitsToFloat(uf_remappedPS[5].z)) * PS1f; +R126f.z = 1.0 / intBitsToFloat(uf_remappedPS[6].y); +PS0f = R126f.z; +// 3 +PV1f.w = -(PV0f.z) + R127f.x; +// 4 +PV0f.y = PV1f.w * R126f.z; +PV0f.y = clamp(PV0f.y, 0.0, 1.0); +// 5 +PV1f.x = mul_nonIEEE(R1f.w, PV0f.y); +// 6 +R10f.w = mul_nonIEEE(R3f.x, PV1f.x); +// export +if( ((vec4(R10f.x, R10f.y, R10f.z, R10f.w)).a > uf_alphaTestRef) == false) discard; + +#if ($enableDistanceFogColor == 0) +passPixelColor0 = vec4(R10f.x, R10f.y, R10f.z, R10f.w*$distanceFogOpacity); +#else +passPixelColor0 = vec4($distanceFogRed, $distanceFogGreen, $distanceFogBlue, R10f.w*$distanceFogOpacity); +#endif +} \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/Fog/699b238ae15d113b_00000000000000e1_ps.txt b/src/BreathOfTheWild/Mods/Fog/699b238ae15d113b_00000000000000e1_ps.txt new file mode 100644 index 00000000..d09d00f7 --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/699b238ae15d113b_00000000000000e1_ps.txt @@ -0,0 +1,199 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 699b238ae15d113b +// Used for: Fog Hyrule Castle + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(4, 1, 1) uniform sampler2D textureUnitPS4; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem11; +layout(location = 7) in vec4 passParameterSem14; +layout(location = 8) in vec4 passParameterSem15; +layout(location = 9) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem2; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem11; +R7f = passParameterSem14; +R8f = passParameterSem15; +R9f = passParameterSem16; +R1f.w = (texture(textureUnitPS0, R5f.xy).w); +// 0 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,-0.0),vec4(R1f.x,R1f.y,R1f.z,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R127f.z = tempf.x; +PS0f = 1.0 / R2f.w; +// 1 +R5f.x = mul_nonIEEE(R2f.x, PS0f); +R5f.y = mul_nonIEEE(R2f.y, PS0f); +R3f.z = -(intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[0].w); +R3f.w = mul_nonIEEE(R0f.x, R4f.x); +PV1f.w = R3f.w; +PS1f = 1.0 / R2f.w; +// 2 +R2f.x = R2f.z * PS1f; +R2f.y = mul_nonIEEE(R0f.y, R4f.y); +R5f.z = -(PV1f.w) + intBitsToFloat(uf_remappedPS[1].x); +R2f.w = mul_nonIEEE(R4f.w, R1f.w); +tempResultf = 1.0 / sqrt(R127f.z); +R1f.w = tempResultf; +PS0f = R1f.w; +R2f.z = (texture(textureUnitPS4, R5f.xy).x); +// 0 +backupReg0f = R0f.z; +PV0f.x = mul_nonIEEE(R1f.x, R1f.w); +PV0f.y = mul_nonIEEE(R1f.y, R1f.w); +PV0f.z = mul_nonIEEE(R1f.z, R1f.w); +R123f.w = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedPS[2].w)) + -(intBitsToFloat(uf_remappedPS[2].y))); +PV0f.w = R123f.w; +R1f.x = mul_nonIEEE(backupReg0f, R4f.z); +PS0f = R1f.x; +// 1 +tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(PV0f.x,PV0f.y,PV0f.z,0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +PS1f = 1.0 / PV0f.w; +// 2 +PV0f.x = max(PV1f.x, -(PV1f.x)); +PV0f.y = -(intBitsToFloat(uf_remappedPS[2].z)) * PS1f; +R127f.z = mul_nonIEEE(R0f.w, R2f.w); +R127f.z = clamp(R127f.z, 0.0, 1.0); +R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R2f.z) + intBitsToFloat(uf_remappedPS[2].x)); +PV0f.w = R123f.w; +R127f.y = 1.0 / R3f.z; +PS0f = R127f.y; +// 3 +R127f.x = (mul_nonIEEE(R5f.z,R9f.y) + R3f.w); +PV1f.x = R127f.x; +PV1f.z = -(PV0f.y) + PV0f.w; +PV1f.w = PV0f.x + -(intBitsToFloat(uf_remappedPS[0].z)); +PS1f = 1.0 / intBitsToFloat(uf_remappedPS[3].y); +// 4 +PV0f.x = PV1f.w * R127f.y; +PV0f.x = clamp(PV0f.x, 0.0, 1.0); +PV0f.y = PV1f.z * PS1f; +PV0f.y = clamp(PV0f.y, 0.0, 1.0); +PV0f.z = R8f.x + -(PV1f.x); +// 5 +backupReg0f = R127f.x; +R127f.x = mul_nonIEEE(R127f.z, PV0f.y); +R0f.y = (mul_nonIEEE(PV0f.z,R8f.w) + backupReg0f); +R123f.z = (intBitsToFloat(0xc0000000) * PV0f.x + intBitsToFloat(0x40400000)); +PV1f.z = R123f.z; +PV1f.w = mul_nonIEEE(PV0f.x, PV0f.x); +// 6 +PV0f.y = mul_nonIEEE(PV1f.w, PV1f.z); +// 7 +PV1f.x = mul_nonIEEE(R127f.x, PV0f.y); +// 8 +PV0f.w = mul_nonIEEE(R3f.x, PV1f.x); +// 9 +backupReg0f = R7f.w; +R7f.w = mul_nonIEEE(backupReg0f, PV0f.w); +// 0 +PV0f.x = -(R1f.x) + intBitsToFloat(uf_remappedPS[1].z); +PV0f.y = -(R2f.y) + intBitsToFloat(uf_remappedPS[1].y); +// 1 +PV1f.x = -(R0f.y) + intBitsToFloat(uf_remappedPS[4].x); +R127f.y = (mul_nonIEEE(PV0f.x,R9f.y) + R1f.x); +PV1f.y = R127f.y; +R127f.z = (mul_nonIEEE(PV0f.y,R9f.y) + R2f.y); +PV1f.z = R127f.z; +// 2 +R7f.x = (mul_nonIEEE(PV1f.x,R9f.x) + R0f.y); +PV0f.z = R8f.z + -(PV1f.y); +PV0f.w = R8f.y + -(PV1f.z); +// 3 +R127f.x = (mul_nonIEEE(PV0f.w,R8f.w) + R127f.z); +PV1f.x = R127f.x; +R127f.w = (mul_nonIEEE(PV0f.z,R8f.w) + R127f.y); +PV1f.w = R127f.w; +// 4 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].z); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].y); +// 5 +R7f.y = (mul_nonIEEE(PV0f.y,R9f.x) + R127f.x); +R7f.z = (mul_nonIEEE(PV0f.x,R9f.x) + R127f.w); +// export +if( ((vec4(R7f.x, R7f.y, R7f.z, R7f.w)).a > uf_alphaTestRef) == false) discard; + +#if ($enableCastleFogColor == 0) +passPixelColor0 = vec4(R7f.x, R7f.y, R7f.z, R7f.w*$castleFogOpacity); +#else +passPixelColor0 = vec4($castleFogRed, $castleFogGreen, $castleFogBlue, R7f.w*$castleFogOpacity); +#endif +} diff --git a/src/BreathOfTheWild/Mods/Fog/6ef3887dc83ac35e_000000000001c24b_ps.txt b/src/BreathOfTheWild/Mods/Fog/6ef3887dc83ac35e_000000000001c24b_ps.txt new file mode 100644 index 00000000..a7cb598a --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/6ef3887dc83ac35e_000000000001c24b_ps.txt @@ -0,0 +1,398 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 6ef3887dc83ac35e +// Used for: Fog Clouds + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 5) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[9]; +uniform float uf_alphaTestRef; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[9]; +uniform float uf_alphaTestRef; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(10, 1, 4) uniform samplerCubeArray textureUnitPS10; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem8; +layout(location = 5) in vec4 passParameterSem9; +layout(location = 6) in vec4 passParameterSem11; +layout(location = 7) in vec4 passParameterSem14; +layout(location = 8) in vec4 passParameterSem15; +layout(location = 9) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex10 = 0.0; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem8; +R5f = passParameterSem9; +R6f = passParameterSem11; +R7f = passParameterSem14; +R8f = passParameterSem15; +R9f = passParameterSem16; +R10f.xw = (texture(textureUnitPS0, R4f.xy).xw); +R10f.y = (texture(textureUnitPS2, R5f.xy).w); +// 0 +R11f.x = R0f.x + -(R1f.x); +R123f.y = (R10f.w * 2.0 + -(1.0)); +PV0f.y = R123f.y; +R123f.z = (R10f.x * 2.0 + -(1.0)); +PV0f.z = R123f.z; +R127f.w = R10f.y * 1.0; +R127f.z = 1.0 / R2f.w; +PS0f = R127f.z; +// 1 +PV1f.x = mul_nonIEEE(R3f.y, PV0f.z); +PV1f.y = mul_nonIEEE(R3f.y, PV0f.y); +R11f.z = mul_nonIEEE(R2f.x, PS0f); +R10f.w = intBitsToFloat(uf_remappedPS[0].x); +R11f.y = mul_nonIEEE(R2f.y, PS0f); +PS1f = R11f.y; +// 2 +PV0f.x = R2f.z * R127f.z; +R2f.y = R0f.y + -(R1f.y); +PV0f.z = mul_nonIEEE(PV1f.x, R127f.w); +PV0f.w = mul_nonIEEE(R127f.w, PV1f.y); +R2f.w = R7f.x + 0.0; +PS0f = R2f.w; +// 3 +R4f.xyz = vec3(R4f.z,R4f.w,R5f.x) + vec3(PV0f.z,PV0f.w,PV0f.z); +R4f.w = R5f.y + PV0f.w; +R122f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV0f.x) + -(intBitsToFloat(uf_remappedPS[1].y))); +PS1f = R122f.x; +// 4 +R5f.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),0.0)); +PV0f.x = R5f.x; +PV0f.y = R5f.x; +PV0f.z = R5f.x; +PV0f.w = R5f.x; +R127f.z = 1.0 / PS1f; +PS0f = R127f.z; +// 5 +backupReg0f = R0f.z; +tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[3].x),intBitsToFloat(uf_remappedPS[3].y),intBitsToFloat(uf_remappedPS[3].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R127f.y = tempf.x; +R5f.y = backupReg0f + -(R1f.z); +PS1f = R5f.y; +// 6 +tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R2f.z = tempf.x; +R3f.z = R7f.y + 0.0; +PS0f = R3f.z; +// 7 +backupReg0f = R6f.z; +tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R127f.w = tempf.x; +R6f.z = -(backupReg0f); +PS1f = R6f.z; +// 8 +redcCUBE(vec4(PS1f,PS1f,R6f.x,R6f.y),vec4(R6f.y,R6f.x,PS1f,PS1f),cubeMapSTM,cubeMapFaceId); +R126f.x = cubeMapSTM.x; +R126f.y = cubeMapSTM.y; +R126f.z = cubeMapSTM.z; +R126f.w = intBitsToFloat(cubeMapFaceId); +PV0f.x = R126f.x; +PV0f.y = R126f.y; +PV0f.z = R126f.z; +PV0f.w = R126f.w; +R6f.y = -(intBitsToFloat(uf_remappedPS[1].z)) * R127f.z; +PS0f = R6f.y; +// 9 +backupReg0f = R0f.w; +PV1f.x = R127f.w * R127f.w; +R0f.y = R7f.z + 0.0; +R10f.z = PV0f.w; +R0f.w = (backupReg0f * 2.0 + -(1.0)); +PS1f = 1.0 / abs(PV0f.z); +// 10 +R123f.x = (R2f.z * R2f.z + PV1f.x); +PV0f.x = R123f.x; +R123f.z = (mul_nonIEEE(R126f.y,PS1f) + 1.5); +PV0f.z = R123f.z; +R123f.w = (mul_nonIEEE(R126f.x,PS1f) + 1.5); +PV0f.w = R123f.w; +// 11 +R10f.x = PV0f.z; +R10f.y = PV0f.w; +R0f.x = (R127f.y * R127f.y + PV0f.x); +PS1f = R0f.x; +R10f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R10f.xy,floatBitsToInt(R10f.z)),cubeMapArrayIndex10),R10f.w).xyz); +R7f.xyzw = (texture(textureUnitPS1, R4f.xy).xyzw); +R4f.y = (texture(textureUnitPS4, R11f.zy).x); +R11f.y = (texture(textureUnitPS0, R4f.zw).w); +// 0 +R123f.x = (R5f.x * R5f.x + R0f.x); +PV0f.x = R123f.x; +PV0f.y = R10f.x * 1.0; +PV0f.z = R10f.y * 1.0; +PV0f.w = R10f.z * 1.0; +R126f.x = mul_nonIEEE(R7f.z, R7f.z); +PS0f = R126f.x; +// 1 +R127f.x = (mul_nonIEEE(PV0f.w,intBitsToFloat(uf_remappedPS[6].y)) + 0.0); +R123f.y = (mul_nonIEEE(PV0f.z,intBitsToFloat(uf_remappedPS[6].y)) + 0.0); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(PV0f.y,intBitsToFloat(uf_remappedPS[6].y)) + 0.0); +PV1f.z = R123f.z; +R126f.w = mul_nonIEEE(R7f.x, R7f.x); +tempResultf = 1.0 / sqrt(PV0f.x); +PS1f = tempResultf; +// 2 +backupReg0f = R126f.x; +R126f.x = (mul_nonIEEE(R5f.y,backupReg0f) + R1f.z); +PV0f.y = mul_nonIEEE(R7f.y, R7f.y); +PV0f.z = mul_nonIEEE(R2f.z, PS1f); +R127f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),PV1f.z) + R2f.w); +R126f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),PV1f.y) + R3f.z); +PS0f = R126f.z; +// 3 +R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].w),R127f.x) + R0f.y); +PV1f.x = R123f.x; +PV1f.y = max(PV0f.z, -(PV0f.z)); +R123f.z = (mul_nonIEEE(R11f.x,R126f.w) + R1f.x); +PV1f.z = R123f.z; +R123f.w = (mul_nonIEEE(R2f.y,PV0f.y) + R1f.y); +PV1f.w = R123f.w; +// 4 +backupReg0f = R126f.z; +PV0f.x = max(PV1f.y, intBitsToFloat(0x3e99999a)); +R127f.y = mul_nonIEEE(PV1f.z, R127f.w); +PV0f.y = R127f.y; +R126f.z = mul_nonIEEE(R126f.x, PV1f.x); +PV0f.z = R126f.z; +R127f.w = mul_nonIEEE(PV1f.w, backupReg0f); +PV0f.w = R127f.w; +PS0f = R11f.y + R0f.w; +PS0f = clamp(PS0f, 0.0, 1.0); +// 5 +PV1f.x = -(PV0f.w) + intBitsToFloat(uf_remappedPS[7].y); +PV1f.y = -(PV0f.y) + intBitsToFloat(uf_remappedPS[7].x); +PV1f.z = -(PV0f.z) + intBitsToFloat(uf_remappedPS[7].z); +PV1f.w = min(PV0f.x, 1.0); +PS1f = mul_nonIEEE(R7f.w, PS0f); +// 6 +backupReg0f = R1f.w; +R126f.x = (mul_nonIEEE(PV1f.y,R9f.y) + R127f.y); +PV0f.x = R126f.x; +R127f.y = (mul_nonIEEE(PV1f.x,R9f.y) + R127f.w); +PV0f.y = R127f.y; +PV0f.z = PV1f.w + intBitsToFloat(0xbe99999a); +R127f.w = (mul_nonIEEE(PV1f.z,R9f.y) + R126f.z); +PV0f.w = R127f.w; +R1f.w = mul_nonIEEE(backupReg0f, PS1f); +PS0f = R1f.w; +// 7 +PV1f.x = R8f.z + -(PV0f.w); +PV1f.y = PV0f.z * intBitsToFloat(0x3fb6db6e); +PV1f.z = R8f.y + -(PV0f.y); +PV1f.w = R8f.x + -(PV0f.x); +// 8 +backupReg0f = R127f.y; +PV0f.x = -(PV1f.y) + 1.0; +R127f.y = (mul_nonIEEE(PV1f.w,R8f.w) + R126f.x); +PV0f.y = R127f.y; +R126f.z = (mul_nonIEEE(PV1f.x,R8f.w) + R127f.w); +PV0f.z = R126f.z; +R127f.w = (mul_nonIEEE(PV1f.z,R8f.w) + backupReg0f); +PV0f.w = R127f.w; +// 9 +PV1f.x = -(PV0f.w) + intBitsToFloat(uf_remappedPS[8].y); +PV1f.y = -(PV0f.y) + intBitsToFloat(uf_remappedPS[8].x); +PV1f.z = -(PV0f.z) + intBitsToFloat(uf_remappedPS[8].z); +PV1f.w = mul_nonIEEE(PV0f.x, PV0f.x); +// 10 +backupReg0f = R6f.y; +R6f.x = (mul_nonIEEE(PV1f.y,R9f.x) + R127f.y); +R6f.y = (mul_nonIEEE(PV1f.x,R9f.x) + R127f.w); +R8f.z = (PV1f.w * intBitsToFloat(0x42c80000) + backupReg0f); +R6f.z = (mul_nonIEEE(PV1f.z,R9f.x) + R126f.z); +PS0f = R6f.z; +// 0 +R123f.y = (mul_nonIEEE(R4f.y,intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[1].x)); +PV0f.y = R123f.y; +// 1 +PV1f.y = PV0f.y + -(R8f.z); +// 2 +PV0f.x = max(PV1f.y, 0.0); +// 3 +PV1f.w = min(PV0f.x, intBitsToFloat(0x42c80000)); +// 4 +PV0f.z = PV1f.w + -0.0; +// 5 +PV1f.y = PV0f.z * intBitsToFloat(0x3c23d70a); +PV1f.y = clamp(PV1f.y, 0.0, 1.0); +// 6 +PV0f.x = mul_nonIEEE(R1f.w, PV1f.y); +PV0f.x = clamp(PV0f.x, 0.0, 1.0); +// 7 +R6f.w = mul_nonIEEE(R3f.x, PV0f.x); +// export +if( ((vec4(R6f.x, R6f.y, R6f.z, R6f.w)).a > uf_alphaTestRef) == false) discard; + + +#if ($enableFogCloudsColor == 0) +passPixelColor0 = vec4(R6f.x, R6f.y, R6f.z, R6f.w*$fogCloudsOpacity); +#else +passPixelColor0 = vec4($fogCloudsRed, $fogCloudsGreen, $fogCloudsBlue, R6f.w*$fogCloudsOpacity); +#endif +} diff --git a/src/BreathOfTheWild/Mods/Fog/rules.txt b/src/BreathOfTheWild/Mods/Fog/rules.txt new file mode 100644 index 00000000..a695ea7c --- /dev/null +++ b/src/BreathOfTheWild/Mods/Fog/rules.txt @@ -0,0 +1,519 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Fog and Mist +path = "The Legend of Zelda: Breath of the Wild/Mods/Fog and Mist" +description = Allows you to make various fog types in the game less visible or change their colors.||Made by Skalfate. +version = 6 + +[Default] +$setting:int = 0 + +$enableDistanceFogColor:int = 1 +$distanceFogRed = 1.0 +$distanceFogGreen = 1.0 +$distanceFogBlue = 1.0 +$distanceFogOpacity = 1.0 + +$enableFogCloudsColor:int = 1 +$fogCloudsRed = 1.0 +$fogCloudsGreen = 1.0 +$fogCloudsBlue = 1.0 +$fogCloudsOpacity = 1.0 + +$enableCastleFogColor:int = 1 +$castleFogRed = 1.0 +$castleFogGreen = 1.0 +$castleFogBlue = 1.0 +$castleFogOpacity = 1.0 + +$enableGanonAuraColor:int = 1 +$ganonAuraRed = 1.0 +$ganonAuraGreen = 1.0 +$ganonAuraBlue = 1.0 +$ganonAuraOpacity = 1.0 + +# Setting Selector + +[Preset] +name = Distance Fog +category = Fog Settings +default = 1 +$setting:int = 0 + +[Preset] +name = Mist Clouds +category = Fog Settings +$setting:int = 1 + +[Preset] +name = Hyrule Castle Fog/Aura +category = Fog Settings +$setting:int = 2 + + +# Distance Fog + +[Preset] +name = 100% Opacity (Default) +category = Distance Fog Visibility +condition = $setting == 0 +default = 1 +$distanceFogOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.1 + +[Preset] +name = 0% Opacity +category = Distance Fog Visibility +condition = $setting == 0 +$distanceFogOpacity = 0.0 + +[Preset] +name = Normal (Default) +category = Distance Fog Color +condition = $setting == 0 +default = 1 +$enableDistanceFogColor:int = 0 + +[Preset] +name = Black Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 1.0 +$distanceFogGreen = 1.0 +$distanceFogBlue = 1.0 + +[Preset] +name = Gray Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 0.75 +$distanceFogGreen = 0.75 +$distanceFogBlue = 0.75 + +[Preset] +name = Navy Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 0.0 +$distanceFogGreen = 0.0 +$distanceFogBlue = 0.5 + +[Preset] +name = Blue Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 0.0 +$distanceFogGreen = 0.0 +$distanceFogBlue = 1.0 + +[Preset] +name = Cyan Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 0.0 +$distanceFogGreen = 0.5 +$distanceFogBlue = 0.5 + +[Preset] +name = Green Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 0.0 +$distanceFogGreen = 1.0 +$distanceFogBlue = 0.0 + +[Preset] +name = Red Fog +category = Distance Fog Color +condition = $setting == 0 +$distanceFogRed = 1.0 +$distanceFogGreen = 0.0 +$distanceFogBlue = 0.0 + +# Fog Clouds + +[Preset] +name = 100% Opacity (Default) +category = Fog Clouds Visibility +condition = $setting == 1 +default = 1 +$fogCloudsOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.1 + +[Preset] +name = 0% Opacity +category = Fog Clouds Visibility +condition = $setting == 1 +$fogCloudsOpacity = 0.0 + +[Preset] +name = Normal (Default) +category = Fog Clouds Color +condition = $setting == 1 +default = 1 +$enableFogCloudsColor:int = 0 + +[Preset] +name = Black Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 1.0 +$fogCloudsGreen = 1.0 +$fogCloudsBlue = 1.0 + +[Preset] +name = Gray Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 0.75 +$fogCloudsGreen = 0.75 +$fogCloudsBlue = 0.75 + +[Preset] +name = Navy Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 0.0 +$fogCloudsGreen = 0.0 +$fogCloudsBlue = 0.5 + +[Preset] +name = Blue Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 0.0 +$fogCloudsGreen = 0.0 +$fogCloudsBlue = 1.0 + +[Preset] +name = Cyan Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 0.0 +$fogCloudsGreen = 0.5 +$fogCloudsBlue = 0.5 + +[Preset] +name = Green Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 0.0 +$fogCloudsGreen = 1.0 +$fogCloudsBlue = 0.0 + +[Preset] +name = Red Fog +category = Fog Clouds Color +condition = $setting == 1 +$fogCloudsRed = 1.0 +$fogCloudsGreen = 0.0 +$fogCloudsBlue = 0.0 + +# Hyrule Castle Fog + +[Preset] +name = 100% Opacity (Default) +category = Castle Fog Visibility +condition = $setting == 2 +default = 1 +$castleFogOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.1 + +[Preset] +name = 0% Opacity +category = Castle Fog Visibility +condition = $setting == 2 +$castleFogOpacity = 0.0 + +[Preset] +name = Normal (Default) +category = Castle Fog Color +condition = $setting == 2 +default = 1 +$enableCastleFogColor:int = 0 + +[Preset] +name = Black Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 1.0 +$castleFogGreen = 1.0 +$castleFogBlue = 1.0 + +[Preset] +name = Gray Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 0.75 +$castleFogGreen = 0.75 +$castleFogBlue = 0.75 + +[Preset] +name = Navy Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 0.0 +$castleFogGreen = 0.0 +$castleFogBlue = 0.5 + +[Preset] +name = Blue Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 0.0 +$castleFogGreen = 0.0 +$castleFogBlue = 1.0 + +[Preset] +name = Cyan Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 0.0 +$castleFogGreen = 0.5 +$castleFogBlue = 0.5 + +[Preset] +name = Green Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 0.0 +$castleFogGreen = 1.0 +$castleFogBlue = 0.0 + +[Preset] +name = Red Fog +category = Castle Fog Color +condition = $setting == 2 +$castleFogRed = 1.0 +$castleFogGreen = 0.0 +$castleFogBlue = 0.0 + + +# Hyrule Castle Ganon's Aura + +[Preset] +name = 300% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 2.0 + +[Preset] +name = 200% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 2.0 + +[Preset] +name = 150% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 1.5 + +[Preset] +name = 100% Opacity (Default) +category = Ganon's Aura Visibility +condition = $setting == 2 +default = 1 +$ganonAuraOpacity = 1.0 + +[Preset] +name = 80% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.8 + +[Preset] +name = 60% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.6 + +[Preset] +name = 50% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.5 + +[Preset] +name = 40% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.4 + +[Preset] +name = 20% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.2 + +[Preset] +name = 10% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.2 + +[Preset] +name = 0% Opacity +category = Ganon's Aura Visibility +condition = $setting == 2 +$ganonAuraOpacity = 0.0 + +[Preset] +name = Normal (Default) +category = Ganon's Aura Color +condition = $setting == 2 +default = 1 +$enableGanonAuraColor:int = 0 + +[Preset] +name = Black Aura +category = Ganon's Aura Color +condition = $setting == 2 +$ganonAuraRed = 1.0 +$ganonAuraGreen = 1.0 +$ganonAuraBlue = 1.0 + +[Preset] +name = Navy Aura +category = Ganon's Aura Color +condition = $setting == 2 +$ganonAuraRed = 0.0 +$ganonAuraGreen = 0.0 +$ganonAuraBlue = 0.5 + +[Preset] +name = Blue Aura +category = Ganon's Aura Color +condition = $setting == 2 +$ganonAuraRed = 0.0 +$ganonAuraGreen = 0.0 +$ganonAuraBlue = 1.0 + +[Preset] +name = Cyan Aura +category = Ganon's Aura Color +condition = $setting == 2 +$ganonAuraRed = 0.0 +$ganonAuraGreen = 0.5 +$ganonAuraBlue = 0.5 + +[Preset] +name = Green Aura +category = Ganon's Aura Color +condition = $setting == 2 +$ganonAuraRed = 0.0 +$ganonAuraGreen = 1.0 +$ganonAuraBlue = 0.0 + +[Preset] +name = Red Aura +category = Ganon's Aura Color +condition = $setting == 2 +$ganonAuraRed = 1.0 +$ganonAuraGreen = 0.0 +$ganonAuraBlue = 0.0 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/133297c9a66bfc98_000003c3c3fc9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/133297c9a66bfc98_000003c3c3fc9249_ps.txt new file mode 100644 index 00000000..bcdee6d2 --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/133297c9a66bfc98_000003c3c3fc9249_ps.txt @@ -0,0 +1,383 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define grdskyDefault $grdskyDefault +const vec3 Color = vec3($grdskyR,$grdskyG,$grdskyB); +const float Factor = $grdskyL_f; + +// Guardian Turret + Skywatcher + +// shader 133297c9a66bfc98 +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem7; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 4) in vec4 passParameterSem4; +layout(location = 5) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem7); +R3i = floatBitsToInt(passParameterSem3); +R4i = floatBitsToInt(passParameterSem4); +R5i = floatBitsToInt(passParameterSem6); +R6i.xy = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xy); +R9i.xy = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).xy); +R2i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).w); +R8i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyz); +R7i.xyz = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).xyz); +R1i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R1i.xy)).xyz); +R0i.xyz = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyz); +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x))); +R127i.z = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z))); +R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PS0i = R127i.y; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i))); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R126i.x = floatBitsToInt(fract(intBitsToFloat(R2i.x))); +PS0i = R126i.x; +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); +R127i.z = floatBitsToInt(fract(intBitsToFloat(R2i.y))); +PS1i = R127i.z; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R127i.x; +backupReg1i = R127i.y; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg1i))); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 7 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(0.5)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS0i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 8 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PV0i.x = R3i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +PV0i.y = R3i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i))); +PV0i.z = R3i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0)); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.w),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(PS1i)) + intBitsToFloat(R9i.y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x437f0000)); +PV0i.z = floatBitsToInt(intBitsToFloat(R2i.w) + -(1.0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0); +PV0i.w = clampFI32(PV0i.w); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(R1i.x))); +PS0i = R127i.y; +// 11 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R1i.y))); +R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.z)); +PV1i.y = R126i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(R1i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.x))); +PS1i = int(intBitsToFloat(PV0i.y)); + +#if (grdskyDefault == 1) // Default section 12 + +// 12 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R8i.x))); +R125i.y = PS1i & 0x000000e0; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), intBitsToFloat(R8i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), intBitsToFloat(R8i.z))); +R125i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV1i.y)); +PS0i = R125i.x; + +#elif (grdskyDefault == 0) // Modified section 12 + +// 12 +R127i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R8i.x))); +R125i.y = PS1i & 0x000000e0; +R126i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R8i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R8i.z))); +R125i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV1i.y)); +PS0i = R125i.x; + +#endif + +// 13 +backupReg0i = R126i.x; + +#if (grdskyDefault == 1) // Default part of section 13 + +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[1].x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x))); + +#elif (grdskyDefault == 0) // Modified part of section 13 + +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[1].x) * Factor)); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x) * Factor)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x) * Factor)); + +#endif + +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y)))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +R125i.w = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R126i.y)); +PS1i = R125i.w; +// 14 +backupReg0i = R126i.y; +backupReg1i = R126i.w; + +#if (grdskyDefault == 1) // Default part of section 14 + +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.w))); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), intBitsToFloat(R126i.z))); + +#elif (grdskyDefault == 0) // Modified part of section 14 + +PV0i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R127i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.w))); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R126i.z))); + +#endif + +R126i.w = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(backupReg0i)); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(0x427f0000)); +PS0i = R127i.y; +// 15 +backupReg0i = R125i.y; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.x))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z))); +R127i.z = backupReg0i >> 0x00000003; + +#if (grdskyDefault == 1) // Default line in section 15 + +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), intBitsToFloat(R127i.w))); + +#elif (grdskyDefault == 0) // Modified line in section 15 + +PV1i.w = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R127i.w))); + +#endif + +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R126i.x))); +PS1i = R124i.x; +// 16 +backupReg0i = R125i.x; +backupReg1i = R126i.y; +backupReg2i = R126i.z; +backupReg3i = R127i.w; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(backupReg0i))); +R125i.x = clampFI32(R125i.x); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(R124i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(R125i.z))); +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(R125i.w))); +R8i.x = clampFI32(R8i.x); +PS0i = R8i.x; +// 17 +backupReg0i = R127i.x; +backupReg1i = R9i.y; +backupReg2i = R127i.z; +R127i.x = floatBitsToInt(floor(intBitsToFloat(R127i.y))); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 4.0); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.x)) + intBitsToFloat(R124i.x))); +R127i.z = ((intBitsToFloat(backupReg1i) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(R126i.w))); +PV1i.w = clampFI32(PV1i.w); +R127i.y = floatBitsToInt(float(backupReg2i)); +PS1i = R127i.y; +// 18 +backupReg0i = R125i.x; +backupReg1i = R126i.y; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R8i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(backupReg0i))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(R125i.z)) + intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(PV1i.w))); +PS0i = R127i.w; +// 19 +backupReg0i = R127i.z; +backupReg1i = R9i.y; +R8i.x = floatBitsToInt(intBitsToFloat(R127i.x) + 2.0); +R9i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x42c20000)); +R127i.z = uf_remappedPS[4].z; +R125i.w = ((backupReg0i == 0)?(0x3d008081):(0x3d20a0a1)); +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg1i))); +PS1i = R5i.x; +// 20 +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.x))); +R1i.x = clampFI32(R1i.x); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R126i.y)) + intBitsToFloat(R125i.x))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R127i.w)) + intBitsToFloat(R126i.w))); +R7i.w = floatBitsToInt(1.0); +R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.y))); +R1i.y = clampFI32(R1i.y); +PS0i = R1i.y; +// 21 +R7i.x = R125i.w; +R7i.y = R127i.z; +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.z))); +R1i.z = clampFI32(R1i.z); +R5i.w = 0x3f800000; +R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5)); +PS1i = R0i.x; +// 0 +R0i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5)); +R0i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + 0.5)); +R0i.w = floatBitsToInt(intBitsToFloat(R8i.x) * intBitsToFloat(0x3b808081)); +R1i.w = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x3b808081)); +PS0i = R1i.w; +// 1 +backupReg0i = R5i.x; +backupReg1i = R5i.y; +backupReg2i = R5i.z; +backupReg3i = R5i.w; +R5i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R5i.w = backupReg3i; +// 2 +R4i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R4i.w = R0i.w; +// 3 +R3i.xyz = ivec3(R1i.x,R1i.y,R1i.z); +R3i.w = R1i.w; +// 4 +R2i.xyz = ivec3(R7i.x,R7i.y,R7i.z); +R2i.w = R7i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor1 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor3 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +passPixelColor5 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/4e0bab929e11836f_00003cd249549249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/4e0bab929e11836f_00003cd249549249_ps.txt new file mode 100644 index 00000000..787eb3f7 --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/4e0bab929e11836f_00003cd249549249_ps.txt @@ -0,0 +1,1160 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define gsswDefault $gsswDefault +const vec3 Color = vec3($gsswR,$gsswG,$gsswB); +const float Factor = $gsswL_f; + +// Guardian weapons when Link is transparent +// uf_blockPS8[23].xyz uf_blockPS8[31].x + +// shader 4e0bab929e11836f +#ifdef VULKAN +layout(set = 1, binding = 14) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +UNIFORM_BUFFER_LAYOUT(33, 1, 15) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(36, 1, 16) uniform uniformBlockPS4 +{ +vec4 uf_blockPS4[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(38, 1, 17) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(40, 1, 18) uniform uniformBlockPS8 +{ +vec4 uf_blockPS8[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(42, 1, 19) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2DArrayShadow textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform sampler3D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 7) uniform sampler2DArray textureUnitPS8; +TEXTURE_LAYOUT(9, 1, 8) uniform sampler2D textureUnitPS9; +TEXTURE_LAYOUT(10, 1, 9) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 10) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 11) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(13, 1, 12) uniform sampler2D textureUnitPS13; +TEXTURE_LAYOUT(14, 1, 13) uniform sampler2D textureUnitPS14; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem5; +layout(location = 5) in vec4 passParameterSem7; +layout(location = 6) in vec4 passParameterSem8; +layout(location = 7) in vec4 passParameterSem9; +layout(location = 0) out vec4 passPixelColor0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem5); +R5i = floatBitsToInt(passParameterSem7); +R6i = floatBitsToInt(passParameterSem8); +R7i = floatBitsToInt(passParameterSem9); +if( activeMaskStackC[1] == true ) { +R8i.xy = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R0i.xy)).xy); +R10i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R0i.xy)).xyz); +R9i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R0i.zw)).xyz); +R1i.xyz = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R1i.xy)).xyz); +R6i.w = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R0i.xy)).x); +R15i.xyz = floatBitsToInt(texture(textureUnitPS9, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z))); +R127i.y = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R7i.w)); +// 1 +backupReg0i = R7i.x; +backupReg1i = R7i.y; +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS0i))); +R123i.z = floatBitsToInt((intBitsToFloat(R8i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.x))); +PS1i = R126i.w; +// 2 +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV1i.z))); +R1i.w = floatBitsToInt(fract(intBitsToFloat(R6i.x))); +PS0i = R1i.w; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PS1i = R126i.y; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.w))); +R3i.w = floatBitsToInt(fract(intBitsToFloat(R6i.y))); +R7i.w = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +PS0i = R7i.w; +// 5 +backupReg0i = R4i.y; +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.x))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[44].x)); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.y))); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.z))); +R4i.x = floatBitsToInt(sqrt(intBitsToFloat(R126i.y))); +PS1i = R4i.x; +} +if( activeMaskStackC[1] == true ) { +R14i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R7i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R4i.x)) + intBitsToFloat(R4i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R4i.x)) + intBitsToFloat(R4i.z))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R4i.x)) + intBitsToFloat(R6i.x))); +R127i.w = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(R7i.w)); +PS0i = R126i.w; +// 1 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i))); +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i))); +PV1i.y = R16i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R3i.w) + -(0.5)); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(R1i.x))); +R6i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS1i = R6i.x; +// 2 +backupReg0i = R1i.z; +backupReg1i = R127i.w; +backupReg1i = R127i.w; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(R1i.y))); +R12i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(backupReg0i))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(backupReg1i)) + 1.0)); +R127i.w = clampFI32(R127i.w); +PS0i = R127i.w; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PS1i = R11i.z; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.y)),intBitsToFloat(R12i.y)) + 1.0)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R127i.z)) + 1.0)); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R126i.w))); +R1i.w = floatBitsToInt(-(intBitsToFloat(R5i.z)) * intBitsToFloat(0x3d4ccccd)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R126i.x = floatBitsToInt(tempResultf); +PS0i = R126i.x; +// 5 +R3i.x = R6i.x; +R1i.y = R11i.z; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.y))); +R7i.w = 0x3f800000; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R127i.z = floatBitsToInt(tempResultf); +PS1i = R127i.z; +// 6 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R126i.x))); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R126i.x))); +R3i.z = 0; +PV0i.z = R3i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R125i.w)); +PS0i = floatBitsToInt(tempResultf); +// 7 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(PV0i.z))); +R14i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(backupReg0i))); +PV1i.z = R14i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.w), intBitsToFloat(PV0i.w))); +R16i.z = R14i.x; +R16i.z = clampFI32(R16i.z); +PS1i = R16i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R13i.z),intBitsToFloat(PV1i.y),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R1i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(PV1i.z))); +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R16i.y),intBitsToFloat(PS0i),-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R13i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.x))); +PS1i = R6i.w; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R16i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R12i.y),intBitsToFloat(R11i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R12i.z = tempi.x; +R17i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0); +R17i.y = clampFI32(R17i.y); +PS0i = R17i.y; +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[44].y) + intBitsToFloat(R4i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[43].x)); + +#if (gsswDefault == 1) // Default section 1 + 2 + 3 + +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].x, intBitsToFloat(R10i.x))) +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].y, intBitsToFloat(R10i.y))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[45].x)); +// 2 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[43].y) + intBitsToFloat(R127i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].z, intBitsToFloat(R10i.z))); +// 3 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockPS8[31].x)); +PV1i.x = R124i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS8[31].x)); +PV1i.y = R125i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), uf_blockPS8[31].x)); +PV1i.z = R125i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS8[31].z) + -(uf_blockPS8[31].y))); +R127i.w = clampFI32(R127i.w); + +#elif (gsswDefault == 0) // Modified section 1 + 2 + 3 + +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(Color.x, intBitsToFloat(R10i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(Color.y, intBitsToFloat(R10i.y))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[45].x)); +// 2 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[43].y) + intBitsToFloat(R127i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(Color.z, intBitsToFloat(R10i.z))); +// 3 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockPS8[31].x * Factor)); +PV1i.x = R124i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockPS8[31].x * Factor)); +PV1i.y = R125i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), uf_blockPS8[31].x * Factor)); +PV1i.z = R125i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS8[31].z) + -(uf_blockPS8[31].y))); +R127i.w = clampFI32(R127i.w); + +#endif + +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockPS6[44].z) + intBitsToFloat(backupReg0i))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[45].y) + intBitsToFloat(R125i.w))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.y))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.z))); +PS0i = R124i.w; + +#if (gsswDefault == 1) // Default section 5 + +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].x, intBitsToFloat(R127i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].w, intBitsToFloat(R127i.w))); +PV1i.y = R126i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].y, intBitsToFloat(R126i.z))); + +#elif (gsswDefault == 0) // Modified section 5 + +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(Color.x, intBitsToFloat(R127i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].w, intBitsToFloat(R127i.w))); +PV1i.y = R126i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(Color.y, intBitsToFloat(R126i.z))); + +#endif + +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.z))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockPS6[43].z) + intBitsToFloat(R125i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.x))); + +#if (gsswDefault == 1) // Default line in section 6 + +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].z, intBitsToFloat(R126i.w))); + +#elif (gsswDefault == 0) // Modified line in section 6 + +PV0i.w = floatBitsToInt(mul_nonIEEE(Color.z, intBitsToFloat(R126i.w))); + +#endif + +// 7 +R8i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R124i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.w))); +R10i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(R126i.x)); +PV1i.z = R10i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockPS6[45].z) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.w))); +PS1i = R8i.y; +// 8 +R12i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R124i.y)); +R9i.y = PV1i.z; +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(R124i.w))); +R6i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(PV1i.w)); +PS0i = R6i.z; +// 9 +backupReg0i = R1i.w; +R1i.x = floatBitsToInt(fract(uf_blockPS8[36].w)); +R17i.z = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R1i.w))); +R17i.z = clampFI32(R17i.z); +R1i.w = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(backupReg0i))); +R1i.w = clampFI32(R1i.w); +} +if( activeMaskStackC[1] == true ) { +// 0 +R10i.x = floatBitsToInt(uf_blockPS1[0].y); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R5i.z)), uf_blockPS1[17].y)); +// 1 +R10i.y = floatBitsToInt(uf_blockPS1[1].y); +R9i.z = floatBitsToInt(uf_blockPS1[2].y); +R11i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +PS1i = R11i.y; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R8i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS4[6].x, uf_blockPS8[37].x)); +// 1 +predResult = (intBitsToFloat(R1i.x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = floatBitsToInt(floor(uf_blockPS8[36].w)); +PV0i.z = R0i.z; +// 1 +R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R15i.y)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R15i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R15i.z)) + intBitsToFloat(R0i.z)); +// 1 +backupReg0i = R15i.x; +backupReg1i = R15i.y; +backupReg2i = R15i.z; +R15i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R1i.x)) + intBitsToFloat(backupReg0i))); +R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(backupReg1i))); +R15i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.x)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (uf_blockPS8[33].w > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = 0; +} +if( activeMaskStackC[2] == true ) { +R0i.z = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R0i.z),intBitsToFloat(R0i.z),intBitsToFloat(R0i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R15i.z) * intBitsToFloat(0x3dea4a8c)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R17i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS0i = R126i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666)); +R125i.z = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd))); +// 3 +backupReg0i = R127i.z; +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x40200000)); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a)); +R127i.w = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(backupReg0i) + intBitsToFloat(0x3eb33333))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 0.25); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(0x3e851eb8)); +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R9i.w = 0x3e99999a; +PS1i = R9i.w; +// 6 +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); +PV0i.w = clampFI32(PV0i.w); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R15i.x)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R8i.x)) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R15i.z)) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R15i.y)) + intBitsToFloat(PV0i.z)); +R127i.x = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(PV0i.z)); +PS1i = R127i.x; +// 8 +backupReg0i = R15i.x; +backupReg1i = R15i.y; +backupReg2i = R15i.z; +backupReg3i = R8i.x; +R15i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS8[33].w) + intBitsToFloat(backupReg0i))); +R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),uf_blockPS8[33].w) + intBitsToFloat(backupReg1i))); +R15i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),uf_blockPS8[33].w) + intBitsToFloat(backupReg2i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(R127i.y)); +R8i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockPS8[33].w) + intBitsToFloat(backupReg3i))); +PS0i = R8i.x; +// 9 +backupReg0i = R8i.y; +backupReg1i = R8i.z; +R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),uf_blockPS8[33].w) + intBitsToFloat(backupReg0i))); +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockPS8[33].w) + intBitsToFloat(backupReg1i))); +// 10 +R5i.w = R7i.w; +// 11 +R0i.w = R7i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R9i.w = 0; +PV0i.w = R9i.w; +// 1 +R0i.w = PV0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R18i.y = floatBitsToInt(-(intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.x)); +R18i.y = clampFI32(R18i.y); +// 2 +predResult = (1.0 > intBitsToFloat(R17i.z)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R5i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +R6i.y = floatBitsToInt((intBitsToFloat(R0i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +PV0i.w = ((-(intBitsToFloat(R5i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +// 1 +PV1i.y = PV0i.w & int(1); +// 2 +PV0i.z = PV1i.y - R127i.x; +// 3 +PV1i.w = PV0i.z << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.z)); +// 4 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002a; +R0i.z = PV1i.w + 0x0000002b; +R0i.w = PV1i.w + 0x0000002d; +R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R7i.z; +} +if( activeMaskStackC[2] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R3i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R1i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R4i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R7i.y; +// 6 +R127i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.y)); +PV0i.w = R127i.w; +// 7 +PV1i.x = ((intBitsToFloat(0x3727c5ac) > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 8 +R123i.y = ((PV1i.x == 0)?(R127i.w):(0x3727c5ac)); +PV0i.y = R123i.y; +// 9 +R7i.w = PV0i.y; +R7i.w = clampFI32(R7i.w); +} +if( activeMaskStackC[2] == true ) { +R7i.y = floatBitsToInt(texture(textureUnitPS1, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + 1.0); +// 1 +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R17i.z)) + intBitsToFloat(R7i.y))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R12i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R6i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R7i.z = floatBitsToInt(-(intBitsToFloat(R5i.z)) * intBitsToFloat(0x3ba3d70a)); +PV0i.z = R7i.z; +R0i.w = 0x3f800000; +PV0i.w = R0i.w; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R127i.y = clampFI32(R127i.y); +PS0i = R127i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R9i.y),intBitsToFloat(R6i.z),intBitsToFloat(PV0i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.w = PV0i.z; +PS1i = R1i.w; +// 2 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R9i.y),intBitsToFloat(R6i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R127i.w; +// 3 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R9i.y),intBitsToFloat(R6i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R1i.x; +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)) + 1.0); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +R0i.z = floatBitsToInt(intBitsToFloat(R12i.x) * intBitsToFloat(0x3a83126f)); +R0i.w = floatBitsToInt(intBitsToFloat(R6i.z) * intBitsToFloat(0x3a83126f)); +PS0i = floatBitsToInt(intBitsToFloat(R12i.z) + -(intBitsToFloat(R6i.w))); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.w))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R1i.z = floatBitsToInt((intBitsToFloat(R11i.x) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R6i.x)))); +R3i.w = floatBitsToInt((intBitsToFloat(R16i.y) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R12i.y)))); +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.w = floatBitsToInt(tempResultf); +PS1i = R127i.w; +// 6 +R6i.x = floatBitsToInt((intBitsToFloat(R13i.z) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R11i.z)))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), intBitsToFloat(0xbf7d70a4))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +tempResultf = max(0.0, intBitsToFloat(R17i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 7 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PV1i.x = R127i.x; +R126i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3ecccccd)); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PV1i.w = R11i.y; +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + uf_blockPS6[27].w)/2.0); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(max(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f99999a)); +R127i.z = clampFI32(R127i.z); +PS0i = R127i.z; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(R5i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(0xbe593484))); +PV1i.y = R123i.y; +R3i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R6i.w = floatBitsToInt(max(intBitsToFloat(R15i.x), intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y))); +// 10 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.x))); +R7i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(R127i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R5i.w = floatBitsToInt(exp2(intBitsToFloat(R126i.y))); +PS0i = R5i.w; +// 11 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),-(intBitsToFloat(PV0i.w))) + 1.0)); +R6i.y = floatBitsToInt(min(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +R6i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(0x2edbe6ff)); +R4i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(0xbe99999a)); +tempResultf = max(0.0, intBitsToFloat(R126i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R3i.y = floatBitsToInt(tempResultf); +PS1i = R3i.y; +} +if( activeMaskStackC[1] == true ) { +R4i.xyz = floatBitsToInt(textureLod(textureUnitPS6, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R1i.xy),intBitsToFloat(R1i.w)).x); +R0i.w = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R0i.zw),0.0).x); +R0i.xyz = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.xz)).xyz); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PS0i = R127i.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.z),intBitsToFloat(R3i.w),intBitsToFloat(R6i.x),-0.0),vec4(intBitsToFloat(R1i.z),intBitsToFloat(R3i.w),intBitsToFloat(R6i.x),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PS1i))); +PV0i.x = R127i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(R3i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.x) + uf_blockPS10[1].z); +PV0i.z = clampFI32(PV0i.z); +R0i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x41c80000) + intBitsToFloat(R10i.z))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.w) + -(intBitsToFloat(PV0i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS10[3].z, intBitsToFloat(PV0i.z))); +PS1i = R127i.z; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R13i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R18i.y)) + intBitsToFloat(R127i.x))); +PS0i = R126i.z; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R16i.y),intBitsToFloat(R13i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +R127i.x = floatBitsToInt(min(intBitsToFloat(R15i.x), intBitsToFloat(R6i.y))); +R125i.y = R2i.w; +R125i.y = clampFI32(R125i.y); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x41400000)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) + uf_blockPS10[1].y); +PV0i.w = clampFI32(PV0i.w); +tempResultf = max(0.0, intBitsToFloat(PV1i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 7 +R125i.x = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x40200001)); +R125i.x = clampFI32(R125i.x); +PV1i.x = R125i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(0xbecccccd)); +R4i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R14i.y) + 1.0)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +PS1i = clampFI32(PS1i); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x41200000)); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PS1i))); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3dcccccd)); +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R126i.w = clampFI32(R126i.w); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 9 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); +PV1i.x = R124i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS0i)) + 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R7i.x)) + intBitsToFloat(0xbd4ccccd))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R7i.x)) + intBitsToFloat(0xbc23d70a))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R7i.y))); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x41a00000)); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(1.0)); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(PS1i))) + uf_blockPS6[27].z)); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x42480000)); +R127i.w = clampFI32(R127i.w); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.y))); +// 11 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R125i.y)) + 1.0)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3df5c28f)); +R125i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(0xbfe66666)); +R124i.w = floatBitsToInt(1.0 / intBitsToFloat(R6i.z)); +PS1i = R124i.w; +// 12 +backupReg0i = R127i.x; +backupReg1i = R127i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockPS6[30].w)); +R127i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV1i.z))); +R127i.y = clampFI32(R127i.y); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.z = R127i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R4i.w))); +tempResultf = max(0.0, intBitsToFloat(R6i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 13 +R126i.x = floatBitsToInt((intBitsToFloat(R11i.y) * intBitsToFloat(0x3dcccccd) + 1.0)); +R125i.y = floatBitsToInt((-(intBitsToFloat(PV0i.z)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a)); +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(0x3da3d70a)); +PV1i.w = clampFI32(PV1i.w); +tempResultf = max(0.0, intBitsToFloat(R126i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 14 +backupReg0i = R127i.x; +backupReg1i = R125i.w; +backupReg1i = R125i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R127i.y))); +R127i.x = clampFI32(R127i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS1i))); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R4i.w))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(backupReg1i)) + intBitsToFloat(backupReg1i))); +R125i.w = clampFI32(R125i.w); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 15 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PS0i)) + intBitsToFloat(PS0i))); +R125i.y = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0); +R6i.z = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3f4ccccd)); +R3i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x42960000)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(0x2edbe6ff)); +R5i.y = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3f4ccccd)); +R7i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3f4ccccd)); +R126i.w = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R125i.w))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), uf_blockPS6[16].w)); +PS0i = R125i.w; +// 17 +R4i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.z)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +R7i.y = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(R124i.x)); +R7i.y = clampFI32(R7i.y); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.z))); +R123i.z = clampFI32(R123i.z); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(R6i.w))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 18 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.w))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(R125i.w))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R126i.w)) + 1.0); +// 19 +R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R16i.z)) + intBitsToFloat(R126i.w))); +PV1i.x = R7i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(R15i.z) + -(intBitsToFloat(R6i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(R15i.y) + -(intBitsToFloat(R6i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R15i.x) + -(intBitsToFloat(R6i.w))); +R6i.x = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(PV0i.y)); +PS1i = R6i.x; +// 20 +backupReg0i = R6i.w; +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(R6i.w))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.x))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R127i.x)) + intBitsToFloat(R6i.w))); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(backupReg0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV1i.x))); +PS0i = R4i.z; +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(uf_blockPS6[4].x,uf_blockPS6[4].y,uf_blockPS6[4].z,-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R13i.y),intBitsToFloat(R14i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R7i.x))); +PS0i = R125i.y; +// 1 +PV1i.x = floatBitsToInt(uf_blockPS6[5].x + -(intBitsToFloat(R6i.z))); +PV1i.y = floatBitsToInt(uf_blockPS6[5].y + -(intBitsToFloat(R7i.z))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R0i.w)) + uf_blockPS6[52].x); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),-(intBitsToFloat(R3i.z))) + intBitsToFloat(R5i.w))); +PS1i = R127i.z; +// 2 +backupReg0i = R5i.x; +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R7i.y)) + intBitsToFloat(R6i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(R7i.z))); +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(0xba0a8ec8))); +R5i.w = clampFI32(R5i.w); +PS0i = R5i.w; +// 3 +backupReg0i = R6i.w; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), uf_blockPS6[13].w)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +PV1i.z = floatBitsToInt(uf_blockPS6[5].z + -(intBitsToFloat(R5i.y))); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(0xba0a8ec8))); +R6i.w = clampFI32(R6i.w); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R5i.z)) + intBitsToFloat(0xba0a8ec8))); +R0i.y = clampFI32(R0i.y); +PS1i = R0i.y; +// 4 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R7i.y)) + intBitsToFloat(R5i.y))); +R3i.y = ((1.0 > intBitsToFloat(R8i.w))?int(0xFFFFFFFF):int(0x0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R4i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.w))); +PV0i.w = clampFI32(PV0i.w); +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R4i.x))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.w))); +R5i.z = clampFI32(R5i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R4i.x)) + intBitsToFloat(R4i.x))); +PV1i.w = R123i.w; +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV1i.y))); +R5i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PS0i = R5i.y; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PS0i))); +PV1i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +// 8 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PV1i.z))); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV1i.z))); +PS0i = R127i.x; +// 9 +backupReg0i = R3i.z; +R1i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.w))); +R6i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.x))); +R3i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R126i.z))); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.z)) * intBitsToFloat(0x3fb8aa3b)); +// 10 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.x)) * intBitsToFloat(0x3fb8aa3b)); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) * intBitsToFloat(0x3fb8aa3b)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PS1i))); +// 11 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 12 +R7i.y = ((R3i.y == 0)?(R127i.z):(PV1i.x)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.z))); +// 13 +R4i.x = ((R3i.y == 0)?(R127i.x):(PV0i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +// 14 +R3i.w = ((R3i.y == 0)?(R126i.w):(PV1i.z)); +} +if( activeMaskStackC[1] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS10[2].w, intBitsToFloat(R5i.z))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS10[0].x)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockPS10[0].y)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.x))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockPS10[0].z)); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(R2i.z))); +PV0i.y = R123i.y; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R6i.w))); +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R0i.y))); +// 4 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R3i.z))); +PV0i.x = R126i.x; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R6i.y))); +PV0i.w = R126i.w; +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) * 0.25); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) * 0.25); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV0i.z)) + intBitsToFloat(R1i.x))); +PV1i.z = R126i.z; +// 6 +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3fb8aa3b)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3fb8aa3b)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * 0.25); +// 7 +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3fb8aa3b)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 4.0); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R127i.x))); +// 9 +R123i.x = ((R3i.y == 0)?(R126i.x):(PV0i.x)); +PV1i.x = R123i.x; +PV1i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.z))); +// 10 +R8i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R7i.y)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +R123i.w = ((R3i.y == 0)?(R126i.w):(PV1i.w)); +PV0i.w = R123i.w; +// 11 +R8i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R4i.x)); +R123i.z = ((R3i.y == 0)?(R126i.z):(PV0i.z)); +PV1i.z = R123i.z; +// 12 +R8i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R3i.w)); +} +// export +passPixelColor0 = vec4(intBitsToFloat(R8i.x), intBitsToFloat(R8i.y), intBitsToFloat(R8i.z), intBitsToFloat(R8i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/56bdb3903699990d_0000079a492a9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/56bdb3903699990d_0000079a492a9249_ps.txt new file mode 100644 index 00000000..1d0c3d9a --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/56bdb3903699990d_0000079a492a9249_ps.txt @@ -0,0 +1,1070 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +const vec3 Color = vec3($armorR,$armorG,$armorB); +const float Factor = $armorL_f; + +// Armor When Link is transparent +// textureUnitPS12 uf_blockPS8[23].xyz uf_blockPS8[31].x + +// shader 56bdb3903699990d +#ifdef VULKAN +layout(set = 1, binding = 13) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +UNIFORM_BUFFER_LAYOUT(33, 1, 14) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(38, 1, 15) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(40, 1, 16) uniform uniformBlockPS8 +{ +vec4 uf_blockPS8[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(42, 1, 17) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2DArrayShadow textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform sampler3D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 7) uniform sampler2DArray textureUnitPS8; +TEXTURE_LAYOUT(9, 1, 8) uniform sampler2D textureUnitPS9; +TEXTURE_LAYOUT(10, 1, 9) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 10) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 11) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(13, 1, 12) uniform sampler2D textureUnitPS13; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem5; +layout(location = 5) in vec4 passParameterSem7; +layout(location = 6) in vec4 passParameterSem8; +layout(location = 7) in vec4 passParameterSem9; +layout(location = 0) out vec4 passPixelColor0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem5); +R5i = floatBitsToInt(passParameterSem7); +R6i = floatBitsToInt(passParameterSem8); +R7i = floatBitsToInt(passParameterSem9); +if( activeMaskStackC[1] == true ) { +R8i.xy = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R0i.xy)).xy); +R1i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R1i.xy)).xyz); +R9i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R0i.zw)).xyz); +R3i.w = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R0i.xy)).x); +R11i.xyz = floatBitsToInt(texture(textureUnitPS9, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z))); +R127i.z = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.z = R127i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R7i.w)); +// 1 +backupReg0i = R7i.x; +backupReg1i = R7i.y; +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS0i))); +R123i.z = floatBitsToInt((intBitsToFloat(R8i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y))); +PS1i = R126i.w; +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(R127i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.w))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV1i.z))); +R8i.y = floatBitsToInt(fract(intBitsToFloat(R6i.y))); +PS0i = R8i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PS1i = R126i.z; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R127i.w))); +R7i.w = floatBitsToInt(fract(intBitsToFloat(R6i.x))); +R1i.w = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +PS0i = R1i.w; +// 5 +backupReg0i = R4i.x; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[44].x)); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +R4i.y = floatBitsToInt(sqrt(intBitsToFloat(R126i.z))); +PS1i = R4i.y; +} +if( activeMaskStackC[1] == true ) { +R13i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R7i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y)) + intBitsToFloat(R4i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(R4i.x))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R4i.y)) + intBitsToFloat(R6i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.w) + -(0.5)); +R6i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS0i = R6i.x; +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(R8i.y) + -(0.5)); +R8i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R3i.z = floatBitsToInt(-(intBitsToFloat(R5i.z)) * intBitsToFloat(0x3d4ccccd)); +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(PV0i.w)) + 1.0)); +R127i.w = clampFI32(R127i.w); +R3i.x = PS0i; +PS1i = R3i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = tempi.x; +R6i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PS0i = R6i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R127i.x)) + 1.0)); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.y)),intBitsToFloat(R8i.y)) + 1.0)); +R7i.z = 0; +R7i.w = 0x3f800000; +R3i.y = PS0i; +PS1i = R3i.y; +// 4 +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.x))); +R10i.w = R13i.x; +R10i.w = clampFI32(R10i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R1i.w)); +// 5 +R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i))); +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i))); +PV1i.y = R14i.y; +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.z)); +PS1i = floatBitsToInt(tempResultf); +// 6 +backupReg0i = R126i.z; +R13i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS1i))); +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +R11i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PS0i = R13i.z; +// 7 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.z),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R7i.z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y)); +R126i.x = floatBitsToInt(tempResultf); +PS1i = R126i.x; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R14i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R13i.x),intBitsToFloat(R12i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.z)); +PS0i = floatBitsToInt(tempResultf); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R6i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R8i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R8i.z = clampFI32(R8i.z); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R14i.y),intBitsToFloat(PV1i.x),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R8i.w = tempi.x; +R15i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R127i.x))); +PS0i = R15i.z; +} +if( activeMaskStackC[1] == true ) { +// 0 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[44].y) + intBitsToFloat(R4i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[43].x)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockPS6[45].x)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.y))); +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockPS6[45].y) + intBitsToFloat(PV1i.x))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockPS6[44].z) + intBitsToFloat(backupReg0i))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(Color.x, intBitsToFloat(R1i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(Color.z, intBitsToFloat(R1i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(Color.y, intBitsToFloat(R1i.y))); +// 4 +backupReg0i = R126i.y; +backupReg1i = R127i.w; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockPS6[43].z) + intBitsToFloat(backupReg0i))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV1i.z))); +R14i.z = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(backupReg1i)); +PS0i = R14i.z; +// 5 +R8i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(PV0i.z)); +R15i.y = PS0i; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockPS6[45].z) + intBitsToFloat(R127i.x))); +PV1i.z = R123i.z; +// 6 +R1i.y = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R3i.z))); +R1i.y = clampFI32(R1i.y); +R16i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(PV1i.z)); +R6i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R3i.z))); +R6i.w = clampFI32(R6i.w); +// 7 +R10i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].x * Factor, intBitsToFloat(R126i.y))); +R10i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].x * Factor, intBitsToFloat(R126i.x))); +R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].x * Factor, intBitsToFloat(R127i.w))); +R3i.y = floatBitsToInt(fract(uf_blockPS8[36].w)); +PS1i = R3i.y; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R9i.x = floatBitsToInt(uf_blockPS1[0].y); +PV0i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R5i.z)), uf_blockPS1[17].y)); +// 1 +R9i.y = floatBitsToInt(uf_blockPS1[1].y); +R9i.z = floatBitsToInt(uf_blockPS1[2].y); +R5i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +PS1i = R5i.w; +// 2 +predResult = (intBitsToFloat(R3i.y) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = floatBitsToInt(floor(uf_blockPS8[36].w)); +PV0i.z = R0i.z; +// 1 +R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R11i.y)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R11i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R11i.z)) + intBitsToFloat(R0i.z)); +// 1 +backupReg0i = R11i.x; +backupReg1i = R11i.y; +backupReg2i = R11i.z; +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(backupReg0i))); +R11i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R3i.y)) + intBitsToFloat(backupReg1i))); +R11i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (uf_blockPS8[33].w > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.y = 0; +} +if( activeMaskStackC[2] == true ) { +R0i.z = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R0i.y),intBitsToFloat(R0i.y),intBitsToFloat(R0i.y))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R11i.z) * intBitsToFloat(0x3dea4a8c)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R8i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS0i = R126i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666)); +R125i.z = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd))); +// 3 +backupReg0i = R127i.z; +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x40200000)); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a)); +R127i.w = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(backupReg0i) + intBitsToFloat(0x3eb33333))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 0.25); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(0x3e851eb8)); +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R9i.w = 0x3e99999a; +PS1i = R9i.w; +// 6 +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); +PV0i.w = clampFI32(PV0i.w); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R11i.x)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R11i.z)) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R11i.y)) + intBitsToFloat(PV0i.z)); +R127i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.z)); +PS1i = R127i.x; +// 8 +backupReg0i = R11i.x; +backupReg1i = R11i.y; +backupReg2i = R11i.z; +backupReg3i = R10i.x; +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS8[33].w) + intBitsToFloat(backupReg0i))); +R11i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),uf_blockPS8[33].w) + intBitsToFloat(backupReg1i))); +R11i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),uf_blockPS8[33].w) + intBitsToFloat(backupReg2i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R127i.y)); +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockPS8[33].w) + intBitsToFloat(backupReg3i))); +PS0i = R10i.x; +// 9 +backupReg0i = R10i.y; +backupReg1i = R10i.z; +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),uf_blockPS8[33].w) + intBitsToFloat(backupReg0i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockPS8[33].w) + intBitsToFloat(backupReg1i))); +// 10 +R11i.w = R7i.w; +// 11 +R0i.w = R7i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R9i.w = 0; +PV0i.w = R9i.w; +// 1 +R0i.w = PV0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.y = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R14i.x = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.y)); +R14i.x = clampFI32(R14i.x); +// 2 +predResult = (1.0 > intBitsToFloat(R6i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R5i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +R6i.y = floatBitsToInt((intBitsToFloat(R0i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +PV0i.w = ((-(intBitsToFloat(R5i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +// 1 +PV1i.y = PV0i.w & int(1); +// 2 +PV0i.z = PV1i.y - R127i.x; +// 3 +PV1i.w = PV0i.z << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.z)); +// 4 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002a; +R0i.z = PV1i.w + 0x0000002b; +R0i.w = PV1i.w + 0x0000002d; +R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R7i.z; +} +if( activeMaskStackC[2] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R3i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R1i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R4i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R7i.y; +// 6 +R127i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.y)); +PV0i.w = R127i.w; +// 7 +PV1i.x = ((intBitsToFloat(0x3727c5ac) > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 8 +R123i.y = ((PV1i.x == 0)?(R127i.w):(0x3727c5ac)); +PV0i.y = R123i.y; +// 9 +R7i.w = PV0i.y; +R7i.w = clampFI32(R7i.w); +} +if( activeMaskStackC[2] == true ) { +R7i.y = floatBitsToInt(texture(textureUnitPS1, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + 1.0); +// 1 +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(R7i.y))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R16i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R4i.z = floatBitsToInt(-(intBitsToFloat(R5i.z)) * intBitsToFloat(0x3ba3d70a)); +PV0i.z = R4i.z; +R0i.w = 0x3f800000; +PV0i.w = R0i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R127i.x = clampFI32(R127i.x); +PS0i = R127i.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R15i.y),intBitsToFloat(R16i.z),intBitsToFloat(PV0i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.w = PV0i.z; +PS1i = R1i.w; +// 2 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R15i.y),intBitsToFloat(R16i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 3 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R15i.y),intBitsToFloat(R16i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R1i.x; +// 4 +R3i.x = floatBitsToInt(intBitsToFloat(R8i.x) * intBitsToFloat(0x3a83126f)); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +R3i.z = floatBitsToInt(intBitsToFloat(R16i.z) * intBitsToFloat(0x3a83126f)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +PS0i = floatBitsToInt(intBitsToFloat(R8i.w) + -(intBitsToFloat(R15i.z))); +// 5 +R127i.x = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R3i.y = floatBitsToInt((intBitsToFloat(R12i.x) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R6i.x)))); +R1i.z = floatBitsToInt((intBitsToFloat(R14i.y) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R8i.y)))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(PV0i.w)) + intBitsToFloat(R15i.z))); +PV1i.w = R123i.w; +tempResultf = max(0.0, intBitsToFloat(PV0i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.z = floatBitsToInt(tempResultf); +PS1i = R127i.z; +// 6 +R6i.x = floatBitsToInt((intBitsToFloat(R12i.z) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R6i.z)))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.w)), intBitsToFloat(0xbf7d70a4))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R127i.w = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(0x3f99999a)); +R127i.w = clampFI32(R127i.w); +tempResultf = max(0.0, intBitsToFloat(R8i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 7 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3ecccccd)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.z = clampFI32(R123i.z); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(max(intBitsToFloat(R11i.y), intBitsToFloat(R11i.z))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS1i)) + uf_blockPS6[27].w)/2.0); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.w), intBitsToFloat(R11i.w))); +// 9 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R4i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R6i.z = floatBitsToInt(max(intBitsToFloat(R11i.x), intBitsToFloat(R126i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(0xbe593484))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.w))); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R6i.y = floatBitsToInt(min(intBitsToFloat(R11i.y), intBitsToFloat(R11i.z))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(0x3fc90da4))); +PV0i.z = R123i.z; +R3i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(R127i.z))); +R0i.w = floatBitsToInt(exp2(intBitsToFloat(R127i.y))); +PS0i = R0i.w; +// 11 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.z))) + 1.0)); +R5i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R5i.y = clampFI32(R5i.y); +R5i.z = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(0xbe99999a)); +R4i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(0x2edbe6ff)); +tempResultf = max(0.0, intBitsToFloat(R126i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R5i.x = floatBitsToInt(tempResultf); +PS1i = R5i.x; +} +if( activeMaskStackC[1] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS6, intBitsToFloat(R0i.xy),0.0).xyz); +R1i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R1i.xy),intBitsToFloat(R1i.w)).x); +R1i.w = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R3i.xz),0.0).x); +R8i.xyz = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R4i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = floatBitsToInt((intBitsToFloat(R1i.w) * 2.0 + -(1.0))); +PS0i = R127i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.y),intBitsToFloat(R1i.z),intBitsToFloat(R6i.x),-0.0),vec4(intBitsToFloat(R3i.y),intBitsToFloat(R1i.z),intBitsToFloat(R6i.x),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + uf_blockPS10[1].z); +PV0i.x = clampFI32(PV0i.x); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R0i.z = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(0x41c80000) + intBitsToFloat(R14i.z))); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(R5i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.w) + -(intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS10[3].z, intBitsToFloat(PV0i.x))); +PS1i = R126i.y; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R12i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R14i.x)) + intBitsToFloat(R127i.y))); +PS0i = R126i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R12i.x),intBitsToFloat(R14i.y),intBitsToFloat(R12i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x41400000)); +R127i.y = floatBitsToInt(min(intBitsToFloat(R11i.x), intBitsToFloat(R6i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.x) + uf_blockPS10[1].y); +PV0i.z = clampFI32(PV0i.z); +R126i.w = R2i.w; +R126i.w = clampFI32(R126i.w); +tempResultf = max(0.0, intBitsToFloat(PV1i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS0i))); +R125i.y = floatBitsToInt(intBitsToFloat(R5i.z) * intBitsToFloat(0x40200001)); +R125i.y = clampFI32(R125i.y); +PV1i.y = R125i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +R1i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R13i.y) + 1.0)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = clampFI32(PS1i); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x41200000)); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PS1i))); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3dcccccd)); +R125i.w = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(0xbfe66666)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +// 9 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.x))); +PV1i.x = R125i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS0i)) + 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R7i.x)) + intBitsToFloat(0xbd4ccccd))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R7i.x)) + intBitsToFloat(0xbc23d70a))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R3i.w))); +// 10 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x41a00000)); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(PS1i))) + uf_blockPS6[27].z)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x42480000)); +R127i.w = clampFI32(R127i.w); +PS0i = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(R126i.y)) + intBitsToFloat(R126i.y))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R126i.w)) + 1.0)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3df5c28f)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w))); +R125i.z = floatBitsToInt(1.0 / intBitsToFloat(R4i.w)); +PS1i = R125i.z; +// 12 +R126i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV1i.z))); +R126i.x = clampFI32(R126i.x); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.y = R126i.y; +R127i.z = floatBitsToInt((intBitsToFloat(R5i.w) * intBitsToFloat(0x3dcccccd) + 1.0)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), uf_blockPS6[30].w)); +tempResultf = max(0.0, intBitsToFloat(R6i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 13 +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); +R127i.x = clampFI32(R127i.x); +R127i.y = floatBitsToInt((-(intBitsToFloat(PV0i.y)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a)); +PV1i.w = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(0x3da3d70a)); +PV1i.w = clampFI32(PV1i.w); +tempResultf = max(0.0, intBitsToFloat(R5i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS1i))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R126i.x))); +R124i.y = clampFI32(R124i.y); +R126i.z = floatBitsToInt(-(intBitsToFloat(R126i.w)) + 1.0); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R1i.w))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 15 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3f4ccccd)); +R5i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3f4ccccd)); +R4i.w = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(0x42960000)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 16 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(backupReg0i))); +PV0i.x = R127i.x; +R6i.y = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3f4ccccd)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(0x2edbe6ff)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), uf_blockPS6[16].w)); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.w)),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.z))); +PS0i = R3i.w; +// 17 +R1i.x = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(R125i.x)); +R1i.x = clampFI32(R1i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.y))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(R6i.z))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 18 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(R127i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R11i.x) + -(intBitsToFloat(R6i.z))); +PS0i = floatBitsToInt(intBitsToFloat(R11i.y) + -(intBitsToFloat(R6i.z))); +// 19 +R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(R11i.z) + -(intBitsToFloat(R6i.z))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R10i.w)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R6i.x = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(PV0i.z)); +PS1i = R6i.x; +// 20 +backupReg0i = R8i.x; +backupReg1i = R8i.y; +backupReg2i = R6i.z; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(backupReg2i))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PV1i.w))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),-(intBitsToFloat(R5i.w))) + intBitsToFloat(R126i.w))); +PS0i = R4i.y; +} +if( activeMaskStackC[1] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(uf_blockPS6[4].x,uf_blockPS6[4].y,uf_blockPS6[4].z,-0.0),vec4(intBitsToFloat(R13i.x),intBitsToFloat(R12i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R7i.x)) + intBitsToFloat(0xba0a8ec8))); +R7i.w = clampFI32(R7i.w); +PS0i = R7i.w; +// 1 +PV1i.x = floatBitsToInt(uf_blockPS6[5].x + -(intBitsToFloat(R5i.y))); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R0i.z)) + uf_blockPS6[52].x); +PV1i.z = floatBitsToInt(uf_blockPS6[5].y + -(intBitsToFloat(R5i.z))); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.z)) + intBitsToFloat(0xba0a8ec8))); +R0i.z = clampFI32(R0i.z); +PS1i = R0i.z; +// 2 +backupReg0i = R5i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(backupReg0i))); +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R1i.x)) + intBitsToFloat(R5i.z))); +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R6i.z)) + intBitsToFloat(0xba0a8ec8))); +R1i.y = clampFI32(R1i.y); +PS0i = R1i.y; +// 3 +PV1i.x = floatBitsToInt(uf_blockPS6[5].z + -(intBitsToFloat(R6i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockPS6[13].w)); +// 4 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(R6i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.w))); +PV0i.w = clampFI32(PV0i.w); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R3i.w)) + intBitsToFloat(R3i.w))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R3i.w))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.w))); +R5i.z = clampFI32(R5i.z); +// 6 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV1i.y))); +R7i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PS0i = R7i.x; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PS0i))); +PV1i.y = R126i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 8 +backupReg0i = R4i.y; +backupReg0i = R4i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV1i.y))); +PV0i.y = R4i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), intBitsToFloat(PV1i.y))); +PS0i = R1i.x; +// 9 +R6i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R5i.w)) + intBitsToFloat(PV0i.w))); +R8i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R5i.w)) + intBitsToFloat(PV0i.x))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(R126i.y))); +PV1i.z = R4i.z; +R0i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R5i.w)) + intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.y)) * intBitsToFloat(0x3fb8aa3b)); +// 10 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R1i.x)) * intBitsToFloat(0x3fb8aa3b)); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * intBitsToFloat(0x3fb8aa3b)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PS1i))); +// 11 +R8i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 12 +R5i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.z))); +// 13 +R8i.z = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS10[2].w, intBitsToFloat(R5i.z))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockPS10[0].x)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.w), uf_blockPS10[0].y)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.x))); +PV1i.x = R123i.x; +R126i.y = ((1.0 > uf_blockPS8[37].x)?int(0xFFFFFFFF):int(0x0)); +PV1i.y = R126i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), uf_blockPS10[0].z)); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R7i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(R2i.z))); +PV0i.y = R123i.y; +R125i.z = ((PV1i.y == 0)?(R4i.y):(R8i.x)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.z))); +R125i.x = ((PV1i.y == 0)?(R1i.x):(R5i.w)); +PS0i = R125i.x; +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R1i.y))); +R127i.w = ((R126i.y == 0)?(R4i.z):(R8i.z)); +R1i.w = floatBitsToInt(uf_blockPS8[37].x); +PS1i = R1i.w; +// 4 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(R8i.y))); +PV0i.x = R127i.x; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R6i.x))); +PV0i.w = R126i.w; +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) * 0.25); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) * 0.25); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),intBitsToFloat(PV0i.z)) + intBitsToFloat(R0i.w))); +PV1i.z = R127i.z; +// 6 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3fb8aa3b)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3fb8aa3b)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * 0.25); +// 7 +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3fb8aa3b)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 4.0); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.x))); +// 9 +R123i.x = ((R126i.y == 0)?(R127i.x):(PV0i.x)); +PV1i.x = R123i.x; +PV1i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R126i.z))); +// 10 +R1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R125i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +R123i.w = ((R126i.y == 0)?(R126i.w):(PV1i.w)); +PV0i.w = R123i.w; +// 11 +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R125i.x)); +R123i.z = ((R126i.y == 0)?(R127i.z):(PV0i.z)); +PV1i.z = R123i.z; +// 12 +R1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.w)); +} +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/5c4fc00fefe604eb_00000078787f9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/5c4fc00fefe604eb_00000078787f9249_ps.txt new file mode 100644 index 00000000..9eda779c --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/5c4fc00fefe604eb_00000078787f9249_ps.txt @@ -0,0 +1,264 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define wpnDefault $wpnDefault +const vec3 Color = vec3($wpnR,$wpnG,$wpnB); +const float Light = $wpnL; + +// Ancient weapons + +// shader 5c4fc00fefe604eb +#ifdef VULKAN +layout(set = 1, binding = 5) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem3; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem7; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem3); +R2i = floatBitsToInt(passParameterSem4); +R3i = floatBitsToInt(passParameterSem7); +R4i.xy = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xy); +R6i.xy = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).xy); +R5i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyz); +R7i.xyz = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).xyz); +R0i.xyz = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyz); +// 0 +R126i.x = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.x = R126i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R2i.z))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(R3i.y))); +PV0i.w = floatBitsToInt(fract(intBitsToFloat(R3i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R2i.x))); +PS0i = R126i.y; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(0.5)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(0.5)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.y))); +R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 2 +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R1i.z)) + intBitsToFloat(R127i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.z)),intBitsToFloat(R1i.x)) + intBitsToFloat(R126i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0)); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(PS1i))); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R127i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(intBitsToFloat(R6i.y) * intBitsToFloat(0x437f0000)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.z))); +PV1i.w = R123i.w; +R127i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PS1i = R127i.w; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R6i.y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.x))); +R127i.x = int(intBitsToFloat(PV1i.z)); +PS0i = R127i.x; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(R127i.w))); +// 6 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.x))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.z))); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.w))); +PV0i.w = R127i.x & 0x000000e0; +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x427f0000)); +PS0i = R127i.y; + +#if (wpnDefault == 1) // Default section 7 + +// 7 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), intBitsToFloat(R5i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), intBitsToFloat(R5i.z))); +R127i.z = PV0i.w >> 0x00000003; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R5i.x))); +R126i.w = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS1i = R126i.w; + +#elif (wpnDefault == 0) // Modified section 7 + +// 7 +R127i.x = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R5i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R5i.z))); +R127i.z = PV0i.w >> 0x00000003; +R127i.w = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R5i.x))); +R126i.w = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS1i = R126i.w; + +#endif + +// 8 +backupReg0i = R127i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +R126i.x = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 4.0); +PS0i = R126i.x; +// 9 +backupReg0i = R126i.y; +backupReg1i = R127i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(R127i.w))); +R126i.y = ((R126i.w == 0)?(0x3d008081):(0x3d20a0a1)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(backupReg0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R127i.x))); +PS1i = floatBitsToInt(float(backupReg1i)); + +#if (wpnDefault == 1) // Default section 10 + half of 11 + +// 10 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x42820000)); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x), intBitsToFloat(PV1i.w))); +R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + 2.0); +PV0i.w = uf_remappedPS[2].z; +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x), intBitsToFloat(PV1i.x))); +PS0i = R7i.x; +// 11 +R6i.x = R126i.y; +R6i.y = PV0i.w; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x), intBitsToFloat(R127i.z))); + +#elif (wpnDefault == 0) // Modified section 10 + half of 11 + +// 10 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x42820000)); +R7i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.w))); +R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + 2.0); +PV0i.w = uf_remappedPS[2].z; +R7i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.x))); +PS0i = R7i.x; +// 11 +R6i.x = R126i.y; +R6i.y = PV0i.w; +R7i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(R127i.z))); + +#endif + +R6i.w = floatBitsToInt(1.0); +R7i.w = 0x3f800000; +PS1i = R7i.w; +// 12 +R5i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3b808081)); +R0i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b808081)); +PS0i = R0i.w; +// 13 +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y)); +PS1i = floatBitsToInt(tempResultf); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 14 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PS1i)) + 0.5)); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PS1i)) + 0.5)); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PS1i)) + 0.5)); +// 15 +R4i.xyz = ivec3(R7i.x,R7i.y,R7i.z); +R4i.w = R7i.w; +// 16 +R3i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R3i.w = R5i.w; +// 17 +R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R2i.w = R0i.w; +// 18 +R1i.xyz = ivec3(R6i.x,R6i.y,R6i.z); +R1i.w = R6i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/7cd50058a8f1d6dd_00001e1e1fea9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/7cd50058a8f1d6dd_00001e1e1fea9249_ps.txt new file mode 100644 index 00000000..bd62abdd --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/7cd50058a8f1d6dd_00001e1e1fea9249_ps.txt @@ -0,0 +1,969 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +const vec3 Color = vec3($armorR,$armorG,$armorB); +const float Factor = $armorL_f; + +// Armor When teleporting + +// shader 7cd50058a8f1d6dd +#ifdef VULKAN +layout(set = 1, binding = 7) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[10]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[10]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler3D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform sampler2D textureUnitPS7; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem5; +layout(location = 5) in vec4 passParameterSem7; +layout(location = 6) in vec4 passParameterSem8; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem5); +R5i = floatBitsToInt(passParameterSem7); +R6i = floatBitsToInt(passParameterSem8); +if( activeMaskStackC[1] == true ) { +R7i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy); +R1i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R1i.xy)).xyz); +R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz); +R1i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); +R9i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z))); +R127i.w = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.w = R127i.w; +R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PS0i = R127i.y; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i))); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i))); +R126i.w = floatBitsToInt(fract(intBitsToFloat(R6i.x))); +PS0i = R126i.w; +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.x))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R126i.y = floatBitsToInt(fract(intBitsToFloat(R6i.y))); +PS1i = R126i.y; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +// 5 +backupReg0i = R127i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.x))); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z))); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i))); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.5)); +R126i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R126i.w; +// 6 +backupReg0i = R126i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(backupReg0i) + -(0.5)); +// 7 +R127i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R1i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PS0i)) + 1.0)); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R1i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0)); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 8 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.y))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R1i.z))); +// 9 +backupReg0i = R127i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R127i.x))); +PV1i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(0x3f59999a)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(backupReg0i))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +// 10 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(PV1i.x))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS1i))); +R3i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3f969696)); +R3i.z = clampFI32(R3i.z); +R1i.w = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[3].w))); +R6i.y = 0x3f800000; +PS0i = R6i.y; +// 11 +R7i.y = 0; +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(R127i.z))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(R127i.w))); +PS1i = R5i.y; +// 12 +tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y)); +PS0i = floatBitsToInt(tempResultf); +// 13 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PV1i.x = R3i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R3i.y; +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS0i))); +PV1i.z = R4i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.w),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PS0i = R1i.x; +// 15 +R2i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +R2i.w = clampFI32(R2i.w); +// 16 +predResult = (intBitsToFloat(R1i.w) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[3].w))); +PV0i.z = R0i.z; +// 1 +R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R0i.z)); +// 1 +backupReg0i = R9i.x; +backupReg1i = R9i.y; +backupReg2i = R9i.z; +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg0i))); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg1i))); +R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R6i.z = ((intBitsToFloat(uf_remappedPS[4].w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 1 +predResult = (R6i.z != 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e99999a)); +R0i.y = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e99999a)); +R0i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e99999a)); +} +if( activeMaskStackC[2] == true ) { +R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3dea4a8c)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R2i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.w = floatBitsToInt(tempResultf); +PS0i = R126i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd))); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666)); +// 3 +R126i.y = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(R127i.w) + intBitsToFloat(0x3eb33333))); +PV1i.y = R126i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x40200000)); +R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 0.25); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(0x3e851eb8)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +R7i.y = 0x3e99999a; +PS1i = R7i.y; +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x)); +PV0i.y = clampFI32(PV0i.y); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +R127i.z = clampFI32(R127i.z); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); +PV0i.w = clampFI32(PV0i.w); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.y)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.z)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.w)); +R127i.x = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w)); +PS1i = R127i.x; +// 8 +backupReg0i = R9i.x; +backupReg1i = R9i.y; +backupReg2i = R9i.z; +backupReg3i = R5i.x; +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i))); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i))); +R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg2i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(R127i.z)); +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg3i))); +PS0i = R5i.x; +// 9 +backupReg0i = R5i.y; +backupReg1i = R5i.z; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i))); +// 10 +R4i.y = R6i.y; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R6i.y = R7i.y; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[4].x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[4].y)); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i))); +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x40666666)); +R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666)); +R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666)); +R1i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f3851ec)); +R1i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec)); +PS0i = R1i.y; +// 3 +R1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3f3851ec)); +} +if( activeMaskStackC[2] == true ) { +R0i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x); +R0i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.w),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R0i.x)); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.y))); +PV1i.y = R123i.y; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(PV1i.y)); +// 3 +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000)); +R127i.w = clampFI32(R127i.w); +PV1i.w = R127i.w; +// 4 +backupReg0i = R9i.x; +backupReg1i = R9i.y; +backupReg2i = R9i.z; +backupReg3i = R5i.x; +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w))); +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w))); +PS0i = R5i.x; +// 5 +backupReg0i = R5i.y; +backupReg1i = R5i.z; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R1i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].x) * intBitsToFloat(0xbd088889)); +// 1 +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y), intBitsToFloat(uf_remappedPS[6].x))); +// 2 +predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e22f983)); +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x40e66666)); +PV0i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e22f983)); +PV0i.w = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e22f983)); +PS0i = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.z)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PS0i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w)))); +// 2 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a)); +R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i))); +PS0i = R125i.w; +// 3 +R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R126i.z = R1i.x; +R126i.z = clampFI32(R126i.z); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.w = R123i.w; +R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000))); +PS1i = R124i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R4i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983)); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983)); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.x))); +R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000))); +R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367)); +PS1i = R126i.y; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.w = tempi.x; +PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367)); +// 7 +backupReg0i = R127i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000))); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333))); +PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367)); +// 8 +R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w)); +R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333))); +tempResultf = max(0.0, intBitsToFloat(R126i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.x = floatBitsToInt(tempResultf); +PS0i = R127i.x; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd))); +PV1i.z = R123i.z; +PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0)); +R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = R126i.x; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000)); +R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R1i.z))); +PV0i.z = R123i.z; +PV0i.w = PV1i.x; +PV0i.w = clampFI32(PV0i.w); +R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000))); +PS0i = R127i.z; +// 11 +R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000))); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R1i.w = ((R126i.x == 0)?(PV0i.y):(0)); +R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = R125i.z; +// 12 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000))); +// 13 +PV1i.z = PV0i.x; +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0)); +PV1i.w = clampFI32(PV1i.w); +// 14 +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z)); +// 15 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +PV1i.x = R126i.x; +R125i.w = PV0i.y; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +// 16 +PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x)); +// 17 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R126i.y; +// 18 +tempResultf = max(0.0, intBitsToFloat(PV1i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 19 +PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000)); +// 20 +R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +PS0i = R126i.z; +// 21 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x))); +PV1i.w = R123i.w; +// 22 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 23 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 24 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 25 +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w))); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R0i.xyz = ivec3(0,0,0); +R1i.w = 0; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R1i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x40490fdb)); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +R127i.y = R1i.x; +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(R9i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x40600000)); +R1i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[3].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i))); +PS0i = R1i.w; +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +PV1i.w = R126i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.w))); +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +// 5 +PV1i.x = PV0i.z; +PV1i.x = clampFI32(PV1i.x); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); +PV1i.y = clampFI32(PV1i.y); +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367)); +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x)); +// 7 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y))); +PV1i.x = R127i.x; +R127i.y = PV0i.w; +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z)); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290)); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71)); +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6)); +R126i.x = PV1i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0); +PS0i = R126i.x; +// 9 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000)); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +tempResultf = max(0.0, intBitsToFloat(PV1i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000)); +// 12 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 13 +R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R126i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z))); +PV1i.w = R123i.w; +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x)); +// 15 +backupReg0i = R0i.y; +backupReg1i = R0i.x; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.y)); +// 16 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg0i))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg1i))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[3].y) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R2i.w))); +R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +// 1 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(PV0i.x))); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +backupReg3i = R1i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i))); +R1i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R126i.w = R1i.w; +R126i.w = clampFI32(R126i.w); +PV0i.w = R126i.w; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.x))); +PV1i.y = R123i.y; +R127i.z = ((intBitsToFloat(PV0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.z))); +PV1i.w = R123i.w; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R9i.x))); +PS1i = R127i.y; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R9i.y))); +PV0i.w = R123i.w; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R9i.z))); +PS0i = R127i.w; +// 3 +backupReg0i = R127i.y; +R127i.x = ((R127i.z == 0)?(R5i.x):(PV0i.z)); +PV1i.x = R127i.x; +R127i.y = ((R127i.z == 0)?(R9i.x):(backupReg0i)); +R126i.z = ((R127i.z == 0)?(R5i.z):(PV0i.x)); +PV1i.z = R126i.z; +R125i.w = ((R127i.z == 0)?(R5i.y):(PV0i.y)); +PV1i.w = R125i.w; +R125i.z = ((R127i.z == 0)?(R9i.y):(PV0i.w)); +PS1i = R125i.z; +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x)); +R126i.y = ((R127i.z == 0)?(R9i.z):(R127i.w)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R4i.y))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y)); +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z)); +// 5 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R125i.w))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.z))); +R2i.w = ((R127i.z == 0)?(R4i.y):(PV0i.z)); +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R127i.y))); +PS1i = R6i.x; +// 6 +R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.z))); +R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y))); +// 7 +predResult = (1.0 > intBitsToFloat(uf_remappedPS[1].w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_remappedPS[6].x))); +R0i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[1].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000))); +R0i.y = clampFI32(R0i.y); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_remappedPS[6].x))); +PV0i.z = R0i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedPS[6].x))); +// 1 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[9].z))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z))); +R1i.w = PV0i.w; +R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0); +R1i.x = PV0i.x; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) / 2.0); +PS1i = R1i.x; +} +if( activeMaskStackC[2] == true ) { +R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(uf_remappedPS[9].y))); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R0i.w)) + intBitsToFloat(R1i.w))); +} +if( activeMaskStackC[2] == true ) { +R1i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +if( (intBitsToFloat(R3i.z) > intBitsToFloat(R1i.z))) discard; +tempResultf = max(0.0, intBitsToFloat(R1i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R1i.x = floatBitsToInt(tempResultf); +PS0i = R1i.x; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3fe66666)); +// 1 +R127i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +PS1i = R127i.z; +// 2 +R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS1i) + intBitsToFloat(0x3ee66666))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS1i) + intBitsToFloat(0x3e4ccccd))); +PV0i.y = R123i.y; +// 3 +backupReg0i = R5i.x; +backupReg1i = R5i.y; +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg1i))); +R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0)); +PV1i.w = R123i.w; +// 4 +backupReg0i = R5i.z; +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R2i.w))); +PV0i.x = R123i.x; +PV0i.y = uf_remappedPS[7].z; +PV0i.z = ((intBitsToFloat(R7i.y) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R123i.w = ((R6i.z == 0)?(0x3d008081):(0x3d30b0b1)); +PV0i.w = R123i.w; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +R1i.x = PV0i.w; +R127i.y = ((PV0i.z == 0)?(0):(0x3f800000)); +PV1i.y = R127i.y; +R0i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 0.5 + 0.5)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000)); +R1i.y = PV0i.y; +PS1i = R1i.y; +// 2 +PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R0i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5)); +PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +R2i.w = 0x3f800000; +R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5)); +PS0i = R0i.x; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0); +R123i.w = ((PV0i.x == 0)?(R6i.y):(R7i.y)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV1i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000)); +// 5 +R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081)); +PS1i = int(intBitsToFloat(PV0i.z)); +// 6 +PV0i.x = PS1i & 0x000000e0; +// 7 +PV1i.w = PV0i.x >> 0x00000003; +// 8 +PS0i = floatBitsToInt(float(PV1i.w)); +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42800000)); +// 10 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +// 11 +R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081))); +// 12 +R4i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R4i.w = R2i.w; +// 13 +R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R3i.w = R0i.w; +// 14 +R2i.xyz = ivec3(R6i.x,R8i.y,R7i.z); +R2i.w = R5i.w; +// 15 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +backupReg2i = R1i.z; +backupReg3i = R1i.w; +R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R1i.w = backupReg3i; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/83573681c1fcb0ac_0000f0f0ff549249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/83573681c1fcb0ac_0000f0f0ff549249_ps.txt new file mode 100644 index 00000000..804b1ebe --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/83573681c1fcb0ac_0000f0f0ff549249_ps.txt @@ -0,0 +1,1066 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define gsswDefault $gsswDefault +const vec3 Color = vec3($gsswR,$gsswG,$gsswB); +const float Factor = $gsswL_f; + +// Guardian weapons when teleporting + +// shader 83573681c1fcb0ac +#ifdef VULKAN +layout(set = 1, binding = 8) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[10]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[10]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler3D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform sampler2D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 7) uniform sampler2D textureUnitPS8; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem5; +layout(location = 5) in vec4 passParameterSem7; +layout(location = 6) in vec4 passParameterSem8; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem5); +R5i = floatBitsToInt(passParameterSem7); +R6i = floatBitsToInt(passParameterSem8); +if( activeMaskStackC[1] == true ) { +R7i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy); +R9i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).xyz); +R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz); +R1i.xyz = floatBitsToInt(texture(textureUnitPS8, intBitsToFloat(R1i.xy)).xyz); +R1i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); +R10i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z))); +R127i.w = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.w = R127i.w; +R127i.z = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PS0i = R127i.z; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i))); +R126i.x = floatBitsToInt(fract(intBitsToFloat(R6i.x))); +PS0i = R126i.x; +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R127i.w = floatBitsToInt(fract(intBitsToFloat(R6i.y))); +PS1i = R127i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y))); +PV1i.x = R127i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i))); +PV1i.y = R126i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z))); +PV1i.z = R125i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5)); +R127i.z = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +R127i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(0.5)); +PS0i = R127i.y; +// 7 +backupReg0i = R127i.z; + +#if (gsswDefault == 1) // Default line in section 7 + +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R9i.x))); + +#elif (gsswDefault == 0) // Modified line in section 7 + +R126i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R9i.x))); + +#endif + +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(R1i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R1i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R1i.z))); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS1i = R127i.w; +// 8 + +#if (gsswDefault == 1) // Default line in section 8 + +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), intBitsToFloat(R9i.z))); + +#elif (gsswDefault == 0) // Modified line in section 8 + +R125i.x = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R9i.z))); + +#endif + +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R126i.w)) + 1.0)); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R127i.y)) + 1.0)); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; + +#if (gsswDefault == 1) // Default line in section 8 + +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), intBitsToFloat(R9i.y))); + +#elif (gsswDefault == 0) // Modified line in section 8 + +R4i.w = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R9i.y))); + +#endif + +tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.z)); +R126i.w = floatBitsToInt(tempResultf); +PS0i = R126i.w; +// 9 +backupReg0i = R127i.w; +backupReg1i = R5i.z; +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R127i.w))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(backupReg0i))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(backupReg0i))); +PS1i = R126i.z; +// 10 +backupReg0i = R126i.y; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R126i.w))); + +#if (gsswDefault == 1) // Default lines in section 10 + +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R126i.x))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.x))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), intBitsToFloat(R4i.w))); + +#elif (gsswDefault == 0) // Modified lines in section 10 + +R126i.y = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R126i.x))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.x))); +R124i.w = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R4i.w))); + +#endif + +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.w))); +PS0i = R4i.y; + +#if (gsswDefault == 1) // Default section 11 + +// 11 +backupReg0i = R125i.y; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), intBitsToFloat(R125i.x))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R126i.w))); +PV1i.z = R4i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(uf_remappedPS[1].x))); +PS1i = R124i.y; + +#elif (gsswDefault == 0) // Modified section 11 + +// 11 +backupReg0i = R125i.y; +R127i.x = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R125i.x))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x) * Factor)); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R126i.w))); +PV1i.z = R4i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x) * Factor)); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(uf_remappedPS[1].x) * Factor)); +PS1i = R124i.y; + +#endif + +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.y),intBitsToFloat(R127i.w),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +R127i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[2].w)) + intBitsToFloat(0x3f59999a)); +PS0i = R127i.w; +// 13 +backupReg0i = R124i.z; +backupReg1i = R127i.x; +backupReg0i = R124i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R124i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R125i.y))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.y))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(R126i.w))); +PS1i = R124i.w; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R124i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.z))); +R3i.z = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x3f969696)); +R3i.z = clampFI32(R3i.z); +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.y))); +PS0i = R5i.x; +// 15 +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(R124i.w))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R124i.y)) + intBitsToFloat(PV0i.x))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.y))); +PS1i = R6i.y; +// 16 +R7i.y = 0x3f800000; +R6i.z = floatBitsToInt(-(intBitsToFloat(R4i.z)) + 1.0); +R8i.y = 0; +PS0i = R8i.y; +// 17 +R3i.y = floatBitsToInt(intBitsToFloat(R127i.y) + 1.0); +R3i.y = clampFI32(R3i.y); +R1i.y = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[3].w))); +PS1i = R1i.y; +// 18 +predResult = (intBitsToFloat(R1i.y) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[3].w))); +PV0i.z = R0i.z; +// 1 +R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R0i.z)); +// 1 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i))); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg1i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R4i.x = ((intBitsToFloat(uf_remappedPS[4].w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 1 +predResult = (R4i.x != 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e99999a)); +R0i.y = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e99999a)); +R0i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e99999a)); +} +if( activeMaskStackC[2] == true ) { +R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.z) * intBitsToFloat(0x3dea4a8c)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R3i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.w = floatBitsToInt(tempResultf); +PS0i = R126i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd))); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666)); +// 3 +R126i.y = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(R127i.w) + intBitsToFloat(0x3eb33333))); +PV1i.y = R126i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x40200000)); +R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 0.25); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(0x3e851eb8)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y))); +PV1i.w = R123i.w; +R8i.y = 0x3e99999a; +PS1i = R8i.y; +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x)); +PV0i.y = clampFI32(PV0i.y); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +R127i.z = clampFI32(R127i.z); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); +PV0i.w = clampFI32(PV0i.w); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.y)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.z)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.w)); +R127i.x = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w)); +PS1i = R127i.x; +// 8 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +backupReg3i = R5i.x; +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i))); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg2i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(R127i.z)); +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg3i))); +PS0i = R5i.x; +// 9 +backupReg0i = R5i.y; +backupReg1i = R5i.z; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i))); +// 10 +R6i.y = R7i.y; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R7i.y = R8i.y; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[4].x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[4].y)); +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i))); +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x40666666)); +R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666)); +R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666)); +R1i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f3851ec)); +R1i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec)); +PS0i = R1i.y; +// 3 +R1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3f3851ec)); +} +if( activeMaskStackC[2] == true ) { +R0i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x); +R0i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.w),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R0i.x)); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.y))); +PV1i.y = R123i.y; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(PV1i.y)); +// 3 +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000)); +R127i.w = clampFI32(R127i.w); +PV1i.w = R127i.w; +// 4 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +backupReg3i = R5i.x; +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w))); +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w))); +PS0i = R5i.x; +// 5 +backupReg0i = R5i.y; +backupReg1i = R5i.z; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R1i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].x) * intBitsToFloat(0xbd088889)); +// 1 +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y), intBitsToFloat(uf_remappedPS[6].x))); +// 2 +predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e22f983)); +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.w) * intBitsToFloat(0x40e66666)); +PV0i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e22f983)); +PV0i.w = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e22f983)); +PS0i = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.z)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(PS0i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w)))); +// 2 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a)); +R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i))); +PS0i = R125i.w; +// 3 +R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R126i.z = R6i.z; +R126i.z = clampFI32(R126i.z); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.w = R123i.w; +R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000))); +PS1i = R124i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983)); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983)); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.x))); +R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000))); +R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367)); +PS1i = R126i.y; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.w = tempi.x; +PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367)); +// 7 +backupReg0i = R127i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000))); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333))); +PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367)); +// 8 +R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w)); +R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333))); +tempResultf = max(0.0, intBitsToFloat(R126i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.x = floatBitsToInt(tempResultf); +PS0i = R127i.x; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd))); +PV1i.z = R123i.z; +PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0)); +R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = R126i.x; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000)); +R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R1i.x))); +PV0i.z = R123i.z; +PV0i.w = PV1i.x; +PV0i.w = clampFI32(PV0i.w); +R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000))); +PS0i = R127i.z; +// 11 +R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000))); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R2i.w = ((R126i.x == 0)?(PV0i.y):(0)); +R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = R125i.z; +// 12 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000))); +// 13 +PV1i.z = PV0i.x; +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0)); +PV1i.w = clampFI32(PV1i.w); +// 14 +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z)); +// 15 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +PV1i.x = R126i.x; +R125i.w = PV0i.y; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +// 16 +PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x)); +// 17 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R126i.y; +// 18 +tempResultf = max(0.0, intBitsToFloat(PV1i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 19 +PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000)); +// 20 +R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +PS0i = R126i.z; +// 21 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x))); +PV1i.w = R123i.w; +// 22 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 23 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 24 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 25 +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.w))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R2i.w))); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R0i.xyz = ivec3(0,0,0); +R2i.w = 0; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R2i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x40490fdb)); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +R127i.y = R6i.z; +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(R10i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x40600000)); +R2i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[3].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i))); +PS0i = R2i.w; +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(R4i.y) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +PV1i.w = R126i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.w))); +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +// 5 +PV1i.x = PV0i.z; +PV1i.x = clampFI32(PV1i.x); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); +PV1i.y = clampFI32(PV1i.y); +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367)); +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x)); +// 7 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y))); +PV1i.x = R127i.x; +R127i.y = PV0i.w; +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z)); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290)); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71)); +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6)); +R126i.x = PV1i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0); +PS0i = R126i.x; +// 9 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000)); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +tempResultf = max(0.0, intBitsToFloat(PV1i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000)); +// 12 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 13 +R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R126i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z))); +PV1i.w = R123i.w; +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x)); +// 15 +backupReg0i = R0i.y; +backupReg1i = R0i.x; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.y)); +// 16 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg0i))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg1i))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[3].y) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R3i.y))); +R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +// 1 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(PV0i.x))); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +backupReg3i = R2i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i))); +R2i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R127i.y = R2i.w; +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R5i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R5i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R5i.x))); +PV1i.z = R123i.z; +R127i.w = ((intBitsToFloat(PV0i.y) > 0.0)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = R127i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),-(intBitsToFloat(PV0i.y))) + intBitsToFloat(R10i.x))); +PS1i = R122i.x; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R126i.y = ((PV1i.w == 0)?(R10i.x):(PS1i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R10i.y))); +PS0i = R122i.x; +// 3 +R127i.x = ((R127i.w == 0)?(R5i.x):(PV0i.w)); +PV1i.x = R127i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R10i.z))); +PV1i.y = R123i.y; +R127i.z = ((R127i.w == 0)?(R5i.z):(PV0i.x)); +PV1i.z = R127i.z; +R126i.w = ((R127i.w == 0)?(R5i.y):(PV0i.z)); +PV1i.w = R126i.w; +R125i.w = ((R127i.w == 0)?(R10i.y):(PS0i)); +PS1i = R125i.w; +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x)); +R126i.z = ((R127i.w == 0)?(R10i.z):(PV1i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R6i.y))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z)); +// 5 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x))); +R3i.y = ((R127i.w == 0)?(R6i.y):(PV0i.w)); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.z))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.w))); +PS1i = R5i.y; +// 6 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y))); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.w))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.z))); +// 7 +predResult = (1.0 > intBitsToFloat(uf_remappedPS[2].w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_remappedPS[6].x))); +R0i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[2].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000))); +R0i.y = clampFI32(R0i.y); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_remappedPS[6].x))); +PV0i.z = R0i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedPS[6].x))); +// 1 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[9].z))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z))); +R1i.w = PV0i.w; +R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0); +R1i.x = PV0i.x; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) / 2.0); +PS1i = R1i.x; +} +if( activeMaskStackC[2] == true ) { +R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(uf_remappedPS[9].y))); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R0i.w)) + intBitsToFloat(R1i.w))); +} +if( activeMaskStackC[2] == true ) { +R1i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +if( (intBitsToFloat(R3i.z) > intBitsToFloat(R1i.z))) discard; +tempResultf = max(0.0, intBitsToFloat(R1i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R1i.x = floatBitsToInt(tempResultf); +PS0i = R1i.x; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3fe66666)); +// 1 +R127i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +PS1i = R127i.z; +// 2 +R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS1i) + intBitsToFloat(0x3ee66666))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS1i) + intBitsToFloat(0x3e4ccccd))); +PV0i.y = R123i.y; +// 3 +backupReg0i = R5i.x; +backupReg1i = R5i.y; +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg1i))); +R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0)); +PV1i.w = R123i.w; +// 4 +backupReg0i = R5i.z; +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R3i.y))); +PV0i.x = R123i.x; +PV0i.y = uf_remappedPS[7].z; +PV0i.z = ((intBitsToFloat(R8i.y) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R123i.w = ((R4i.x == 0)?(0x3d008081):(0x3d30b0b1)); +PV0i.w = R123i.w; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +R1i.x = PV0i.w; +R127i.y = ((PV0i.z == 0)?(0):(0x3f800000)); +PV1i.y = R127i.y; +R0i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 0.5 + 0.5)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000)); +R1i.y = PV0i.y; +PS1i = R1i.y; +// 2 +PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R0i.y = floatBitsToInt((intBitsToFloat(R4i.y) * 0.5 + 0.5)); +PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +R2i.w = 0x3f800000; +R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5)); +PS0i = R0i.x; +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0); +R123i.w = ((PV0i.x == 0)?(R7i.y):(R8i.y)); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV1i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000)); +// 5 +R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081)); +PS1i = int(intBitsToFloat(PV0i.z)); +// 6 +PV0i.x = PS1i & 0x000000e0; +// 7 +PV1i.w = PV0i.x >> 0x00000003; +// 8 +PS0i = floatBitsToInt(float(PV1i.w)); +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42c00000)); +// 10 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +// 11 +R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081))); +// 12 +R4i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R4i.w = R2i.w; +// 13 +R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R3i.w = R0i.w; +// 14 +R2i.xyz = ivec3(R6i.x,R6i.y,R6i.z); +R2i.w = R5i.w; +// 15 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +backupReg2i = R1i.z; +backupReg3i = R1i.w; +R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R1i.w = backupReg3i; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/85d00659937443d5_000003c3c3fc9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/85d00659937443d5_000003c3c3fc9249_ps.txt new file mode 100644 index 00000000..403ff7f5 --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/85d00659937443d5_000003c3c3fc9249_ps.txt @@ -0,0 +1,232 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +const vec3 Color = vec3($dgrdR,$dgrdG,$dgrdB); +const float Factor = $dgrdL_f; + +// Decayed Guardian + +// shader 85d00659937443d5 +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(3, 1, 0) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 1) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 2) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 5) uniform sampler2D textureUnitPS8; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 4) in vec4 passParameterSem4; +layout(location = 5) in vec4 passParameterSem5; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R12f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R124f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem6; +R3f = passParameterSem3; +R4f = passParameterSem4; +R5f = passParameterSem5; +R8f.xyz = (texture(textureUnitPS5, R0f.xy).xyz); +R7f.xyz = (texture(textureUnitPS6, R0f.xy).xyz); +R6f.xyz = (texture(textureUnitPS7, R0f.zw).xyz); +R1f.xyz = (texture(textureUnitPS8, R1f.xy).xyz); +R1f.w = (texture(textureUnitPS4, R0f.xy).x); +R0f.xyz = (texture(textureUnitPS3, R0f.xy).xyz); +// 0 +PV0f.x = mul_nonIEEE(R3f.y, R4f.z); +R126f.y = (R8f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)); +PV0f.y = R126f.y; +PV0f.z = mul_nonIEEE(R3f.z, R4f.x); +PV0f.w = mul_nonIEEE(R3f.x, R4f.y); +R127f.x = (R8f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)); +PS0f = R127f.x; +// 1 +R126f.x = (mul_nonIEEE(-(R4f.z),R3f.x) + PV0f.z); +R127f.y = (mul_nonIEEE(-(R4f.y),R3f.z) + PV0f.x); +PV1f.z = mul_nonIEEE(PV0f.y, PV0f.y); +R127f.w = (mul_nonIEEE(-(R4f.x),R3f.y) + PV0f.w); +R127f.z = mul_nonIEEE(R4f.w, PS0f); +PS1f = R127f.z; +// 2 +backupReg0f = R127f.x; +backupReg0f = R127f.x; +R127f.x = mul_nonIEEE(R6f.x, R1f.x); +R125f.y = mul_nonIEEE(R6f.y, R1f.y); +R126f.z = mul_nonIEEE(R6f.z, R1f.z); +R123f.w = (mul_nonIEEE(backupReg0f,backupReg0f) + PV1f.z); +R123f.w = clamp(R123f.w, 0.0, 1.0); +PV0f.w = R123f.w; +R124f.z = mul_nonIEEE(Color.g, R7f.y); +PS0f = R124f.z; +// 3 +backupReg0f = R127f.y; +R125f.x = mul_nonIEEE(Color.b, R7f.z); +R127f.y = -(PV0f.w) + 1.0; +PV1f.z = mul_nonIEEE(backupReg0f, R127f.z); +R125f.w = mul_nonIEEE(Color.r, R7f.x); +PS1f = mul_nonIEEE(R126f.x, R127f.z); +// 4 +PV0f.x = mul_nonIEEE(R127f.w, R127f.z); +R123f.y = (mul_nonIEEE(-(R2f.z),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y))); +R123f.y = clamp(R123f.y, 0.0, 1.0); +PV0f.y = R123f.y; +R127f.z = (mul_nonIEEE(R4f.x,R126f.y) + PV1f.z)/2.0; +R127f.w = (mul_nonIEEE(R4f.y,R126f.y) + PS1f)/2.0; +R124f.y = mul_nonIEEE(R127f.x, intBitsToFloat(uf_remappedPS[1].x) * Factor); +PS0f = R124f.y; +// 5 +backupReg0f = R127f.y; +R126f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), PV0f.y); +R127f.y = (mul_nonIEEE(R4f.z,R126f.y) + PV0f.x)/2.0; +R125f.z = mul_nonIEEE(Color.g, R124f.z); +R126f.w = mul_nonIEEE(Color.r, R125f.w); +R127f.x = sqrt(backupReg0f); +R127f.x /= 2.0; +PS1f = R127f.x; +// 6 +backupReg0f = R126f.z; +R124f.x = mul_nonIEEE(R125f.y, intBitsToFloat(uf_remappedPS[1].x) * Factor); +R125f.y = mul_nonIEEE(Color.b, R125f.x); +R126f.z = intBitsToFloat(0x427f0000) * R1f.w; +R124f.w = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[1].x) * Factor); +R126f.y = intBitsToFloat(0x427f0000) * R8f.z; +PS0f = R126f.y; +// 7 +backupReg0f = R127f.x; +backupReg0f = R127f.x; +backupReg1f = R3f.y; +backupReg0f = R127f.x; +R127f.x = (mul_nonIEEE(R3f.x,backupReg0f) + R127f.z); +R3f.y = (mul_nonIEEE(R3f.z,backupReg0f) + R127f.y); +R127f.z = (mul_nonIEEE(backupReg1f,backupReg0f) + R127f.w); +R127f.w = mul_nonIEEE(R126f.x, R126f.w); +R127f.y = mul_nonIEEE(R126f.x, R125f.z); +PS1f = R127f.y; +// 8 +backupReg0f = R126f.x; +backupReg1f = R124f.z; +R126f.x = mul_nonIEEE(backupReg0f, R125f.y); +R125f.y = mul_nonIEEE(R125f.x, R124f.w); +R124f.z = mul_nonIEEE(backupReg1f, R124f.x); +PV0f.w = mul_nonIEEE(R125f.w, R124f.y); +R125f.w = intBitsToFloat(0x3c808081); +PS0f = R125f.w; +// 9 +backupReg0f = R126f.y; +R125f.x = floor(R126f.z); +R125f.x *= 4.0; +R126f.y = floor(backupReg0f); +R126f.y *= 4.0; +R126f.z = intBitsToFloat(uf_remappedPS[2].z); +R4f.w = 1.0; +R1f.x = (mul_nonIEEE(R127f.w,R124f.y) + PV0f.w); +PS1f = R1f.x; +// 10 +R4f.x = R125f.w; +R1f.y = (mul_nonIEEE(R127f.y,R124f.x) + R124f.z); +R1f.z = (mul_nonIEEE(R126f.x,R124f.w) + R125f.y); +R1f.w = 1.0; +R8f.y = mul_nonIEEE(R5f.x, R0f.y); +PS0f = R8f.y; +// 11 +R8f.x = mul_nonIEEE(R5f.x, R0f.x); +R4f.y = R126f.z; +R8f.z = mul_nonIEEE(R5f.x, R0f.z); +R0f.w = (R126f.y * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)); +R0f.x = R127f.x + 0.5; +PS1f = R0f.x; +// 12 +R0f.y = R127f.z + 0.5; +R0f.z = R3f.y + 0.5; +R8f.w = (R125f.x * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)); +// 13 +R12f.xyz = vec3(R1f.x,R1f.y,R1f.z); +R12f.w = R1f.w; +// 14 +R11f.xyz = vec3(R0f.x,R0f.y,R0f.z); +R11f.w = R0f.w; +// 15 +R10f.xyz = vec3(R8f.x,R8f.y,R8f.z); +R10f.w = R8f.w; +// 16 +R9f.xyz = vec3(R4f.x,R4f.y,R4f.z); +R9f.w = R4f.w; +// export +passPixelColor0 = vec4(R9f.x, R9f.y, R9f.z, R9f.w); +passPixelColor1 = vec4(R10f.x, R10f.y, R10f.z, R10f.w); +passPixelColor3 = vec4(R11f.x, R11f.y, R11f.z, R11f.w); +passPixelColor5 = vec4(R12f.x, R12f.y, R12f.z, R12f.w); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/91b6e09da2ff63cc_000003c3c3fc9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/91b6e09da2ff63cc_000003c3c3fc9249_ps.txt new file mode 100644 index 00000000..a2c10c7e --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/91b6e09da2ff63cc_000003c3c3fc9249_ps.txt @@ -0,0 +1,311 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define gsswDefault $gsswDefault +const vec3 Color = vec3($gsswR,$gsswG,$gsswB); +const float Factor = $gsswL_f; + +// Guardian Stalker + Scout + Guardian weapons + +// shader 91b6e09da2ff63cc +#ifdef VULKAN +layout(set = 1, binding = 6) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem7; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 4) in vec4 passParameterSem4; +layout(location = 5) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R124f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem7; +R3f = passParameterSem3; +R4f = passParameterSem4; +R5f = passParameterSem6; +R5f.xy = (texture(textureUnitPS3, R0f.xy).xy); +R1f.w = (texture(textureUnitPS2, R0f.xy).x); +R7f.xyz = (texture(textureUnitPS4, R0f.xy).xyz); +R6f.xyz = (texture(textureUnitPS5, R0f.zw).xyz); +R1f.xyz = (texture(textureUnitPS6, R1f.xy).xyz); +R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz); +// 0 +PV0f.x = fract(R2f.x); +R126f.y = (R5f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)); +PV0f.y = R126f.y; +R127f.z = mul_nonIEEE(R3f.y, R4f.z); +PV0f.w = fract(R2f.y); +R126f.z = mul_nonIEEE(R3f.z, R4f.x); +PS0f = R126f.z; +// 1 +PV1f.x = mul_nonIEEE(R3f.x, R4f.y); +PV1f.y = PV0f.w + -(0.5); +PV1f.z = PV0f.x + -(0.5); +R127f.w = (R5f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)); +PV1f.w = R127f.w; +PS1f = mul_nonIEEE(PV0f.y, PV0f.y); +// 2 +R123f.x = (mul_nonIEEE(-(PV1f.z),PV1f.z) + 1.0); +R123f.x = clamp(R123f.x, 0.0, 1.0); +PV0f.x = R123f.x; +R127f.y = (mul_nonIEEE(-(R4f.y),R3f.z) + R127f.z); +R127f.z = (mul_nonIEEE(-(R4f.x),R3f.y) + PV1f.x); +R123f.w = (mul_nonIEEE(-(PV1f.y),PV1f.y) + 1.0); +R123f.w = clamp(R123f.w, 0.0, 1.0); +PV0f.w = R123f.w; +R122f.x = (mul_nonIEEE(PV1f.w,PV1f.w) + PS1f); +R122f.x = clamp(R122f.x, 0.0, 1.0); +PS0f = R122f.x; +// 3 +PV1f.x = -(PS0f) + 1.0; +PV1f.y = mul_nonIEEE(R4f.w, R127f.w); +PV1f.z = mul_nonIEEE(PV0f.x, PV0f.w); +R123f.w = (mul_nonIEEE(-(R4f.z),R3f.x) + R126f.z); +PV1f.w = R123f.w; +R125f.z = mul_nonIEEE(R6f.x, R1f.x); +PS1f = R125f.z; +// 4 +PV0f.x = mul_nonIEEE(R127f.y, PV1f.y); +PV0f.y = mul_nonIEEE(PV1f.z, PV1f.z); +PV0f.z = mul_nonIEEE(R127f.z, PV1f.y); +PV0f.w = mul_nonIEEE(PV1f.w, PV1f.y); +R127f.z = sqrt(PV1f.x); +PS0f = R127f.z; +// 5 +R123f.x = (mul_nonIEEE(R4f.y,R126f.y) + PV0f.w); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R4f.x,R126f.y) + PV0f.x); +PV1f.y = R123f.y; +R126f.z = mul_nonIEEE(R1f.w, PV0f.y); +R123f.w = (mul_nonIEEE(R4f.z,R126f.y) + PV0f.z); +PV1f.w = R123f.w; +R126f.y = mul_nonIEEE(R6f.z, R1f.z); +PS1f = R126f.y; +// 6 +R124f.x = (mul_nonIEEE(R3f.x,R127f.z) + PV1f.y); +R124f.y = (mul_nonIEEE(R3f.y,R127f.z) + PV1f.x); +R1f.z = (mul_nonIEEE(R3f.z,R127f.z) + PV1f.w); +R127f.w = mul_nonIEEE(R6f.y, R1f.y); + +#if (gsswDefault == 1) // Default line in section 6 + +R126f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), R7f.x); + +#elif (gsswDefault == 0) // Modified line in section 6 + +R126f.w = mul_nonIEEE(Color.r, R7f.x); + +#endif + +PS0f = R126f.w; + +#if (gsswDefault == 1) // Default section 7 + +// 7 +R127f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), PS0f); +R127f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R7f.y); +PV1f.z = R126f.z * intBitsToFloat(0x427f0000); +R125f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), R7f.z); +R124f.z = intBitsToFloat(0x3d008081); +PS1f = R124f.z; + +#elif (gsswDefault == 0) // Modified section 7 + +// 7 +R127f.x = mul_nonIEEE(Color.r, PS0f); +R127f.y = mul_nonIEEE(Color.g, R7f.y); +PV1f.z = R126f.z * intBitsToFloat(0x427f0000); +R125f.w = mul_nonIEEE(Color.b, R7f.z); +R124f.z = intBitsToFloat(0x3d008081); +PS1f = R124f.z; + +#endif + +// 8 +R123f.x = (mul_nonIEEE(-(R5f.z),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y))); +R123f.x = clamp(R123f.x, 0.0, 1.0); +PV0f.x = R123f.x; + +#if (gsswDefault == 1) // Default part of section 8 + +R125f.y = mul_nonIEEE(R125f.z, intBitsToFloat(uf_remappedPS[1].x)); +PV0f.y = R125f.y; +R127f.z = mul_nonIEEE(R127f.w, intBitsToFloat(uf_remappedPS[1].x)); +PV0f.z = R127f.z; +R127f.w = mul_nonIEEE(R126f.y, intBitsToFloat(uf_remappedPS[1].x)); + +#elif (gsswDefault == 0) // Modified part of section 8 + +R125f.y = mul_nonIEEE(R125f.z, intBitsToFloat(uf_remappedPS[1].x) * Factor); +PV0f.y = R125f.y; +R127f.z = mul_nonIEEE(R127f.w, intBitsToFloat(uf_remappedPS[1].x) * Factor); +PV0f.z = R127f.z; +R127f.w = mul_nonIEEE(R126f.y, intBitsToFloat(uf_remappedPS[1].x) * Factor); + +#endif + +PV0f.w = R127f.w; +R126f.y = floor(PV1f.z); +R126f.y *= 4.0; +PS0f = R126f.y; +// 9 +backupReg0f = R126f.w; +R126f.x = mul_nonIEEE(R127f.y, PV0f.z); + +#if (gsswDefault == 1) // Default line in section 9 + +PV1f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), R127f.y); + +#elif (gsswDefault == 0) // Modified line in section 9 + +PV1f.y = mul_nonIEEE(Color.g, R127f.y); + +#endif + +R125f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), PV0f.x); +PV1f.z = R125f.z; +R126f.w = mul_nonIEEE(backupReg0f, PV0f.y); +R125f.x = mul_nonIEEE(R125f.w, PV0f.w); +PS1f = R125f.x; +// 10 +backupReg0f = R126f.y; + +#if (gsswDefault == 1) // Default line in section 10 + +PV0f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), R125f.w); + +#elif (gsswDefault == 0) // Modified line in section 10 + +PV0f.x = mul_nonIEEE(Color.b, R125f.w); + +#endif + +R126f.y = mul_nonIEEE(PV1f.z, R127f.x); +R126f.z = mul_nonIEEE(PV1f.z, PV1f.y); +R125f.w = intBitsToFloat(uf_remappedPS[2].z); +R127f.x = backupReg0f + 2.0; +PS0f = R127f.x; +// 11 +backupReg0f = R125f.z; +tempf.x = dot(vec4(R124f.x,R124f.y,R1f.z,-0.0),vec4(R124f.x,R124f.y,R1f.z,0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R125f.z = tempf.x; +PS1f = mul_nonIEEE(backupReg0f, PV0f.x); +// 12 +R5f.x = (mul_nonIEEE(R126f.y,R125f.y) + R126f.w); +R5f.y = (mul_nonIEEE(R126f.z,R127f.z) + R126f.x); +R5f.z = (mul_nonIEEE(PS1f,R127f.w) + R125f.x); +R1f.w = 1.0; +R1f.x = R124f.z; +PS0f = R1f.x; +// 13 +R1f.y = R125f.w; +R5f.w = 1.0; +R7f.w = R127f.x * intBitsToFloat(0x3b808081); +PS1f = R7f.w; +// 14 +R0f.w = intBitsToFloat(0x3ec2c2c4); +tempResultf = 1.0 / sqrt(R125f.z); +PS0f = tempResultf; +PS0f /= 2.0; +// 15 +R7f.x = (mul_nonIEEE(R124f.x,PS0f) + 0.5); +R7f.y = (mul_nonIEEE(R124f.y,PS0f) + 0.5); +R7f.z = (mul_nonIEEE(R1f.z,PS0f) + 0.5); +// 16 +backupReg0f = R5f.x; +backupReg1f = R5f.y; +backupReg2f = R5f.z; +backupReg3f = R5f.w; +R5f.xyz = vec3(backupReg0f,backupReg1f,backupReg2f); +R5f.w = backupReg3f; +// 17 +R4f.xyz = vec3(R7f.x,R7f.y,R7f.z); +R4f.w = R7f.w; +// 18 +R3f.xyz = vec3(R0f.x,R0f.y,R0f.z); +R3f.w = R0f.w; +// 19 +R2f.xyz = vec3(R1f.x,R1f.y,R1f.z); +R2f.w = R1f.w; +// export +passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w); +passPixelColor1 = vec4(R3f.x, R3f.y, R3f.z, R3f.w); +passPixelColor3 = vec4(R4f.x, R4f.y, R4f.z, R4f.w); +passPixelColor5 = vec4(R5f.x, R5f.y, R5f.z, R5f.w); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/b1b149918fac0b8d_00001e1e1fea9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/b1b149918fac0b8d_00001e1e1fea9249_ps.txt new file mode 100644 index 00000000..13853465 --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/b1b149918fac0b8d_00001e1e1fea9249_ps.txt @@ -0,0 +1,1024 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define wpnDefault $wpnDefault +const vec3 Color = vec3($wpnR,$wpnG,$wpnB); +const float Light = $wpnL; + +// Ancient weapons when teleporting + +// shader b1b149918fac0b8d +#ifdef VULKAN +layout(set = 1, binding = 7) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[10]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[10]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler3D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform sampler2D textureUnitPS7; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem8; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem5; +layout(location = 5) in vec4 passParameterSem7; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem8); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem5); +R5i = floatBitsToInt(passParameterSem7); +if( activeMaskStackC[1] == true ) { +R6i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy); +R7i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).xyz); +R9i.xy = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xy); +R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz); +R10i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x))); +R127i.w = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.w = R127i.w; +R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PS0i = R127i.y; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i))); +R126i.w = floatBitsToInt(fract(intBitsToFloat(R2i.x))); +PS0i = R126i.w; +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R126i.x = floatBitsToInt(fract(intBitsToFloat(R2i.y))); +PS1i = R126i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z))); +PV1i.x = R127i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i))); +PV1i.y = R125i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y))); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.5)); +R126i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R126i.w; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5)); +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PS0i)) + 1.0)); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; + +#if (wpnDefault == 1) // Default lines in section 7 + +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y), intBitsToFloat(R7i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R7i.x))); + +#elif (wpnDefault == 0) // Modified lines in section 7 + +R127i.y = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R7i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R7i.x))); + +#endif + +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0)); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 8 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i))); + +#if (wpnDefault == 1) // Default line in section 8 + +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].z), intBitsToFloat(R7i.z))); + +#elif (wpnDefault == 0) // Modified line in section 8 + +PS0i = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R7i.z))); + +#endif + +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R9i.y))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(R127i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R127i.z))); +R1i.w = 0x3f800000; +PS1i = R1i.w; + +#if (wpnDefault == 1) // Default section 10 + +// 10 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x), intBitsToFloat(PV1i.w))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x), intBitsToFloat(PV1i.z))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x), intBitsToFloat(PV1i.x))); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.y))); +R4i.w = 0; +PS0i = R4i.w; + +#elif (wpnDefault == 0) // Modified section 10 + +// 10 +R4i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.w))); +R4i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.z))); +R4i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.x))); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.y))); +R4i.w = 0; +PS0i = R4i.w; + +#endif + +// 11 +R2i.x = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[2].w))); +R5i.w = R9i.y; +tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y)); +PS1i = floatBitsToInt(tempResultf); +// 12 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PV0i.x = R5i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i))); +PV0i.y = R5i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i))); +PV0i.z = R3i.z; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.w),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R3i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PS1i = R3i.y; +// 14 +R3i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0); +R3i.x = clampFI32(R3i.x); +// 15 +predResult = (intBitsToFloat(R2i.x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[2].w))); +PV0i.z = R0i.z; +// 1 +R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R0i.z)); +// 1 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg0i))); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg1i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg2i))); +// 2 +R5i.w = R4i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R5i.z = ((intBitsToFloat(uf_remappedPS[3].w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 1 +predResult = (R5i.z != 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3e99999a)); +R0i.y = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3e99999a)); +R0i.z = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3e99999a)); +} +if( activeMaskStackC[2] == true ) { +R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.z) * intBitsToFloat(0x3dea4a8c)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R3i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS0i = R126i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666)); +R125i.z = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd))); +// 3 +backupReg0i = R127i.z; +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x40200000)); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a)); +R127i.w = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(backupReg0i) + intBitsToFloat(0x3eb33333))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 0.25); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(0x3e851eb8)); +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R6i.w = 0x3e99999a; +PS1i = R6i.w; +// 6 +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); +PV0i.w = clampFI32(PV0i.w); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.z)); +R127i.x = floatBitsToInt(-(intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.z)); +PS1i = R127i.x; +// 8 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +backupReg3i = R4i.x; +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg0i))); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg1i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg2i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.z)) + intBitsToFloat(R127i.y)); +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg3i))); +PS0i = R4i.x; +// 9 +backupReg0i = R4i.y; +backupReg1i = R4i.z; +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg0i))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg1i))); +// 10 +R3i.w = R1i.w; +// 11 +R5i.w = R1i.w; +// 12 +R4i.w = R1i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R6i.w = R4i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[3].y)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666)); +R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666)); +R0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40666666)); +R2i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f3851ec)); +R2i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec)); +PS0i = R2i.y; +// 3 +R2i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3f3851ec)); +} +if( activeMaskStackC[2] == true ) { +R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x); +R2i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.w),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.z; +PV0i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R2i.y)); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.z))); +PV1i.y = R123i.y; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(PV1i.y)); +// 3 +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000)); +R127i.w = clampFI32(R127i.w); +PV1i.w = R127i.w; +// 4 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +backupReg3i = R4i.x; +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w))); +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w))); +PS0i = R4i.x; +// 5 +backupReg0i = R4i.y; +backupReg1i = R4i.z; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].x) * intBitsToFloat(0xbd088889)); +// 1 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(uf_remappedPS[6].x))); +// 2 +predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3e22f983)); +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40e66666)); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3e22f983)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3e22f983)); +PS0i = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.z)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PS0i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w)))); +// 2 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a)); +R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i))); +PS0i = R125i.w; +// 3 +R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R126i.z = R3i.y; +R126i.z = clampFI32(R126i.z); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.w = R123i.w; +R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000))); +PS1i = R124i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983)); +// 5 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983)); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.x))); +R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000))); +R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367)); +PS1i = R126i.y; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.w = tempi.x; +PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367)); +// 7 +backupReg0i = R127i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000))); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333))); +PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367)); +// 8 +R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w)); +R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333))); +tempResultf = max(0.0, intBitsToFloat(R126i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.x = floatBitsToInt(tempResultf); +PS0i = R127i.x; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd))); +PV1i.z = R123i.z; +PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0)); +R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = R126i.x; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000)); +R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R0i.y))); +PV0i.z = R123i.z; +PV0i.w = PV1i.x; +PV0i.w = clampFI32(PV0i.w); +R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000))); +PS0i = R127i.z; +// 11 +R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000))); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R1i.w = ((R126i.x == 0)?(PV0i.y):(0)); +R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = R125i.z; +// 12 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000))); +// 13 +PV1i.z = PV0i.x; +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0)); +PV1i.w = clampFI32(PV1i.w); +// 14 +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z)); +// 15 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +PV1i.x = R126i.x; +R125i.w = PV0i.y; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +// 16 +PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x)); +// 17 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R126i.y; +// 18 +tempResultf = max(0.0, intBitsToFloat(PV1i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 19 +PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000)); +// 20 +R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +PS0i = R126i.z; +// 21 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x))); +PV1i.w = R123i.w; +// 22 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 23 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 24 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +// 25 +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w))); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R2i.xyz = ivec3(0,0,0); +R1i.w = 0; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[2].x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R1i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(0x40490fdb)); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(R10i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x40600000)); +R1i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[2].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i))); +PS0i = R1i.w; +// 1 +R127i.x = R3i.y; +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +PV0i.w = R127i.w; +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.x)); +// 4 +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R127i.w))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +// 5 +PV1i.x = PV0i.z; +PV1i.x = clampFI32(PV1i.x); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); +PV1i.y = clampFI32(PV1i.y); +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367)); +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x)); +// 7 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y))); +PV1i.x = R127i.x; +R127i.y = PV0i.w; +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z)); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290)); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71)); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6)); +R126i.x = PV1i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0); +PS0i = R126i.x; +// 9 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000)); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +tempResultf = max(0.0, intBitsToFloat(PV1i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000)); +// 12 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +// 13 +R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z))); +PV1i.w = R123i.w; +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x)); +// 15 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.y)); +// 16 +backupReg0i = R2i.x; +backupReg1i = R2i.y; +backupReg2i = R2i.z; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg0i))); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg1i))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg2i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (intBitsToFloat(uf_remappedPS[2].y) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R3i.x))); +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.x))); +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y), intBitsToFloat(PV0i.x))); +// 2 +backupReg0i = R2i.x; +backupReg1i = R2i.y; +backupReg2i = R2i.z; +backupReg3i = R1i.w; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i))); +R1i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R127i.z = R1i.w; +R127i.z = clampFI32(R127i.z); +PV0i.z = R127i.z; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.z))); +PV1i.z = R123i.z; +R127i.w = ((intBitsToFloat(PV0i.z) > 0.0)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = R127i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R10i.x))); +PS1i = R122i.x; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R10i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R125i.z = ((PV1i.w == 0)?(R10i.x):(PS1i)); +PS0i = R125i.z; +// 3 +R127i.x = ((R127i.w == 0)?(R4i.x):(PV0i.w)); +PV1i.x = R127i.x; +R127i.y = ((R127i.w == 0)?(R10i.y):(PV0i.z)); +R126i.z = ((R127i.w == 0)?(R4i.z):(PV0i.x)); +PV1i.z = R126i.z; +R126i.w = ((R127i.w == 0)?(R4i.y):(PV0i.y)); +PV1i.w = R126i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R10i.z))); +PS1i = R122i.x; +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x)); +R126i.y = ((R127i.w == 0)?(R10i.z):(PS1i)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R3i.w))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z)); +// 5 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.w))); +R0i.z = ((R127i.w == 0)?(R3i.w):(PV0i.w)); +PV1i.z = R0i.z; +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.z))); +PS1i = R4i.z; +// 6 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.z))); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R127i.y))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y))); +PS0i = R6i.z; +// 7 +predResult = (1.0 > intBitsToFloat(uf_remappedPS[5].w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[5].w)) + 1.0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_remappedPS[6].x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedPS[6].x))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_remappedPS[6].x))); +PV0i.w = R1i.w; +// 1 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[9].z))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z))); +R0i.w = PV0i.z; +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) / 2.0); +R2i.x = PV0i.y; +R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) / 2.0); +PS1i = R2i.x; +} +if( activeMaskStackC[2] == true ) { +R1i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +R0i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbe19999a)); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[9].y))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R1i.x)) + intBitsToFloat(R0i.w))); +} +if( activeMaskStackC[2] == true ) { +R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.w; +R2i.z = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[5].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000))); +R2i.z = clampFI32(R2i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(R0i.x) * intBitsToFloat(0x3f969696)); +PV0i.w = clampFI32(PV0i.w); +tempResultf = max(0.0, intBitsToFloat(backupReg0i)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 1 +if( (intBitsToFloat(PV0i.w) > intBitsToFloat(R0i.w))) discard; +R0i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666)); +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.z = floatBitsToInt(exp2(intBitsToFloat(R0i.w))); +PS0i = R127i.z; +// 1 +R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS0i) + intBitsToFloat(0x3ee66666))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS0i) + intBitsToFloat(0x3e4ccccd))); +PV1i.y = R123i.y; +// 2 +backupReg0i = R4i.x; +backupReg1i = R4i.y; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg1i))); +R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0)); +PV0i.w = R123i.w; +// 3 +backupReg0i = R4i.z; +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(backupReg0i))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R0i.z))); +PV0i.x = R123i.x; +PV0i.y = ((intBitsToFloat(R5i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.z = ((intBitsToFloat(R6i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R127i.w = uf_remappedPS[7].z; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +R123i.x = ((PV0i.y == 0)?(0x3d008081):(0x3d20a0a1)); +PV1i.x = R123i.x; +R127i.y = ((PV0i.z == 0)?(0):(0x3f800000)); +PV1i.y = R127i.y; +R0i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + 0.5)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000)); +R0i.x = floatBitsToInt((intBitsToFloat(R5i.x) * 0.5 + 0.5)); +PS1i = R0i.x; +// 2 +PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R0i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 0.5 + 0.5)); +PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +R123i.w = ((R5i.z == 0)?(PV1i.x):(0x3d30b0b1)); +PV0i.w = R123i.w; +R2i.w = 0x3f800000; +PS0i = R2i.w; +// 3 +R1i.x = PV0i.w; +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0); +R123i.w = ((PV0i.x == 0)?(R5i.w):(R6i.w)); +PV1i.w = R123i.w; +R1i.y = R127i.w; +PS1i = R1i.y; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000)); +// 5 +R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081)); +PS1i = int(intBitsToFloat(PV0i.z)); +// 6 +PV0i.x = PS1i & 0x000000e0; +// 7 +PV1i.w = PV0i.x >> 0x00000003; +// 8 +PS0i = floatBitsToInt(float(PV1i.w)); +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42800000)); +// 10 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +// 11 +R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081))); +// 12 +backupReg0i = R4i.x; +backupReg1i = R4i.y; +backupReg2i = R4i.z; +R4i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R4i.w = R2i.w; +// 13 +R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R3i.w = R0i.w; +// 14 +R2i.xyz = ivec3(R6i.x,R6i.y,R6i.z); +R2i.w = R5i.w; +// 15 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +backupReg2i = R1i.z; +backupReg3i = R1i.w; +R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R1i.w = backupReg3i; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor1 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/cc51c2b5a4fce06c_00000078787f9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/cc51c2b5a4fce06c_00000078787f9249_ps.txt new file mode 100644 index 00000000..c4ed3090 --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/cc51c2b5a4fce06c_00000078787f9249_ps.txt @@ -0,0 +1,215 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + + +const vec3 Color = vec3($armorR,$armorG,$armorB); +const float Factor = $armorL_f; + +// Ancient Armor + +// shader cc51c2b5a4fce06c +#ifdef VULKAN +layout(set = 1, binding = 5) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +// uf_fragCoordScale was moved to the ufBlock +TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem7; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 4) in vec4 passParameterSem4; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 5) out vec4 passPixelColor5; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem7; +R3f = passParameterSem3; +R4f = passParameterSem4; +R5f.xy = (texture(textureUnitPS3, R0f.xy).xy); +R1f.w = (texture(textureUnitPS2, R0f.xy).x); +R1f.xyz = (texture(textureUnitPS4, R1f.xy).xyz); +R6f.xyz = (texture(textureUnitPS5, R0f.zw).xyz); +R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz); +// 0 +PV0f.x = fract(R2f.x); +R125f.y = (R5f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)); +PV0f.y = R125f.y; +R127f.z = mul_nonIEEE(R3f.y, R4f.z); +PV0f.w = fract(R2f.y); +R127f.x = mul_nonIEEE(R3f.z, R4f.x); +PS0f = R127f.x; +// 1 +R126f.x = (R5f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)); +PV1f.y = PV0f.w + -(0.5); +PV1f.z = PV0f.x + -(0.5); +PV1f.w = mul_nonIEEE(R3f.x, R4f.y); +R127f.y = mul_nonIEEE(PV0f.y, PV0f.y); +PS1f = R127f.y; +// 2 +backupReg0f = R127f.z; +R123f.x = (mul_nonIEEE(-(PV1f.z),PV1f.z) + 1.0); +R123f.x = clamp(R123f.x, 0.0, 1.0); +PV0f.x = R123f.x; +R126f.y = (mul_nonIEEE(-(R4f.z),R3f.x) + R127f.x); +R127f.z = (mul_nonIEEE(-(R4f.y),R3f.z) + backupReg0f); +R123f.w = (mul_nonIEEE(-(PV1f.y),PV1f.y) + 1.0); +R123f.w = clamp(R123f.w, 0.0, 1.0); +PV0f.w = R123f.w; +R127f.w = (mul_nonIEEE(-(R4f.x),R3f.y) + PV1f.w); +PS0f = R127f.w; +// 3 +R123f.x = (mul_nonIEEE(R126f.x,R126f.x) + R127f.y); +R123f.x = clamp(R123f.x, 0.0, 1.0); +PV1f.x = R123f.x; +PV1f.y = mul_nonIEEE(R4f.w, R126f.x); +PV1f.z = mul_nonIEEE(PV0f.x, PV0f.w); +R126f.w = mul_nonIEEE(Color.r, R1f.x); +R126f.x = mul_nonIEEE(Color.g, R1f.y); +PS1f = R126f.x; +// 4 +PV0f.x = mul_nonIEEE(R127f.z, PV1f.y); +PV0f.y = mul_nonIEEE(R126f.y, PV1f.y); +PV0f.z = mul_nonIEEE(R127f.w, PV1f.y); +PV0f.w = -(PV1f.x) + 1.0; +PS0f = mul_nonIEEE(PV1f.z, PV1f.z); +// 5 +R123f.x = (mul_nonIEEE(R4f.y,R125f.y) + PV0f.y); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R4f.x,R125f.y) + PV0f.x); +PV1f.y = R123f.y; +PV1f.z = mul_nonIEEE(R1f.w, PS0f); +R123f.w = (mul_nonIEEE(R4f.z,R125f.y) + PV0f.z); +PV1f.w = R123f.w; +PS1f = sqrt(PV0f.w); +// 6 +R127f.x = (mul_nonIEEE(R3f.x,PS1f) + PV1f.y); +PV0f.x = R127f.x; +R126f.y = (mul_nonIEEE(R3f.y,PS1f) + PV1f.x); +PV0f.y = R126f.y; +R126f.z = (mul_nonIEEE(R3f.z,PS1f) + PV1f.w); +PV0f.z = R126f.z; +PV0f.w = PV1f.z * intBitsToFloat(0x427f0000); +R127f.z = mul_nonIEEE(Color.b, R1f.z); +PS0f = R127f.z; +// 7 +tempf.x = dot(vec4(PV0f.x,PV0f.y,PV0f.z,-0.0),vec4(PV0f.x,PV0f.y,PV0f.z,0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R125f.y = floor(PV0f.w); +R125f.y *= 4.0; +PS1f = R125f.y; +// 8 +PV0f.x = mul_nonIEEE(R6f.z, R127f.z); +PV0f.y = mul_nonIEEE(R6f.y, R126f.x); +R127f.z = intBitsToFloat(0x3d008081); +PV0f.w = mul_nonIEEE(R6f.x, R126f.w); +tempResultf = 1.0 / sqrt(PV1f.x); +R127f.y = tempResultf; +R127f.y /= 2.0; +PS0f = R127f.y; +// 9 +R126f.x = R125f.y + 2.0; +R6f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.y); +R6f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.x); +PV1f.w = intBitsToFloat(uf_remappedPS[2].z); +R6f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.w); +PS1f = R6f.x; +// 10 +R3f.x = R127f.z; +R3f.y = PV1f.w; +R1f.z = (mul_nonIEEE(R126f.z,R127f.y) + 0.5); +R3f.w = 1.0; +R1f.x = (mul_nonIEEE(R127f.x,R127f.y) + 0.5); +PS0f = R1f.x; +// 11 +R1f.y = (mul_nonIEEE(R126f.y,R127f.y) + 0.5); +R6f.w = 1.0; +R1f.w = R126f.x * intBitsToFloat(0x3b808081); +PS1f = R1f.w; +// 12 +R0f.w = intBitsToFloat(0x3e828283); +// 13 +R7f.xyz = vec3(R6f.x,R6f.y,R6f.z); +R7f.w = R6f.w; +// 14 +R6f.xyz = vec3(R1f.x,R1f.y,R1f.z); +R6f.w = R1f.w; +// 15 +R5f.xyz = vec3(R0f.x,R0f.y,R0f.z); +R5f.w = R0f.w; +// 16 +R4f.xyz = vec3(R3f.x,R3f.y,R3f.z); +R4f.w = R3f.w; +// export +passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.w); +passPixelColor1 = vec4(R5f.x, R5f.y, R5f.z, R5f.w); +passPixelColor3 = vec4(R6f.x, R6f.y, R6f.z, R6f.w); +passPixelColor5 = vec4(R7f.x, R7f.y, R7f.z, R7f.w); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/f611e1b3827b5e13_0000079a492a9249_ps.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/f611e1b3827b5e13_0000079a492a9249_ps.txt new file mode 100644 index 00000000..08bd4593 --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/f611e1b3827b5e13_0000079a492a9249_ps.txt @@ -0,0 +1,1127 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +/* This shaders was auto-converted from OpenGL to Cemu. +Conversion output: +*/ + +#define wpnDefault $wpnDefault +const vec3 Color = vec3($wpnR,$wpnG,$wpnB); +const float Light = $wpnL; + +// Ancient weapons when Link is transparent + +// shader f611e1b3827b5e13 +#ifdef VULKAN +layout(set = 1, binding = 13) uniform ufBlock +{ +uniform vec4 uf_fragCoordScale; +}; +#else +uniform vec2 uf_fragCoordScale; +#endif +UNIFORM_BUFFER_LAYOUT(33, 1, 14) uniform uniformBlockPS1 +{ +vec4 uf_blockPS1[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(38, 1, 15) uniform uniformBlockPS6 +{ +vec4 uf_blockPS6[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(40, 1, 16) uniform uniformBlockPS8 +{ +vec4 uf_blockPS8[1024]; +}; + + +UNIFORM_BUFFER_LAYOUT(42, 1, 17) uniform uniformBlockPS10 +{ +vec4 uf_blockPS10[1024]; +}; + + +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2DArrayShadow textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4; +TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5; +TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6; +TEXTURE_LAYOUT(7, 1, 6) uniform sampler3D textureUnitPS7; +TEXTURE_LAYOUT(8, 1, 7) uniform sampler2DArray textureUnitPS8; +TEXTURE_LAYOUT(9, 1, 8) uniform sampler2D textureUnitPS9; +TEXTURE_LAYOUT(10, 1, 9) uniform sampler2D textureUnitPS10; +TEXTURE_LAYOUT(11, 1, 10) uniform sampler2D textureUnitPS11; +TEXTURE_LAYOUT(12, 1, 11) uniform sampler2D textureUnitPS12; +TEXTURE_LAYOUT(13, 1, 12) uniform sampler2D textureUnitPS13; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem5; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 0) out vec4 passPixelColor0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem4); +R3i = floatBitsToInt(passParameterSem5); +R4i = floatBitsToInt(passParameterSem7); +R5i = floatBitsToInt(passParameterSem8); +R6i = floatBitsToInt(passParameterSem9); +if( activeMaskStackC[1] == true ) { +R7i.xy = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R0i.xy)).xy); +R9i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R0i.xy)).xyz); +R8i.xy = floatBitsToInt(texture(textureUnitPS10, intBitsToFloat(R0i.xy)).xy); +R10i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R0i.zw)).xyz); +R12i.xyz = floatBitsToInt(texture(textureUnitPS9, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R3i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R3i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R3i.x))); +R126i.w = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV0i.w = R126i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R6i.w)); +// 1 +backupReg0i = R6i.x; +backupReg1i = R6i.y; +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS0i))); +R123i.z = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.y)),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.x))); +PS1i = R127i.x; +// 2 +backupReg0i = R127i.y; +backupReg1i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.w))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.x)),intBitsToFloat(R2i.y)) + intBitsToFloat(backupReg0i))); +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.z)),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg1i))); +R6i.w = floatBitsToInt(fract(intBitsToFloat(R5i.x))); +PS0i = R6i.w; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R125i.w; +// 4 +backupReg0i = R5i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y))); +R5i.y = floatBitsToInt(fract(intBitsToFloat(backupReg0i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R127i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.y))); +R5i.x = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +PS0i = R5i.x; +// 5 +backupReg0i = R3i.x; +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.w))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.x))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), uf_blockPS6[44].x)); +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.z))); +R3i.z = floatBitsToInt(sqrt(intBitsToFloat(R125i.w))); +PS1i = R3i.z; +} +if( activeMaskStackC[1] == true ) { +R13i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R6i.xy)).xy); +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.x))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R6i.w) + -(0.5)); +R6i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w)); +PS0i = R6i.x; +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(R5i.y) + -(0.5)); +R14i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w)); +R2i.z = floatBitsToInt(-(intBitsToFloat(R4i.z)) * intBitsToFloat(0x3d4ccccd)); +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(PV0i.w)) + 1.0)); +R126i.w = clampFI32(R126i.w); +R2i.x = PS0i; +PS1i = R2i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.w = tempi.x; +R11i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w)); +PS0i = R11i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(R127i.x)) + 1.0)); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R2i.y = PS0i; +R3i.z = 0; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R14i.y)),intBitsToFloat(R14i.y)) + 1.0)); +R7i.w = 0x3f800000; +PS1i = R7i.w; +// 4 +R15i.y = R13i.x; +R15i.y = clampFI32(R15i.y); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.x))); +R8i.w = 0; +R6i.w = R8i.y; +PS0i = R6i.w; +// 5 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R8i.y))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R5i.x)); +// 6 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PS1i))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PS1i))); +PV0i.y = R11i.y; +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PS1i))); +PV0i.z = R13i.z; +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PV1i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R125i.w)); +PS0i = floatBitsToInt(tempResultf); +// 7 +backupReg0i = R127i.y; +R13i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +R14i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R3i.z))); +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PS1i = R16i.y; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R13i.z),intBitsToFloat(PV1i.w),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.w)); +R127i.z = floatBitsToInt(tempResultf); +PS0i = R127i.z; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(R13i.x),intBitsToFloat(R16i.y),intBitsToFloat(R14i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y)); +PS1i = floatBitsToInt(tempResultf); +// 10 +R8i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0); +R8i.x = clampFI32(R8i.x); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(R11i.z))); +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(PS0i),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R14i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R15i.z = tempi.x; +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R126i.z))); +PS1i = R4i.w; +} +if( activeMaskStackC[1] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), uf_blockPS6[43].x)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),uf_blockPS6[44].y) + intBitsToFloat(R5i.z))); +// 1 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), uf_blockPS6[45].x)); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x))); +// 2 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),uf_blockPS6[45].y) + intBitsToFloat(PV1i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),uf_blockPS6[44].z) + intBitsToFloat(R127i.y))); + +#if (wpnDefault == 1) // Default section 3 + +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].y, intBitsToFloat(R9i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].x, intBitsToFloat(R9i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS8[23].z, intBitsToFloat(R9i.z))); + +#elif (wpnDefault == 0) // Modified section 3 + +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(Color.y, intBitsToFloat(R9i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(Color.x, intBitsToFloat(R9i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(Color.z, intBitsToFloat(R9i.z))); + +# endif + +// 4 +backupReg0i = R126i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PV1i.w))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), intBitsToFloat(PV1i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV1i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),uf_blockPS6[43].z) + intBitsToFloat(backupReg0i))); +PV0i.w = R123i.w; +R8i.y = floatBitsToInt(uf_blockPS6[44].w + intBitsToFloat(R127i.w)); +PS0i = R8i.y; +// 5 +R14i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(PV0i.w)); +R9i.y = PS0i; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),uf_blockPS6[45].z) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +// 6 +R16i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(PV1i.w)); +R2i.w = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R2i.z))); +R2i.w = clampFI32(R2i.w); +R6i.z = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R2i.z))); +R6i.z = clampFI32(R6i.z); +PS0i = R6i.z; +// 7 + +#if (wpnDefault == 1) // Default lines in section 7 + +R10i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].x, intBitsToFloat(R126i.z))); +R10i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].x, intBitsToFloat(R127i.y))); +R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS8[31].x, intBitsToFloat(R127i.x))); + +#elif (wpnDefault == 0) // Modified lines in section 7 + +R10i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(R126i.z))); +R10i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(R127i.y))); +R10i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(R127i.x))); + +#endif + +R2i.x = floatBitsToInt(fract(uf_blockPS8[36].w)); +PS1i = R2i.x; +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R9i.x = floatBitsToInt(uf_blockPS1[0].y); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R4i.z)), uf_blockPS1[17].y)); +// 1 +R17i.y = floatBitsToInt(uf_blockPS1[1].y); +R8i.z = floatBitsToInt(uf_blockPS1[2].y); +R9i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R9i.z; +// 2 +predResult = (intBitsToFloat(R2i.x) > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = floatBitsToInt(floor(uf_blockPS8[36].w)); +PV0i.z = R0i.z; +// 1 +R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitPS8, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R12i.x)) + intBitsToFloat(backupReg0i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R0i.z)); +// 1 +backupReg0i = R12i.x; +backupReg1i = R12i.y; +backupReg2i = R12i.z; +R12i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg0i))); +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg1i))); +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg2i))); +// 2 +R6i.w = R8i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (uf_blockPS8[33].w > 0.0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R0i.z = 0; +} +if( activeMaskStackC[2] == true ) { +R0i.w = floatBitsToInt(texture(textureUnitPS7, vec3(intBitsToFloat(R0i.z),intBitsToFloat(R0i.z),intBitsToFloat(R0i.z))).x); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R0i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(R12i.z) * intBitsToFloat(0x3dea4a8c)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R8i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS0i = R126i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV0i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666)); +R125i.z = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd))); +// 3 +backupReg0i = R127i.z; +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x40200000)); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a)); +R127i.w = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(backupReg0i) + intBitsToFloat(0x3eb33333))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 0.25); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(0x3e851eb8)); +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.x))); +PV1i.w = R123i.w; +R8i.w = 0x3e99999a; +PS1i = R8i.w; +// 6 +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x)); +R127i.y = clampFI32(R127i.y); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); +PV0i.w = clampFI32(PV0i.w); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R12i.x)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(PV0i.z)); +R127i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.z)); +PS1i = R127i.x; +// 8 +backupReg0i = R12i.x; +backupReg1i = R12i.y; +backupReg2i = R12i.z; +backupReg3i = R10i.x; +R12i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockPS8[33].w) + intBitsToFloat(backupReg0i))); +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),uf_blockPS8[33].w) + intBitsToFloat(backupReg1i))); +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),uf_blockPS8[33].w) + intBitsToFloat(backupReg2i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R127i.y)); +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockPS8[33].w) + intBitsToFloat(backupReg3i))); +PS0i = R10i.x; +// 9 +backupReg0i = R10i.y; +backupReg1i = R10i.z; +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),uf_blockPS8[33].w) + intBitsToFloat(backupReg0i))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockPS8[33].w) + intBitsToFloat(backupReg1i))); +// 10 +R9i.w = R7i.w; +// 11 +R6i.w = R7i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0); +// 1 +R17i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x)); +R17i.z = clampFI32(R17i.z); +// 2 +predResult = (1.0 > intBitsToFloat(R6i.z)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R127i.x = ((-(intBitsToFloat(R4i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0)); +R6i.y = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0x3ac49ba6))); +PV0i.w = ((-(intBitsToFloat(R4i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0)); +// 1 +PV1i.z = PV0i.w & int(1); +// 2 +PV0i.y = PV1i.z - R127i.x; +// 3 +PV1i.w = PV0i.y << 0x00000002; +PS1i = floatBitsToInt(float(PV0i.y)); +// 4 +R0i.x = PV1i.w + 0x0000002c; +R0i.y = PV1i.w + 0x0000002b; +R0i.z = PV1i.w + 0x0000002a; +R0i.w = PV1i.w + 0x0000002d; +R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i))); +PS0i = R7i.z; +} +if( activeMaskStackC[2] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw); +R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw); +R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw); +R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R3i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R2i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R5i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R0i.x))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +// 6 +R127i.z = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.w)); +PV0i.z = R127i.z; +// 7 +PV1i.y = ((intBitsToFloat(0x3727c5ac) > intBitsToFloat(PV0i.z))?int(0xFFFFFFFF):int(0x0)); +// 8 +R123i.y = ((PV1i.y == 0)?(R127i.z):(0x3727c5ac)); +PV0i.y = R123i.y; +// 9 +R7i.w = PV0i.y; +R7i.w = clampFI32(R7i.w); +} +if( activeMaskStackC[2] == true ) { +R7i.z = floatBitsToInt(texture(textureUnitPS1, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w)))); +} +if( activeMaskStackC[2] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R7i.z)) + 1.0); +// 1 +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R6i.z)) + intBitsToFloat(R7i.z))); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R0i.x = floatBitsToInt((intBitsToFloat(R14i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R0i.y = floatBitsToInt((intBitsToFloat(R16i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R6i.z = floatBitsToInt(-(intBitsToFloat(R4i.z)) * intBitsToFloat(0x3ba3d70a)); +PV0i.z = R6i.z; +R0i.w = 0x3f800000; +PV0i.w = R0i.w; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),uf_blockPS6[26].x) + -(uf_blockPS6[26].y))); +R127i.w = clampFI32(R127i.w); +PS0i = R127i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R9i.y),intBitsToFloat(R16i.z),intBitsToFloat(PV0i.w)),vec4(uf_blockPS1[37].x,uf_blockPS1[37].y,uf_blockPS1[37].z,uf_blockPS1[37].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.w = PV0i.z; +PS1i = R2i.w; +// 2 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R9i.y),intBitsToFloat(R16i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[35].x,uf_blockPS1[35].y,uf_blockPS1[35].z,uf_blockPS1[35].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 3 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R14i.x),intBitsToFloat(R9i.y),intBitsToFloat(R16i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockPS1[36].x,uf_blockPS1[36].y,uf_blockPS1[36].z,uf_blockPS1[36].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +PS1i = R2i.x; +// 4 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +R0i.z = floatBitsToInt(intBitsToFloat(R14i.x) * intBitsToFloat(0x3a83126f)); +R0i.w = floatBitsToInt(intBitsToFloat(R16i.z) * intBitsToFloat(0x3a83126f)); +PS0i = floatBitsToInt(intBitsToFloat(R15i.z) + -(intBitsToFloat(R4i.w))); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(PV0i.x)) + intBitsToFloat(R4i.w))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(-(uf_blockPS6[27].w) + 1.0); +R3i.z = floatBitsToInt((intBitsToFloat(R11i.x) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R6i.x)))); +R3i.w = floatBitsToInt((intBitsToFloat(R11i.y) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R14i.y)))); +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.z = floatBitsToInt(tempResultf); +PS1i = R127i.z; +// 6 +backupReg0i = R6i.x; +R6i.x = floatBitsToInt((intBitsToFloat(R13i.z) * intBitsToFloat(0xbe99999a) + -(intBitsToFloat(R11i.z)))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].y, intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), intBitsToFloat(0xbf7d70a4))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R4i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) * 1.5); +R6i.y = 0x3f19999a; +PS0i = R6i.y; +// 7 +R7i.x = ((intBitsToFloat(R6i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),uf_blockPS6[28].x) + -(uf_blockPS6[28].y))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R2i.z = floatBitsToInt(1.0); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + uf_blockPS6[27].w)/2.0); +PV0i.z = R123i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +tempResultf = max(0.0, intBitsToFloat(R8i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3ecccccd)); +R3i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt(max(intBitsToFloat(R12i.y), intBitsToFloat(R12i.z))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R9i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3f99999a)); +PV0i.z = clampFI32(PV0i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R5i.w = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +PS0i = R5i.w; +// 11 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.w))) + 1.0)); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.y))); +R7i.z = floatBitsToInt(max(intBitsToFloat(R12i.x), intBitsToFloat(R125i.w))); +R6i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[27].x, intBitsToFloat(R127i.z))); +tempResultf = max(0.0, intBitsToFloat(R126i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R8i.x = floatBitsToInt(tempResultf); +PS1i = R8i.x; +} +if( activeMaskStackC[1] == true ) { +R5i.xyz = floatBitsToInt(textureLod(textureUnitPS6, intBitsToFloat(R0i.xy),0.0).xyz); +R2i.y = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R2i.xy),intBitsToFloat(R2i.w)).x); +R2i.x = floatBitsToInt(textureLod(textureUnitPS4, intBitsToFloat(R0i.zw),0.0).x); +R0i.xyz = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.xy)).xyz); +} +if( activeMaskStackC[1] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.z),intBitsToFloat(R3i.w),intBitsToFloat(R6i.x),-0.0),vec4(intBitsToFloat(R3i.z),intBitsToFloat(R3i.w),intBitsToFloat(R6i.x),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = floatBitsToInt(intBitsToFloat(R2i.y) + uf_blockPS10[1].z); +R127i.y = clampFI32(R127i.y); +PS0i = R127i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R6i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R4i.w),intBitsToFloat(R6i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R126i.w = floatBitsToInt(tempResultf); +PS1i = R126i.w; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R125i.w = floatBitsToInt(tempResultf); +PS0i = R125i.w; +// 3 +backupReg0i = R126i.w; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R126i.w))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(R126i.w))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(backupReg0i))); +R126i.z = PS0i; +PS1i = R126i.z; +// 4 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(R125i.w))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R125i.w))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS10[3].z, intBitsToFloat(backupReg0i))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +PV0i.w = R125i.w; +R127i.w = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0))); +PS0i = R127i.w; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R16i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R127i.z),intBitsToFloat(R126i.w),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R7i.w) + -(intBitsToFloat(PV0i.w))); +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R16i.y),intBitsToFloat(R14i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(R17i.z)) + intBitsToFloat(R125i.w))); +PS0i = R122i.x; +// 7 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].x, intBitsToFloat(R8i.x))); +R127i.y = floatBitsToInt(min(intBitsToFloat(R12i.y), intBitsToFloat(R12i.z))); +R126i.z = floatBitsToInt(intBitsToFloat(PS0i) + uf_blockPS10[1].y); +R126i.z = clampFI32(R126i.z); +R123i.w = ((R7i.x == 0)?(R126i.w):(PV0i.x)); +PV1i.w = R123i.w; +R126i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(0x2edbe6ff)); +PS1i = R126i.w; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R17i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R13i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = max(0.0, intBitsToFloat(PV1i.w)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(0xbecccccd)); +R6i.y = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(0x41c80000) + intBitsToFloat(R8i.y))); +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x41400000)); +R127i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +tempResultf = max(0.0, intBitsToFloat(PV0i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 10 +R126i.x = R1i.w; +R126i.x = clampFI32(R126i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x41200000)); +PV0i.y = clampFI32(PV0i.y); +R126i.z = floatBitsToInt(min(intBitsToFloat(R12i.x), intBitsToFloat(R127i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockPS6[29].z, intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +PS0i = clampFI32(PS0i); +// 11 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV0i.y))); +PV1i.x = R4i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),uf_blockPS6[18].x) + uf_blockPS6[17].w)); +R125i.z = clampFI32(R125i.z); +R125i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x40200001)); +R125i.w = clampFI32(R125i.w); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + -(1.0)); +R127i.y = floatBitsToInt((mul_nonIEEE(-(uf_blockPS6[29].w),intBitsToFloat(PS1i)) + 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(0xbd4ccccd))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(0xbc23d70a))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R6i.w))); +// 13 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.x)) + 1.0)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x41a00000)); +PV1i.y = clampFI32(PV1i.y); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[27].z,-(intBitsToFloat(PS0i))) + uf_blockPS6[27].z)); +R4i.w = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R13i.y) + 1.0)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.x))); +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS1i)),intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(0x3dcccccd)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3df5c28f)); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x42480000)); +PV0i.w = clampFI32(PV0i.w); +R3i.z = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +PS0i = R3i.z; +// 15 +R127i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(PV0i.z))); +R127i.x = clampFI32(R127i.x); +R4i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(PS0i)) + 1.0)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockPS6[30].w)); +R127i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(0xbfe66666)); +tempResultf = max(0.0, intBitsToFloat(R7i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 16 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R4i.w))); +R126i.y = floatBitsToInt((intBitsToFloat(R9i.z) * intBitsToFloat(0x3dcccccd) + 1.0)); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f19999a)); +PV0i.w = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(0x3da3d70a)); +PV0i.w = clampFI32(PV0i.w); +tempResultf = max(0.0, intBitsToFloat(R125i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[18].y, intBitsToFloat(PS0i))); +R123i.y = floatBitsToInt((-(intBitsToFloat(R4i.y)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R127i.z = clampFI32(R127i.z); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.x))); +R5i.w = clampFI32(R5i.w); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 18 +R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PS1i)) + intBitsToFloat(PS1i))); +R7i.y = floatBitsToInt(-(intBitsToFloat(R6i.x)) + 1.0); +R6i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(0x42960000)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R4i.w))); +R6i.w = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +PS0i = R6i.w; +// 19 +R8i.x = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(0x2edbe6ff)); +R5i.y = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3f4ccccd)); +R4i.z = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3f4ccccd)); +R3i.w = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3f4ccccd)); +R2i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R127i.z))); +PS1i = R2i.y; +} +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(uf_blockPS6[4].x,uf_blockPS6[4].y,uf_blockPS6[4].z,-0.0),vec4(intBitsToFloat(R13i.x),intBitsToFloat(R16i.y),intBitsToFloat(R14i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R7i.y)) + intBitsToFloat(R7i.y))); +PS0i = R127i.w; +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(R4i.x)); +R126i.x = clampFI32(R126i.x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R6i.y)) + uf_blockPS6[52].x); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.w), uf_blockPS6[16].w)); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R5i.w)) + intBitsToFloat(R4i.y))); +R127i.x = clampFI32(R127i.x); +PS1i = R127i.x; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockPS6[15].x) + uf_blockPS6[14].w)); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R7i.x)) + intBitsToFloat(R7i.z))); +R125i.w = clampFI32(R125i.w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R8i.x)); +// 3 +backupReg0i = R127i.x; +PV1i.x = floatBitsToInt(uf_blockPS6[5].x + -(intBitsToFloat(R3i.w))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +PV1i.z = floatBitsToInt(uf_blockPS6[5].y + -(intBitsToFloat(R4i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockPS6[13].w)); +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PS1i = R127i.x; +// 4 +backupReg0i = R4i.z; +PV0i.x = floatBitsToInt(uf_blockPS6[5].z + -(intBitsToFloat(R5i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R4i.w))); +PV0i.y = R126i.y; +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R6i.z))); +PV0i.w = clampFI32(PV0i.w); +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(backupReg0i))); +PS0i = R3i.w; +// 5 +backupReg0i = R2i.x; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(R5i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R125i.w))); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + intBitsToFloat(R8i.w))); +R3i.z = clampFI32(R3i.z); +R125i.w = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +PS1i = R125i.z; +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.w))); +R126i.y = floatBitsToInt(intBitsToFloat(R12i.z) + -(intBitsToFloat(R7i.z))); +R127i.z = floatBitsToInt(intBitsToFloat(R12i.y) + -(intBitsToFloat(R7i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(R12i.x) + -(intBitsToFloat(R7i.z))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PS1i))); +PS0i = R125i.y; +// 7 +backupReg0i = R125i.w; +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].x, intBitsToFloat(PV0i.x))); +R124i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].z, intBitsToFloat(PV0i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[13].y, intBitsToFloat(PV0i.x))); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R15i.y)) + intBitsToFloat(R2i.y))); +PV1i.w = R125i.w; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(R7i.z))); +PS1i = R125i.x; +// 8 +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(R127i.y)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.w))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(R7i.z))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(backupReg0i)) + intBitsToFloat(R7i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV1i.w))); +PS0i = R126i.y; +// 9 +backupReg0i = R126i.x; +backupReg1i = R126i.z; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R125i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].x,intBitsToFloat(R125i.y)) + intBitsToFloat(backupReg0i))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].z,intBitsToFloat(R125i.y)) + intBitsToFloat(R124i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[16].y,intBitsToFloat(R125i.y)) + intBitsToFloat(backupReg1i))); +PV1i.w = R123i.w; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),-(intBitsToFloat(R0i.w))) + intBitsToFloat(R6i.x))); +PS1i = R125i.y; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(0xba0a8ec8))); +R0i.y = clampFI32(R0i.y); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(0xba0a8ec8))); +R0i.z = clampFI32(R0i.z); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.x)) + intBitsToFloat(0xba0a8ec8))); +R4i.w = clampFI32(R4i.w); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.w))); +PS0i = R122i.x; +// 11 +R7i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].y,intBitsToFloat(R0i.w)) + intBitsToFloat(PS0i))); +R2i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].x,intBitsToFloat(R0i.w)) + intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.z))); +PV1i.z = R123i.z; +R6i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.z))); +PV1i.w = R6i.w; +// 12 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +R2i.w = floatBitsToInt((mul_nonIEEE(uf_blockPS6[30].z,intBitsToFloat(R0i.w)) + intBitsToFloat(PV1i.z))); +// 13 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), intBitsToFloat(PV0i.y))); +PV1i.x = R6i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV0i.y))); +PV1i.y = R4i.y; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PV0i.y))); +PV1i.w = R5i.w; +// 14 +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) * intBitsToFloat(0x3fb8aa3b)); +R125i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) * intBitsToFloat(0x3fb8aa3b)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) * intBitsToFloat(0x3fb8aa3b)); +// 15 +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 16 +R0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.x))); +// 17 +R0i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R125i.y))); +// 18 +R7i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +} +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS10[2].w, intBitsToFloat(R3i.z))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), uf_blockPS10[0].x)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockPS10[0].y)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.x = R123i.x; +R125i.y = ((1.0 > uf_blockPS8[37].x)?int(0xFFFFFFFF):int(0x0)); +PV1i.y = R125i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), uf_blockPS10[0].z)); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.w; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R4i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(R1i.z))); +PV0i.y = R123i.y; +R125i.z = ((PV1i.y == 0)?(R4i.y):(backupReg0i)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.z))); +R125i.x = ((PV1i.y == 0)?(R6i.x):(backupReg1i)); +PS0i = R125i.x; +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R0i.y))); +R125i.w = ((R125i.y == 0)?(R5i.w):(R7i.z)); +R0i.w = floatBitsToInt(uf_blockPS8[37].x); +PS1i = R0i.w; +// 4 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R2i.y))); +PV0i.x = R127i.x; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.x))); +PV0i.w = R127i.w; +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) * 0.25); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) * 0.25); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(PV0i.z)) + intBitsToFloat(R2i.w))); +PV1i.z = R127i.z; +// 6 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3fb8aa3b)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3fb8aa3b)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * 0.25); +// 7 +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3fb8aa3b)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 4.0); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R126i.x))); +// 9 +R123i.x = ((R125i.y == 0)?(R127i.x):(PV0i.x)); +PV1i.x = R123i.x; +PV1i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R126i.z))); +// 10 +R0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R125i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +R123i.w = ((R125i.y == 0)?(R127i.w):(PV1i.w)); +PV0i.w = R123i.w; +// 11 +R0i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R125i.x)); +R123i.z = ((R125i.y == 0)?(R127i.z):(PV0i.z)); +PV1i.z = R123i.z; +// 12 +R0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R125i.w)); +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +} diff --git a/src/BreathOfTheWild/Mods/GlowingGuardianColor/rules.txt b/src/BreathOfTheWild/Mods/GlowingGuardianColor/rules.txt new file mode 100644 index 00000000..3fb91bcc --- /dev/null +++ b/src/BreathOfTheWild/Mods/GlowingGuardianColor/rules.txt @@ -0,0 +1,341 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Glowing Guardian Color +path = "The Legend of Zelda: Breath of the Wild/Mods/Glowing Guardian Color" +description = Changes the color of glowing lines on Ancient things.||Note: Half of the lines on ancient weapons are controlled by "Guardian, Stalker, Scout and Guardian Weapons", the other lines are controlled by "Guardian + Skywatcher". This can be used to make guardian weapons multiple colors.||Made by Kiri and Pig. +version = 6 + +[Default] +$armorR = 0.000 +$armorG = 0.000 +$armorB = 0.000 +$armorL_f = 2.0 +$wpnR = 0.000 +$wpnG = 0.000 +$wpnB = 0.000 +$wpnL = 40.0 +$wpnDefault:int = 0 +$gsswR = 0.000 +$gsswG = 0.000 +$gsswB = 0.000 +$gsswL_f = 1.0 +$gsswDefault:int = 0 +$dgrdR = 0.000 +$dgrdG = 0.000 +$dgrdB = 0.000 +$dgrdL_f = 1.0 +$grdskyR = 0.000 +$grdskyG = 0.000 +$grdskyB = 0.000 +$grdskyL_f = 1.0 +$grdskyDefault:int = 0 + +# Ancient Armor + +[Preset] +name = Malice Red +category = Ancient Armor +$armorR = 0.85 +$armorG = 0.029 +$armorB = 0.15 +$armorL_f = 1.0 + +[Preset] +name = Guardian Yellow +category = Ancient Armor +$armorR = 1.0 +$armorG = 0.2 +$armorB = 0.059 +$armorL_f = 2.0 + +[Preset] +name = Guardian weapon Yellow +category = Ancient Armor +$armorR = 1.0 +$armorG = 0.2 +$armorB = 0.0 +$armorL_f = 1.5 + +[Preset] +name = Ancient Orange (Default) +category = Ancient Armor +default = 1 +$armorR = 1.0 +$armorG = 0.2 +$armorB = 0.0006 +$armorL_f = 1.0 + +[Preset] +name = Ancient weapon Orange +category = Ancient Armor +$armorR = 1.0 +$armorG = 0.15 +$armorB = 0.05 +$armorL_f = 1.0 + +[Preset] +name = Energy Blue +category = Ancient Armor +$armorR = 0.03 +$armorG = 0.25 +$armorB = 1.0 +$armorL_f = 2.0 + +[Preset] +name = Custom (Edit in rules.txt) +category = Ancient Armor +$armorR = 0.000 +$armorG = 0.000 +$armorB = 0.000 +$armorL_f = 2.0 # Brightness scaling factor + +# Ancient Weapons + +[Preset] +name = Malice Red +category = Ancient Weapons +$wpnR = 0.85 +$wpnG = 0.029 +$wpnB = 0.15 +$wpnL = 20.0 + +[Preset] +name = Guardian Yellow +category = Ancient Weapons +$wpnR = 1.0 +$wpnG = 0.2 +$wpnB = 0.059 +$wpnL = 40.0 + +[Preset] +name = Guardian weapon Yellow +category = Ancient Weapons +$wpnR = 1.0 +$wpnG = 0.2 +$wpnB = 0.0 +$wpnL = 29.576 + +[Preset] +name = Ancient Orange +category = Ancient Weapons +$wpnR = 1.0 +$wpnG = 0.2 +$wpnB = 0.0006 +$wpnL = 11.525 + +[Preset] +name = Ancient weapon Orange +category = Ancient Weapons +$wpnR = 1.0 +$wpnG = 0.15 +$wpnB = 0.05 +$wpnL = 20.0 + +[Preset] +name = Energy Blue +category = Ancient Weapons +$wpnR = 0.03 +$wpnG = 0.25 +$wpnB = 1.0 +$wpnL = 40.0 + +[Preset] +name = Varied (Default) +category = Ancient Weapons +default = 1 +$wpnDefault:int = 1 + +[Preset] +name = Custom (Edit in rules.txt) +category = Ancient Weapons +$wpnR = 0.000 +$wpnG = 0.000 +$wpnB = 0.000 +$wpnL = 40.0 # Brightness, can't scale because original unnormalized color use L=1 + +# Decayed Guardian + +[Preset] +name = Malice Red (Default) +category = Decayed Guardian +default = 1 +$dgrdR = 0.85 +$dgrdG = 0.029 +$dgrdB = 0.15 +$dgrdL_f = 1.0 + +[Preset] +name = Guardian Yellow +category = Decayed Guardian +$dgrdR = 1.0 +$dgrdG = 0.2 +$dgrdB = 0.059 +$dgrdL_f = 1.0 + +[Preset] +name = Guardian weapon Yellow +category = Decayed Guardian +$dgrdR = 1.0 +$dgrdG = 0.2 +$dgrdB = 0.0 +$dgrdL_f = 1.0 + +[Preset] +name = Ancient Orange +category = Decayed Guardian +$dgrdR = 1.0 +$dgrdG = 0.2 +$dgrdB = 0.0006 +$dgrdL_f = 1.0 + +[Preset] +name = Ancient weapon Orange +category = Decayed Guardian +$dgrdR = 1.0 +$dgrdG = 0.15 +$dgrdB = 0.05 +$dgrdL_f = 1.0 + +[Preset] +name = Energy Blue +category = Decayed Guardian +$dgrdR = 0.03 +$dgrdG = 0.25 +$dgrdB = 1.0 +$dgrdL_f = 1.0 + +[Preset] +name = Custom (Edit in rules.txt) +category = Decayed Guardian +$dgrdR = 0.000 +$dgrdG = 0.000 +$dgrdB = 0.000 +$dgrdL_f = 1.0 + +# Guardian, Stalker, Scout and Weapons + +[Preset] +name = Malice Red +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 0.85 +$gsswG = 0.029 +$gsswB = 0.15 +$gsswL_f = 1.0 + +[Preset] +name = Guardian Yellow +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 1.0 +$gsswG = 0.2 +$gsswB = 0.059 +$gsswL_f = 1.0 + +[Preset] +name = Guardian weapon Yellow +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 1.0 +$gsswG = 0.2 +$gsswB = 0.0 +$gsswL_f = 1.0 + +[Preset] +name = Ancient Orange +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 1.0 +$gsswG = 0.2 +$gsswB = 0.0006 +$gsswL_f = 1.0 + +[Preset] +name = Ancient weapon Orange +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 1.0 +$gsswG = 0.15 +$gsswB = 0.05 +$gsswL_f = 1.0 + +[Preset] +name = Energy Blue +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 0.03 +$gsswG = 0.25 +$gsswB = 1.0 +$gsswL_f = 1.0 + +[Preset] +name = Varied (Default) +category = Guardian, Stalker, Scout and Guardian Weapons +default = 1 +$gsswDefault:int = 1 + +[Preset] +name = Custom (Edit in rules.txt) +category = Guardian, Stalker, Scout and Guardian Weapons +$gsswR = 0.000 +$gsswG = 0.000 +$gsswB = 0.000 +$gsswL_f = 1.0 + +# Guardian + Skywatcher + +[Preset] +name = Malice Red +category = Guardian + Skywatcher +$grdskyR = 0.85 +$grdskyG = 0.029 +$grdskyB = 0.15 +$grdskyL_f = 1.0 + +[Preset] +name = Guardian Yellow +category = Guardian + Skywatcher +$grdskyR = 1.0 +$grdskyG = 0.2 +$grdskyB = 0.059 +$grdskyL_f = 1.0 + +[Preset] +name = Guardian weapon Yellow +category = Guardian + Skywatcher +$grdskyR = 1.0 +$grdskyG = 0.2 +$grdskyB = 0.0 +$grdskyL_f = 1.0 + +[Preset] +name = Ancient Orange +category = Guardian + Skywatcher +$grdskyR = 1.0 +$grdskyG = 0.2 +$grdskyB = 0.0006 +$grdskyL_f = 1.0 + +[Preset] +name = Ancient weapon Orange +category = Guardian + Skywatcher +$grdskyR = 1.0 +$grdskyG = 0.15 +$grdskyB = 0.05 +$grdskyL_f = 1.0 + +[Preset] +name = Energy Blue +category = Guardian + Skywatcher +$grdskyR = 0.03 +$grdskyG = 0.25 +$grdskyB = 1.0 +$grdskyL_f = 1.0 + +[Preset] +name = Varied (Default) +category = Guardian + Skywatcher +default = 1 +$grdskyDefault:int = 1 + +[Preset] +name = Custom (Edit in rules.txt) +category = Guardian + Skywatcher +$grdskyR = 0.000 +$grdskyG = 0.000 +$grdskyB = 0.000 +$grdskyL_f = 1.0 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/HUDElements/0146fb9ee9ac3d18_00000000000003c9_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/0146fb9ee9ac3d18_00000000000003c9_ps.txt new file mode 100644 index 00000000..5e9d2535 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/0146fb9ee9ac3d18_00000000000003c9_ps.txt @@ -0,0 +1,150 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 0146fb9ee9ac3d18 +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem1); +if( activeMaskStackC[1] == true ) { +R3i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +} +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R1i.w = uf_remappedPS[0].x & 0x0000001f; +R2i.w = 0x3f800000; +PS0i = R2i.w; +// 1 +predResult = (R1i.w >= 0x0000000e); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedPS[1].x),intBitsToFloat(uf_remappedPS[1].y),intBitsToFloat(uf_remappedPS[1].z),intBitsToFloat(uf_remappedPS[1].w)))); +PV0i.x = R1i.x; +PV0i.y = R1i.x; +PV0i.z = R1i.x; +PV0i.w = R1i.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),intBitsToFloat(uf_remappedPS[2].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.y = tempi.x; +R1i.x = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PV0i.x)); +PS1i = R1i.x; +// 2 +R1i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV1i.x)); +} +if( activeMaskStackC[2] == true ) { +R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); +} +if( activeMaskStackC[2] == true ) { +// 0 +backupReg0i = R1i.w; +R1i.w = floatBitsToInt(min(intBitsToFloat(R3i.w), intBitsToFloat(backupReg0i))); +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).xyzw); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(uf_remappedPS[4].y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(uf_remappedPS[4].x))); +PV0i.w = R123i.w; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(uf_remappedPS[4].w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(uf_remappedPS[4].z))); +PV1i.y = R123i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.w))); +PS1i = R1i.x; +// 2 +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R127i.z))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); +} + +#if ($hideCameraGUI == 1) +// export +passPixelColor0 = vec4(0.0); +#else +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +#endif + +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/095e8026b6719c09_00000000000003c9_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/095e8026b6719c09_00000000000003c9_ps.txt new file mode 100644 index 00000000..e49f2e96 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/095e8026b6719c09_00000000000003c9_ps.txt @@ -0,0 +1,107 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 095e8026b6719c09 +// Used for: Hiding stamina bar animation bar + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R0i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R1i.w))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R1i.w)) + 1.0); +R127i.z = uf_remappedPS[0].x & 0x00000080; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R1i.w))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R1i.w))); +// 1 +backupReg0i = R0i.y; +backupReg1i = R0i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(min(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV0i.y)) + intBitsToFloat(PS0i))); +PS1i = R127i.w; +// 2 +R123i.x = ((R127i.z == 0)?(PV1i.z):(PV1i.y)); +PV0i.x = R123i.x; +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(uf_remappedPS[2].y))); +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(uf_remappedPS[2].x))); +PS0i = R0i.x; +// 3 +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(uf_remappedPS[2].z))); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[2].w))); + + +#if ($hideStamina == 1) +// Hide stamina red bar transition +if (textureSize(textureUnitPS0, 0).xy == ivec2(80, 80) && texelFetch(textureUnitPS0, ivec2(7, 30), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(18, 7), 0) == vec4(1.0,1.0,1.0,0.0) && (texelFetch(textureUnitPS0, ivec2(18, 8), 0).xyzw).w > 0.0) { + R0i.xyzw = ivec4(0); +} + +// Hide stamina red bar transition +if (textureSize(textureUnitPS0, 0).xy == ivec2(70, 70) && texelFetch(textureUnitPS0, ivec2(16, 6), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(21, 57), 0) == vec4(1.0,1.0,1.0,0.0) && (texelFetch(textureUnitPS0, ivec2(21, 58), 0).xyzw).w > 0.0) { + R0i.xyzw = ivec4(0); +} +#endif + +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/370f7b0e19ce8a61_0000000000001e49_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/370f7b0e19ce8a61_0000000000001e49_ps.txt new file mode 100644 index 00000000..c7979e31 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/370f7b0e19ce8a61_0000000000001e49_ps.txt @@ -0,0 +1,118 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 370f7b0e19ce8a61 +// Used for: Hiding quarter gray hearts + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R3i = floatBitsToInt(passParameterSem3); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); +R2i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.xy)).xyzw); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.xy)).xyzw); +// 0 +PV0i.x = floatBitsToInt(max(intBitsToFloat(R1i.w), intBitsToFloat(R2i.w))); +PV0i.y = uf_remappedPS[0].x & 0x00000080; +PV0i.z = floatBitsToInt(min(intBitsToFloat(R1i.w), intBitsToFloat(R2i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.x))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R2i.y))); +// 1 +R127i.x = uf_remappedPS[0].x & 0x00008000; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R3i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R2i.z))); +R123i.w = ((PV0i.y == 0)?(PV0i.x):(PV0i.z)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R3i.y))); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(uf_remappedPS[2].x))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.w))); +PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(uf_remappedPS[2].y))); +PS0i = R127i.z; +// 3 +R123i.x = ((R127i.x == 0)?(PV0i.z):(PV0i.y)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(uf_remappedPS[2].z))); +PV1i.y = R123i.y; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.x))); +PS1i = R3i.x; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[2].w))); +PV0i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R127i.z))); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +// 5 +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.x))); +// export + +#if ($hideHearts == 1) +// Remove quarter hearts +if (texelFetch(textureUnitPS0, ivec2(18, 23), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(26, 22), 0) == vec4(1.0,1.0,1.0,0.0)) { + R3i.xyzw = ivec4(0.0); +} +#endif + +passPixelColor0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/404eca0f0a6f54f0_0000000000001e49_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/404eca0f0a6f54f0_0000000000001e49_ps.txt new file mode 100644 index 00000000..7e110aae --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/404eca0f0a6f54f0_0000000000001e49_ps.txt @@ -0,0 +1,110 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 404eca0f0a6f54f0 +// Used for: Hiding quarter red hearts + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R0i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +R2i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.xy)).xyzw); +// 0 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +PV0i.x = floatBitsToInt(max(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +PV0i.y = uf_remappedPS[0].x & 0x00000080; +PV0i.z = floatBitsToInt(min(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.x))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R1i.y))); +// 1 +backupReg0i = R0i.z; +R127i.x = uf_remappedPS[0].x & 0x00008000; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R2i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.z))); +R123i.w = ((PV0i.y == 0)?(PV0i.x):(PV0i.z)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R2i.y))); +// 2 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(uf_remappedPS[2].x))); +PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.w))); +PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R2i.z))); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(uf_remappedPS[2].y))); +PS0i = R2i.y; +// 3 +R123i.x = ((R127i.x == 0)?(PV0i.z):(PV0i.y)); +PV1i.x = R123i.x; +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(uf_remappedPS[2].z))); +// 4 +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[2].w))); +// export + +#if ($hideHearts == 1) +// Remove quarter hearts +if (texelFetch(textureUnitPS0, ivec2(18, 23), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(26, 22), 0) == vec4(1.0,1.0,1.0,0.0)) { + R2i.xyzw = ivec4(0.0); +} +#endif + + +passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/47db0898f798fd1b_0000000000001e49_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/47db0898f798fd1b_0000000000001e49_ps.txt new file mode 100644 index 00000000..2b1ef1dc --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/47db0898f798fd1b_0000000000001e49_ps.txt @@ -0,0 +1,174 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 47db0898f798fd1b +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem1; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem1); +R3i = floatBitsToInt(passParameterSem3); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +R5i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.xy)).xyzw); +// 0 +R1i.xyz = floatBitsToInt(vec3(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R5i.y)),-(intBitsToFloat(R5i.z))) + vec3(1.0,1.0,1.0)); +R127i.w = 0x3f800000; +PV0i.w = R127i.w; +R1i.w = uf_remappedPS[0].x & 0x00008000; +PS0i = R1i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(PV0i.w)),vec4(intBitsToFloat(uf_remappedPS[1].x),intBitsToFloat(uf_remappedPS[1].y),intBitsToFloat(uf_remappedPS[1].z),intBitsToFloat(uf_remappedPS[1].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),intBitsToFloat(uf_remappedPS[2].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PV1i.x)); +PS0i = R3i.x; +// 3 +R3i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV0i.x)); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R3i.xy)).xyzw); +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R3i.x)) + 1.0); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = R3i.y; +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = R3i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R3i.y)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +R127i.x = R3i.z; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +PS0i = R127i.x; +// 1 +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.x)),intBitsToFloat(PV0i.x)) + 1.0)); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.y)),intBitsToFloat(PV0i.w)) + 1.0)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PV0i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(-(intBitsToFloat(R3i.z)) + 1.0); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 2 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(min(intBitsToFloat(R4i.w), intBitsToFloat(R3i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(backupReg0i))); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.z)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = ((0.5 > intBitsToFloat(R3i.x))?int(0xFFFFFFFF):int(0x0)); +R126i.z = ((0.5 > intBitsToFloat(R3i.y))?int(0xFFFFFFFF):int(0x0)); +PS0i = R126i.z; +// 3 +backupReg0i = R127i.y; +R123i.x = ((PV0i.w == 0)?(R126i.x):(R127i.w)); +PV1i.x = R123i.x; +R127i.y = ((0.5 > intBitsToFloat(R3i.z))?int(0xFFFFFFFF):int(0x0)); +PV1i.z = backupReg0i; +PV1i.w = R127i.z; +R127i.w = PV0i.y; +PS1i = R127i.w; +// 4 +R123i.x = ((R126i.z == 0)?(PV1i.z):(PV1i.w)); +PV0i.x = R123i.x; +R123i.y = ((R126i.z == 0)?(PV1i.x):(PV1i.x)); +PV0i.y = R123i.y; +PV0i.z = R125i.z; +PV0i.w = floatBitsToInt(max(intBitsToFloat(R127i.x), intBitsToFloat(R5i.w))); +PS0i = floatBitsToInt(min(intBitsToFloat(R127i.x), intBitsToFloat(R5i.w))); +// 5 +backupReg0i = R127i.w; +R127i.x = ((R1i.w == 0)?(PV0i.w):(PS0i)); +R123i.y = ((R127i.y == 0)?(PV0i.y):(PV0i.y)); +PV1i.y = R123i.y; +R123i.z = ((R127i.y == 0)?(PV0i.x):(PV0i.x)); +PV1i.z = R123i.z; +R127i.w = ((R127i.y == 0)?(PV0i.z):(backupReg0i)); +// 6 +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(uf_remappedPS[4].y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(uf_remappedPS[4].x))); +PV0i.w = R123i.w; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(uf_remappedPS[4].w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(uf_remappedPS[4].z))); +PV1i.y = R123i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.w))); +PS1i = R1i.x; +// 8 +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R126i.z))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); + + +#if ($hideCameraGUI == 1) +// Disable stripes +if (textureSize(textureUnitPS2, 0).xy == ivec2(13, 305) && texelFetch(textureUnitPS2, ivec2(11, 8), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(7, 11), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS2, ivec2(3, 139), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(7, 284), 0) == vec4(1.0,1.0,1.0,0.0)) { + R1i.xyzw = ivec4(0); +} +#endif + +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/569ebe93f1ae5799_0000000000000079_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/569ebe93f1ae5799_0000000000000079_ps.txt new file mode 100644 index 00000000..df65e718 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/569ebe93f1ae5799_0000000000000079_ps.txt @@ -0,0 +1,126 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 569ebe93f1ae5799 +// Used for: Hiding text blur used in subtitles and full hearts + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +// 0 +R1f.x = (mul_nonIEEE(R0f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)); +R1f.y = (mul_nonIEEE(R0f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)); +// 1 +R1f.z = (mul_nonIEEE(R0f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)); +R1f.w = (mul_nonIEEE(R0f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w)); +// export + +#if ($hideSubtitles == 1) +// Hide subtitle background blur +if (textureSize(textureUnitPS0, 0).xy == ivec2(175, 38)) { + R1f.xyzw = vec4(0.0); +} +#endif + +#if ($hideHearts == 1) +// Hide red full hearts +if (textureSize(textureUnitPS0, 0).xy == ivec2(48, 48) && texelFetch(textureUnitPS0, ivec2(30, 15), 0) == vec4(0.0,0.0,0.0,1.0) && texelFetch(textureUnitPS0, ivec2(23, 15), 0) == vec4(0.0,0.0,0.0,0.0)) { + R1f.xyzw = ivec4(0.0); +} +#endif + +#if ($hideMasterModeIcon == 1) +// Hide master mode icon +if (textureSize(textureUnitPS0, 0).xy == ivec2(36, 36) && texelFetch(textureUnitPS0, ivec2(12, 18), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(12, 17), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(4, 30), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1f.xyzw = ivec4(0.0); +} +#endif + +#if ($hideCameraGUI == 1) +// Hide vignette borders in camera view +if (textureSize(textureUnitPS0, 0).xy == ivec2(242, 162)) { + R1f.xyzw = ivec4(0.0); +} + +// Hide camera zooming triangle +if (textureSize(textureUnitPS0, 0).xy == ivec2(75, 75) && texelFetch(textureUnitPS0, ivec2(55, 39), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(47, 44), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(32, 21), 0) == vec4(1.0,1.0,1.0,0.0)) { + R1f.xyzw = ivec4(0.0); +} + +// Hide camera zooming bar +if (textureSize(textureUnitPS0, 0).xy == ivec2(8, 8) && texelFetch(textureUnitPS0, ivec2(7, 3), 0) == vec4(1.0,1.0,1.0,1.0) && uf_remappedPS[1].w == 0 && R1f.y >= 0.49700 && R1f.y <= 0.49900) { + R1f.xyzw = ivec4(0.0); +} + +// Hides the actual colored camera rune textures +if (textureSize(textureUnitPS0, 0).xy == ivec2(79, 187) && texelFetch(textureUnitPS0, ivec2(24, 62), 0) == vec4(0.0,0.0,0.0,0.0) && (texelFetch(textureUnitPS0, ivec2(33, 92), 0).xyzw).zw == vec2(0.125, 1.0)) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(88, 77) && texelFetch(textureUnitPS0, ivec2(24, 40), 0) == vec4(0.0,0.0,0.0,0.0) && (texelFetch(textureUnitPS0, ivec2(36, 31), 0).xyzw).yw == vec2(0.125, 1.0) && (texelFetch(textureUnitPS0, ivec2(68, 17), 0).xyzw).xw == vec2(0.25, 1.0)) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(151, 139) && texelFetch(textureUnitPS0, ivec2(26, 29), 0) == vec4(0.0,0.0,0.0,0.0) && (texelFetch(textureUnitPS0, ivec2(28, 77), 0).xyzw).yw == vec2(0.1875, 1.0) && (texelFetch(textureUnitPS0, ivec2(95, 22), 0).xyzw).xw == vec2(0.125, 1.0)) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(57, 171) && texelFetch(textureUnitPS0, ivec2(30, 11), 0) == vec4(0.0,0.0,0.0,0.0) && (texelFetch(textureUnitPS0, ivec2(26, 94), 0).xyzw).xw == vec2(0.25, 1.0) && (texelFetch(textureUnitPS0, ivec2(46, 99), 0).xyzw).xw == vec2(0.125, 1.0)) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(97, 156) && texelFetch(textureUnitPS0, ivec2(34, 100), 0) == vec4(0.0,0.0,0.0,0.0) && (texelFetch(textureUnitPS0, ivec2(40, 103), 0).xyzw).xw == vec2(0.125, 1.0) && (texelFetch(textureUnitPS0, ivec2(66, 94), 0).xyzw).xw == vec2(0.125, 1.0)) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(96, 69) && texelFetch(textureUnitPS0, ivec2(18, 52), 0) == vec4(0.0,0.0,0.0,0.0) && (texelFetch(textureUnitPS0, ivec2(86, 33), 0).xyzw).xw == vec2(0.25, 1.0) && (texelFetch(textureUnitPS0, ivec2(16, 66), 0).xyzw).xw == vec2(0.125, 1.0)) { + R1f.xyzw = ivec4(0.0); +} +#endif + +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/6f80e45a75b89148_0000000000001e49_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/6f80e45a75b89148_0000000000001e49_ps.txt new file mode 100644 index 00000000..ac273aa0 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/6f80e45a75b89148_0000000000001e49_ps.txt @@ -0,0 +1,149 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 6f80e45a75b89148 +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem1; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem1); +R3i = floatBitsToInt(passParameterSem3); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.xy)).xyzw); +// 0 +R2i.z = uf_remappedPS[0].x & 0x00008000; +R127i.w = 0x3f800000; +PV0i.w = R127i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(PV0i.w)),vec4(intBitsToFloat(uf_remappedPS[1].x),intBitsToFloat(uf_remappedPS[1].y),intBitsToFloat(uf_remappedPS[1].z),intBitsToFloat(uf_remappedPS[1].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),intBitsToFloat(uf_remappedPS[2].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PV1i.x)); +PS0i = R3i.x; +// 3 +R3i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV0i.x)); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R3i.xy)).xyzw); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R4i.w)) + intBitsToFloat(R3i.z))); +PV0i.w = floatBitsToInt(min(intBitsToFloat(R1i.w), intBitsToFloat(R3i.w))); +// 1 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(uf_remappedPS[4].y))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.w), intBitsToFloat(R4i.w))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), intBitsToFloat(R4i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(uf_remappedPS[4].x))); +PV1i.w = R123i.w; +// 2 +R123i.x = ((R2i.z == 0)?(PV1i.z):(PV1i.y)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(uf_remappedPS[4].z))); +PV0i.y = R123i.y; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.w))); +PS0i = R2i.x; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(uf_remappedPS[4].w))); +PV1i.x = R123i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R127i.x))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.y))); +// 4 +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); + + +#if ($hideCameraGUI == 1) +// Hide left top glowy background +if (textureSize(textureUnitPS2, 0).xy == ivec2(144, 199) && texelFetch(textureUnitPS2, ivec2(91, 86), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(28, 154), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(32, 97), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS2, ivec2(124, 41), 0) == vec4(1.0,1.0,1.0,1.0)) { + R2i.xyzw = ivec4(0); +} + +// Hide top right glowy background +if (textureSize(textureUnitPS2, 0).xy == ivec2(157, 148) && texelFetch(textureUnitPS2, ivec2(132, 19), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(110, 26), 0) == vec4(1.0,1.0,1.0,1.0)) { + R2i.xyzw = ivec4(0); +} + +// Hide top right-center glowy background +if (textureSize(textureUnitPS2, 0).xy == ivec2(68, 174) && texelFetch(textureUnitPS2, ivec2(13, 34), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(25, 61), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS2, ivec2(19, 108), 0) == vec4(1.0,1.0,1.0,0.0)) { + R2i.xyzw = ivec4(0); +} + +// Hide bottom right glowy background +if (textureSize(textureUnitPS2, 0).xy == ivec2(101, 168) && texelFetch(textureUnitPS2, ivec2(45, 30), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(97, 12), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(53, 52), 0) == vec4(1.0,1.0,1.0,1.0)) { + R2i.xyzw = ivec4(0); +} + +// Hide bottom left glowy background +if (textureSize(textureUnitPS2, 0).xy == ivec2(97, 80) && texelFetch(textureUnitPS2, ivec2(93, 9), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS2, ivec2(61, 24), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS2, ivec2(46, 1), 0) == vec4(1.0,1.0,1.0,0.0)) { + R2i.xyzw = ivec4(0); +} +#endif + +// export +passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/7751959c9083eebb_000000000000007d_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/7751959c9083eebb_000000000000007d_ps.txt new file mode 100644 index 00000000..2f9a10c3 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/7751959c9083eebb_000000000000007d_ps.txt @@ -0,0 +1,113 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 7751959c9083eebb +// Used for: Hiding subtitle text (some other text is also affected) + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +// 0 +backupReg0i = R1i.z; +R2i.x = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i))); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).xyzw); +// 0 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R123i.w; +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[0].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(uf_remappedPS[3].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(uf_remappedPS[3].x))); +PV0i.w = R123i.w; +// 3 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[2].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(uf_remappedPS[3].z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 4 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV1i.x))); +R0i.y = ((R2i.x == 0)?(PV1i.w):(R127i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R0i.x = ((R2i.x == 0)?(PV1i.z):(R127i.z)); +PS0i = R0i.x; +// 5 +R0i.z = ((R2i.x == 0)?(PV0i.z):(R127i.x)); +R0i.w = ((R2i.x == 0)?(PV0i.x):(R127i.y)); +// export + +#if ($hideSubtitles == 1) +if (textureSize(textureUnitPS0, 0) == ivec3(1024, 1024, 3)) { + R0i.xyzw = ivec4(0.0); +} +#endif + +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/901b0093b146535b_00000000000003c9_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/901b0093b146535b_00000000000003c9_ps.txt new file mode 100644 index 00000000..1e8a3a90 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/901b0093b146535b_00000000000003c9_ps.txt @@ -0,0 +1,158 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 901b0093b146535b +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 2) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).xyzw); +R2i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.xy)).xyzw); +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R2i.w))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +R127i.z = uf_remappedPS[0].x & 0x00000080; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R2i.w))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.w))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(min(intBitsToFloat(R1i.w), intBitsToFloat(R2i.w))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(R1i.w), intBitsToFloat(R2i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(PS0i))); +PS1i = R127i.w; +// 2 +R123i.x = ((R127i.z == 0)?(PV1i.z):(PV1i.y)); +PV0i.x = R123i.x; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(uf_remappedPS[2].y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(uf_remappedPS[2].x))); +PV0i.w = R123i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[2].w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(uf_remappedPS[2].z))); +PV1i.y = R123i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.w))); +PS1i = R1i.x; +// 4 +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R127i.z))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); + + +#if ($hideCameraGUI == 1) +// Hide left top glowy background +if (textureSize(textureUnitPS0, 0).xy == ivec2(144, 199) && texelFetch(textureUnitPS0, ivec2(28, 154), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(59, 102), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(8, 52), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(78, 2), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Hide left top glowy background +if (textureSize(textureUnitPS0, 0).xy == ivec2(135, 188) && texelFetch(textureUnitPS0, ivec2(28, 154), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(59, 102), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(8, 52), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(78, 2), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Hide top right glowy background +if (textureSize(textureUnitPS0, 0).xy == ivec2(148, 140) && texelFetch(textureUnitPS0, ivec2(44, 100), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(42, 100), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(78, 51), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(79, 51), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Hide top right-center glowy background +if (textureSize(textureUnitPS0, 0).xy == ivec2(58, 171) && texelFetch(textureUnitPS0, ivec2(31, 88), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(33, 83), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(5, 78), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Hide bottom right glowy background +if (textureSize(textureUnitPS0, 0).xy == ivec2(92, 157) && texelFetch(textureUnitPS0, ivec2(11, 130), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(87, 79), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(58, 4), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Hide bottom left glowy background +if (textureSize(textureUnitPS0, 0).xy == ivec2(90, 69) && texelFetch(textureUnitPS0, ivec2(37, 30), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(79, 3), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(29, 11), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Too bothered to actually go through all the work to make texture specific matches for another bloom layer, since I'm also not sure if this is even used. +R1i.xyzw = ivec4(0); + +#elif ($hideStamina == 1) +// Hide stamina red bar +//if (textureSize(textureUnitPS0, 0).xy == ivec2(70, 70) && texelFetch(textureUnitPS0, ivec2(13, 19), 0) == vec4(1.0,1.0,1.0,0.0) && (texelFetch(textureUnitPS0, ivec2(79, 3), 0).xyzw).w > 0.0 && texelFetch(textureUnitPS0, ivec2(3, 33), 0) == vec4(1.0,1.0,1.0,1.0)) { +// R1i.xyzw = ivec4(0); +//} + +// Hide stamina red bar +if (textureSize(textureUnitPS0, 0).xy == ivec2(80, 80) && texelFetch(textureUnitPS0, ivec2(6, 36), 0) == vec4(1.0,1.0,1.0,0.0) && (texelFetch(textureUnitPS0, ivec2(5, 36), 0).xyzw).w > 0.0 && texelFetch(textureUnitPS0, ivec2(26, 5), 0) == vec4(1.0,1.0,1.0,1.0)) { + R1i.xyzw = ivec4(0); +} + +// Hide stamina red bar +if (textureSize(textureUnitPS0, 0).xy == ivec2(70, 70) && texelFetch(textureUnitPS0, ivec2(18, 58), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS0, ivec2(18, 14), 0) == vec4(1.0,1.0,1.0,0.0) && (texelFetch(textureUnitPS0, ivec2(18, 13), 0).xyzw).w > 0.0) { + R1i.xyzw = ivec4(0); +} + +// Hide stamina red bar +if (textureSize(textureUnitPS0, 0).xy == ivec2(56, 56) && texelFetch(textureUnitPS0, ivec2(22, 21), 0) == vec4(1.0,1.0,1.0,0.0) && texelFetch(textureUnitPS0, ivec2(16, 52), 0) == vec4(1.0,1.0,1.0,0.0) && (texelFetch(textureUnitPS0, ivec2(16, 51), 0).xyzw).w > 0.0) { + R1i.xyzw = ivec4(0); +} + +#endif + +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/a15e2a77cef4c5e3_000000000000007d_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/a15e2a77cef4c5e3_000000000000007d_ps.txt new file mode 100644 index 00000000..8b4e36b5 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/a15e2a77cef4c5e3_000000000000007d_ps.txt @@ -0,0 +1,113 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader a15e2a77cef4c5e3 +// Used for: Hide a lot of the text, todo: still fix + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +// 0 +backupReg0i = R1i.z; +R2i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].y) + intBitsToFloat(uf_remappedPS[1].y)); +R2i.y = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i))); +R2i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].x) + intBitsToFloat(uf_remappedPS[1].x)); +R1i.w = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).w); +// 0 +backupReg0i = R0i.y; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R2i.w))); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[1].z)); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = ((intBitsToFloat(0x3f0a3d71) > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R2i.x))); +PS0i = R126i.w; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.y))); +R123i.y = ((PV0i.w == 0)?(PV0i.z):(0)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].y) + intBitsToFloat(uf_remappedPS[3].y)); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].x) + intBitsToFloat(uf_remappedPS[3].x)); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[3].w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[1].w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.z))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].z) + intBitsToFloat(uf_remappedPS[3].z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV0i.x))); +R1i.x = ((R2i.y == 0)?(PV0i.z):(R127i.x)); +PS1i = R1i.x; +// 4 +backupReg0i = R0i.z; +R1i.y = ((R2i.y == 0)?(R127i.w):(R126i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R1i.w = ((R2i.y == 0)?(PV1i.z):(PV1i.x)); +// 5 +R1i.z = ((R2i.y == 0)?(PV0i.z):(R126i.x)); + +#if ($hideCameraGUI == 1) +passPixelColor0 = vec4(0.0); +#else +// export +passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +#endif +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/cb83a22cf0961e1a_000000000000007d_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/cb83a22cf0961e1a_000000000000007d_ps.txt new file mode 100644 index 00000000..0092b13d --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/cb83a22cf0961e1a_000000000000007d_ps.txt @@ -0,0 +1,125 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader cb83a22cf0961e1a +// Used for: Hiding the zoom text from the camera GUI + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[4]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[4]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +// 0 +backupReg0i = R1i.z; +R2i.x = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i))); +R1i.w = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).w); +// 0 +PV0i.x = R1i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +PV0i.y = ((intBitsToFloat(0x3f0a3d71) > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 1 +R127i.y = ((PV0i.y == 0)?(0x3f800000):(PV0i.x)); +R127i.z = ((PV0i.y == 0)?(PV0i.w):(0)); +PV1i.z = R127i.z; +// 2 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R123i.w; +// 3 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[0].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 4 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(uf_remappedPS[3].y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(uf_remappedPS[3].x))); +PV0i.w = R123i.w; +// 5 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[2].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(uf_remappedPS[3].z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +// 6 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV1i.x))); +R0i.y = ((R2i.x == 0)?(PV1i.w):(R127i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R0i.x = ((R2i.x == 0)?(PV1i.z):(R126i.z)); +PS0i = R0i.x; +// 7 +R0i.z = ((R2i.x == 0)?(PV0i.z):(R127i.x)); +R0i.w = ((R2i.x == 0)?(PV0i.x):(R126i.y)); + +#if ($hideCameraGUI == 1) +// Hide ZOOM text +if (textureSize(textureUnitPS0, 0).xy == ivec2(1024, 1024)) { + R0i.xyzw = ivec4(0.0); +} +#endif + +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/ea64b5c97dff2d82_0000000000001e49_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/ea64b5c97dff2d82_0000000000001e49_ps.txt new file mode 100644 index 00000000..f2c79356 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/ea64b5c97dff2d82_0000000000001e49_ps.txt @@ -0,0 +1,138 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader ea64b5c97dff2d82 +// Used for: Hiding the glow around the borders of the image + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[5]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[5]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem1; +layout(location = 3) in vec4 passParameterSem3; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem1); +R3i = floatBitsToInt(passParameterSem3); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +R5i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R3i.xy)).xyzw); +// 0 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R5i.w))); +R4i.y = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0); +R4i.z = uf_remappedPS[0].x & 0x00008000; +R127i.w = 0x3f800000; +PV0i.w = R127i.w; +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(R5i.w))); +PS0i = R2i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(PV0i.w)),vec4(intBitsToFloat(uf_remappedPS[1].x),intBitsToFloat(uf_remappedPS[1].y),intBitsToFloat(uf_remappedPS[1].z),intBitsToFloat(uf_remappedPS[1].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.w))); +PS1i = R2i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R127i.w)),vec4(intBitsToFloat(uf_remappedPS[2].x),intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(uf_remappedPS[2].z),intBitsToFloat(uf_remappedPS[2].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.x = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PV1i.x)); +PS0i = R3i.x; +// 3 +R3i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV0i.x)); +R3i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R3i.xy)).xyzw); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(R2i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y)) + intBitsToFloat(R4i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R4i.y)) + intBitsToFloat(R2i.z))); +PV0i.w = floatBitsToInt(min(intBitsToFloat(R1i.w), intBitsToFloat(R3i.w))); +// 1 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(uf_remappedPS[4].y))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.w), intBitsToFloat(R5i.w))); +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.w), intBitsToFloat(R5i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(uf_remappedPS[4].x))); +PV1i.w = R123i.w; +// 2 +R123i.x = ((R4i.z == 0)?(PV1i.z):(PV1i.y)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(uf_remappedPS[4].z))); +PV0i.y = R123i.y; +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.w))); +PS0i = R4i.x; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(uf_remappedPS[4].w))); +PV1i.x = R123i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R127i.x))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.y))); +// 4 +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); + +#if ($hideCameraGUI == 1) +// Disable blue glow at the borders +if (textureSize(textureUnitPS0, 0).xy == ivec2(128, 128) && texelFetch(textureUnitPS0, ivec2(54, 37), 0) == vec4(0.0,0.0,0.0,0.0) && texelFetch(textureUnitPS0, ivec2(93, 93), 0) == vec4(0.0,0.0,0.0,0.0) && texelFetch(textureUnitPS2, ivec2(2, 62), 0) == vec4(1.0,1.0,1.0,1.0) && texelFetch(textureUnitPS2, ivec2(127, 62), 0) == vec4(1.0,1.0,1.0,0.0)) { + R4i.xyzw = ivec4(0); +} +#endif + +// export +passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/HUDElements/ededcf8bdc3384ef_0000000000000079_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/ededcf8bdc3384ef_0000000000000079_ps.txt new file mode 100644 index 00000000..4f9f9228 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/ededcf8bdc3384ef_0000000000000079_ps.txt @@ -0,0 +1,136 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader ededcf8bdc3384ef +// Used for: Hide empty heart icons and backdrops + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 1) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[2]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[2]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem1; +R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw); +// 0 +R127f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)); +R123f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)); +PV0f.w = R123f.w; +// 1 +R123f.x = (mul_nonIEEE(R1f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w)); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)); +PV1f.y = R123f.y; +R1f.x = mul_nonIEEE(R0f.x, PV0f.w); +PS1f = R1f.x; +// 2 +R1f.y = mul_nonIEEE(R0f.y, R127f.z); +R1f.z = mul_nonIEEE(R0f.z, PV1f.y); +R1f.w = mul_nonIEEE(R0f.w, PV1f.x); +// export + +#if ($hideHearts == 1) +// Check specific pixels of the input texture to match with that specific heart texture +if (texelFetch(textureUnitPS0, ivec2(24, 24), 0) == vec4(0.0,0.0,0.0,1.0) && texelFetch(textureUnitPS0, ivec2(0, 0), 0) == vec4(1.0,1.0,1.0,0.0)) { + R1f.xyzw = vec4(0.0); +} + +// Check specific pixels of the input texture to match with that specific heart backdrop texture +if (textureSize(textureUnitPS0, 0).xy == ivec2(48, 48) && +texelFetch(textureUnitPS0, ivec2(24, 24), 0) == vec4(1.0,1.0,1.0,1.0) && +texelFetch(textureUnitPS0, ivec2(24, 10), 0) == vec4(1.0,1.0,1.0,0.0) && +texelFetch(textureUnitPS0, ivec2(17, 28), 0) == vec4(1.0,1.0,1.0,0.0) && +texelFetch(textureUnitPS0, ivec2(23, 31), 0) == vec4(1.0,1.0,1.0,1.0) && +texelFetch(textureUnitPS0, ivec2(28, 30), 0) == vec4(1.0,1.0,1.0,0.0) && +texelFetch(textureUnitPS0, ivec2(24, 18), 0) == vec4(1.0,1.0,1.0,0.0)) { + R1f.xyzw = vec4(0.0); +} +#endif + +#if ($hideMasterModeIcon == 1) +// Check specific pixels of the input texture to match with the master mode icon backdrop blur +if (textureSize(textureUnitPS0, 0).xy == ivec2(18, 20) && texelFetch(textureUnitPS0, ivec2(4, 10), 0) == vec4(1.0,1.0,1.0,0.2)) { + R1f.xyzw = vec4(0.0); +} +#endif + +#if ($hideCameraGUI == 1) +// Hide lines overlay +if (textureSize(textureUnitPS0, 0).xy == ivec2(8, 8) && texelFetch(textureUnitPS0, ivec2(7, 3), 0) == vec4(1.0,1.0,1.0,1.0) && uf_remappedPS[0].y == 1056898815) { + R1f.xyzw = vec4(0.0); +} + +// Hide camera framer thing +if (textureSize(textureUnitPS0, 0).xy == ivec2(200, 200) && texelFetch(textureUnitPS0, ivec2(78, 81), 0) == vec4(1.0,1.0,1.0,1.0) && +texelFetch(textureUnitPS0, ivec2(81, 81), 0) == vec4(1.0,1.0,1.0,1.0) && +texelFetch(textureUnitPS0, ivec2(81, 84), 0) == vec4(1.0,1.0,1.0,0.0) && +texelFetch(textureUnitPS0, ivec2(2, 92), 0) == vec4(1.0,1.0,1.0,1.0) && +texelFetch(textureUnitPS0, ivec2(5, 92), 0) == vec4(1.0,1.0,1.0,0.0)) { + R1f.xyzw = vec4(0.0); +} + +// Hide glowy background filler things from camera rune borders +if (textureSize(textureUnitPS0, 0).xy == ivec2(182, 152) && (texelFetch(textureUnitPS0, ivec2(54, 67), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(53, 67), 0).xyzw).w > 0.0 && (texelFetch(textureUnitPS0, ivec2(129, 30), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(128, 30), 0).xyzw).w > 0.0) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(159, 152) && (texelFetch(textureUnitPS0, ivec2(81, 129), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(82, 129), 0).xyzw).w > 0.0 && (texelFetch(textureUnitPS0, ivec2(42, 96), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(43, 96), 0).xyzw).w > 0.0) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(52, 133) && (texelFetch(textureUnitPS0, ivec2(8, 47), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(8, 48), 0).xyzw).w > 0.0 && (texelFetch(textureUnitPS0, ivec2(18, 128), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(18, 127), 0).xyzw).w > 0.0) { + R1f.xyzw = ivec4(0.0); +} +if (textureSize(textureUnitPS0, 0).xy == ivec2(126, 153) && (texelFetch(textureUnitPS0, ivec2(64, 66), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(65, 66), 0).xyzw).w > 0.0 && (texelFetch(textureUnitPS0, ivec2(14, 128), 0).xyzw).w == 0.0 && (texelFetch(textureUnitPS0, ivec2(15, 128), 0).xyzw).w > 0.0) { + R1f.xyzw = ivec4(0.0); +} +#endif + +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/f9c7da3cb9a185ce_0000000000001e49_ps.txt b/src/BreathOfTheWild/Mods/HUDElements/f9c7da3cb9a185ce_0000000000001e49_ps.txt new file mode 100644 index 00000000..222a90f8 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/f9c7da3cb9a185ce_0000000000001e49_ps.txt @@ -0,0 +1,112 @@ +#version 430 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader f9c7da3cb9a185ce +// Used for: Hiding + + +// start of shader inputs/outputs, predetermined by Cemu. Do not touch +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +#ifdef VULKAN +layout(set = 1, binding = 3) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[3]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[3]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2; +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem2; +layout(location = 0) out vec4 passPixelColor0; +// end of shader inputs/outputs +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem2); +R0i.xyzw = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).xyzw); +R1i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); +R2i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.xy)).xyzw); +// 0 +PV0i.x = floatBitsToInt(max(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +PV0i.y = uf_remappedPS[0].x & 0x00000080; +PV0i.z = floatBitsToInt(min(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +R127i.w = floatBitsToInt(-(intBitsToFloat(R1i.w)) + 1.0); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R1i.w))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(PS0i))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R1i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R1i.w))); +R123i.w = ((PV0i.y == 0)?(PV0i.x):(PV0i.z)); +PV1i.w = R123i.w; +R127i.z = uf_remappedPS[0].x & 0x00008000; +PS1i = R127i.z; +// 2 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(max(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.w))); +PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R2i.x))); +// 3 +R127i.x = ((R127i.z == 0)?(PV0i.x):(PV0i.y)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R2i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.z))); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[1].x)) + intBitsToFloat(uf_remappedPS[2].x))); +PS1i = R2i.x; +// 4 +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[1].y)) + intBitsToFloat(uf_remappedPS[2].y))); +// 5 +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(uf_remappedPS[1].z)) + intBitsToFloat(uf_remappedPS[2].z))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(uf_remappedPS[2].w))); + +// export +#if ($hideStamina == 1) +R2i.xyzw = vec4(0.0); +#endif +passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +} diff --git a/src/BreathOfTheWild/Mods/HUDElements/rules.txt b/src/BreathOfTheWild/Mods/HUDElements/rules.txt new file mode 100644 index 00000000..ab63cf78 --- /dev/null +++ b/src/BreathOfTheWild/Mods/HUDElements/rules.txt @@ -0,0 +1,64 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Remove HUD elements +path = "The Legend of Zelda: Breath of the Wild/Mods/Remove HUD elements" +description = Hides HUD elements like the master mode icon, hearts, stamina wheel and subtitles.|This mod only aims to remove things that the game's Pro HUD mode doesn't already remove. +version = 6 + +[Default] +$hideSubtitles:int = 0 +$hideHearts:int = 0 +$hideStamina:int = 0 +$hideMasterModeIcon:int = 0 +$hideCameraGUI:int = 0 + +[Preset] +name = Enabled (Default) +category = Master Mode Icon +default = 1 + +[Preset] +name = Disabled +category = Master Mode Icon +$hideMasterModeIcon:int = 1 + +[Preset] +name = Enabled (Default) +category = Hearts +default = 1 + +[Preset] +name = Disabled +category = Hearts +$hideHearts:int = 1 + +[Preset] +name = Enabled (Default) +category = Stamina +default = 1 + +[Preset] +name = Disabled +category = Stamina +$hideStamina:int = 1 + +[Preset] +name = Enabled (Default) +category = Camera HUD (for screenshots) +default = 1 + +[Preset] +name = Disabled (messes with text and hearts) +category = Camera HUD (for screenshots) +$hideCameraGUI:int = 1 +$hideHearts:int = 1 + +[Preset] +name = Enabled (Default) +category = Subtitles (for screenshots) +default = 1 + +[Preset] +name = Disabled (messes with text) +category = Subtitles (for screenshots) +$hideSubtitles:int = 1 \ No newline at end of file diff --git a/src/BreathOfTheWild/Mods/Weather/patch_Weather.asm b/src/BreathOfTheWild/Mods/Weather/patch_Weather.asm new file mode 100644 index 00000000..2e3cd8ed --- /dev/null +++ b/src/BreathOfTheWild/Mods/Weather/patch_Weather.asm @@ -0,0 +1,26 @@ +[BotW_Weather_V208] +moduleMatches = 0x6267BFD0 + +.origin = codecave + +weatherBytesMap: +.byte $blueSky +.byte $cloudy +.byte $rain +.byte $heavyRain +.byte $snow +.byte $heavySnow +.byte $thunderstorm +.byte $thunderRain +.byte $blueSkyRain + +_changeWeather: +lis r6, weatherBytesMap@ha ; Load first part of the weather map's address +addi r6, r6, weatherBytesMap@l ; Load second part of the address +mulli r26, r26, 0x04 ; .byte values are 4 byte aligned, so multiply the offset by 0x04 +lbzx r26, r6, r26 ; Load the byte that's stored in the weather map using it's address plus an offset which is the original weather value to "map" each one +stb r26, 0x18(r30) ; Original instruction that would store the weather +blr ; Return back to the link register + +0x03668FCC = nop ; Replace instruction that checks whether the weather has changed. Since the value is always modified/changed, just disable this branch. +0x03668FEC = bla _changeWeather ; Replace instruction that normally stores the weather with a jump to the weather changing function diff --git a/src/BreathOfTheWild/Mods/Weather/rules.txt b/src/BreathOfTheWild/Mods/Weather/rules.txt new file mode 100644 index 00000000..751b238b --- /dev/null +++ b/src/BreathOfTheWild/Mods/Weather/rules.txt @@ -0,0 +1,676 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Weather +path = "The Legend of Zelda: Breath of the Wild/Mods/Weather" +description = Allows you to change the weather, to an individual level.|Won't change weather in areas that have a certain type forced.||Made by dragbe. +version = 6 + +# Weather names from https://github.com/zeldaret/botw + +[Default] +$individualControl:int = 1 + +$blueSky:int = 0 +$cloudy:int = 1 +$rain:int = 2 +$heavyRain:int = 3 +$snow:int = 4 +$heavySnow:int = 5 +$thunderstorm:int = 6 +$thunderRain:int = 7 +$blueSkyRain:int = 8 + + +[Preset] +name = None (Use Individual Settings) +category = Replace All Weather +default = 1 +$individualControl:int = 1 + +[Preset] +name = Blue Sky +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 0 +$cloudy:int = 0 +$rain:int = 0 +$heavyRain:int = 0 +$snow:int = 0 +$heavySnow:int = 0 +$thunderstorm:int = 0 +$thunderRain:int = 0 +$blueSkyRain:int = 0 + +[Preset] +name = Cloudy +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 1 +$cloudy:int = 1 +$rain:int = 1 +$heavyRain:int = 1 +$snow:int = 1 +$heavySnow:int = 1 +$thunderstorm:int = 1 +$thunderRain:int = 1 +$blueSkyRain:int = 1 + +[Preset] +name = Rain +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 2 +$cloudy:int = 2 +$rain:int = 2 +$heavyRain:int = 2 +$snow:int = 2 +$heavySnow:int = 2 +$thunderstorm:int = 2 +$thunderRain:int = 2 +$blueSkyRain:int = 2 + +[Preset] +name = Heavy Rain +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 3 +$cloudy:int = 3 +$rain:int = 3 +$heavyRain:int = 3 +$snow:int = 3 +$heavySnow:int = 3 +$thunderstorm:int = 3 +$thunderRain:int = 3 +$blueSkyRain:int = 3 + +[Preset] +name = Snow +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 4 +$cloudy:int = 4 +$rain:int = 4 +$heavyRain:int = 4 +$snow:int = 4 +$heavySnow:int = 4 +$thunderstorm:int = 4 +$thunderRain:int = 4 +$blueSkyRain:int = 4 + +[Preset] +name = Heavy Snow +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 5 +$cloudy:int = 5 +$rain:int = 5 +$heavyRain:int = 5 +$snow:int = 5 +$heavySnow:int = 5 +$thunderstorm:int = 5 +$thunderRain:int = 5 +$blueSkyRain:int = 5 + +[Preset] +name = Thunderstorm +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 6 +$cloudy:int = 6 +$rain:int = 6 +$heavyRain:int = 6 +$snow:int = 6 +$heavySnow:int = 6 +$thunderstorm:int = 6 +$thunderRain:int = 6 +$blueSkyRain:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 7 +$cloudy:int = 7 +$rain:int = 7 +$heavyRain:int = 7 +$snow:int = 7 +$heavySnow:int = 7 +$thunderstorm:int = 7 +$thunderRain:int = 7 +$blueSkyRain:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace All Weather +$individualControl:int = 0 +$blueSky:int = 8 +$cloudy:int = 8 +$rain:int = 8 +$heavyRain:int = 8 +$snow:int = 8 +$heavySnow:int = 8 +$thunderstorm:int = 8 +$thunderRain:int = 8 +$blueSkyRain:int = 8 + + +# Clear Weather + +[Preset] +name = Blue Sky +category = Replace Blue Sky Weather +default = 1 +condition = $individualControl == 1 +$blueSky:int = 0 + +[Preset] +name = Cloudy +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 1 + +[Preset] +name = Rain +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 3 + +[Preset] +name = Snow +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Blue Sky Weather +condition = $individualControl == 1 +$blueSky:int = 8 + + +# Cloudy Weather + +[Preset] +name = Blue Sky +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 0 + +[Preset] +name = Cloudy +category = Replace Cloudy Weather +default = 1 +condition = $individualControl == 1 +$cloudy:int = 1 + +[Preset] +name = Rain +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 3 + +[Preset] +name = Snow +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Cloudy Weather +condition = $individualControl == 1 +$cloudy:int = 8 + + +# Rain Weather + +[Preset] +name = Blue Sky +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 0 + +[Preset] +name = Cloudy +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 1 + +[Preset] +name = Rain +category = Replace Rain Weather +default = 1 +condition = $individualControl == 1 +$rain:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 3 + +[Preset] +name = Snow +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Rain Weather +condition = $individualControl == 1 +$rain:int = 8 + + +# Heavy Rain Weather + +[Preset] +name = Blue Sky +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 0 + +[Preset] +name = Cloudy +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 1 + +[Preset] +name = Rain +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Heavy Rain Weather +default = 1 +condition = $individualControl == 1 +$heavyRain:int = 3 + +[Preset] +name = Snow +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Heavy Rain Weather +condition = $individualControl == 1 +$heavyRain:int = 8 + + +# Snow Weather + +[Preset] +name = Blue Sky +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 0 + +[Preset] +name = Cloudy +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 1 + +[Preset] +name = Rain +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 3 + +[Preset] +name = Snow +category = Replace Snow Weather +default = 1 +condition = $individualControl == 1 +$snow:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Snow Weather +condition = $individualControl == 1 +$snow:int = 8 + + +# Heavy Snow Weather + +[Preset] +name = Blue Sky +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 0 + +[Preset] +name = Cloudy +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 1 + +[Preset] +name = Rain +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 3 + +[Preset] +name = Snow +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Heavy Snow Weather +default = 1 +condition = $individualControl == 1 +$heavySnow:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Heavy Snow Weather +condition = $individualControl == 1 +$heavySnow:int = 8 + + +# Thunderstorm Weather + +[Preset] +name = Blue Sky +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 0 + +[Preset] +name = Cloudy +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 1 + +[Preset] +name = Rain +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 3 + +[Preset] +name = Snow +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Thunderstorm Weather +default = 1 +condition = $individualControl == 1 +$thunderstorm:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Thunderstorm Weather +condition = $individualControl == 1 +$thunderstorm:int = 8 + + +# Thunderstorm With Rain Weather + +[Preset] +name = Blue Sky +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 0 + +[Preset] +name = Cloudy +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 1 + +[Preset] +name = Rain +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 3 + +[Preset] +name = Snow +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Thunderstorm With Rain Weather +default = 1 +condition = $individualControl == 1 +$thunderRain:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Thunderstorm With Rain Weather +condition = $individualControl == 1 +$thunderRain:int = 8 + + +# Blue Sky With Rain Weather + +[Preset] +name = Blue Sky +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 0 + +[Preset] +name = Cloudy +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 1 + +[Preset] +name = Rain +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 2 + +[Preset] +name = Heavy Rain +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 3 + +[Preset] +name = Snow +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 4 + +[Preset] +name = Heavy Snow +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 5 + +[Preset] +name = Thunderstorm +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 6 + +[Preset] +name = Thunderstorm with Rain +category = Replace Blue Sky With Rain Weather +condition = $individualControl == 1 +$blueSkyRain:int = 7 + +[Preset] +name = Blue Sky With Rain +category = Replace Blue Sky With Rain Weather +default = 1 +condition = $individualControl == 1 +$blueSkyRain:int = 8 \ No newline at end of file diff --git a/src/BreathOfTheWild/Workarounds/AMDShaderCrash/15bc7edf9de2ed30_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/15bc7edf9de2ed30_0000000000000000_vs.txt new file mode 100644 index 00000000..22770bc8 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/15bc7edf9de2ed30_0000000000000000_vs.txt @@ -0,0 +1,61 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 15bc7edf9de2ed30 +layout(binding = 6, std140) +uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + + +layout(binding = 7, std140) +uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + + +layout(binding = 8, std140) +uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + + +layout(binding = 11, std140) +uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + + +layout(binding = 45) uniform sampler2D textureUnitVS13; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +// export +gl_Position = vec4(0.0); +} diff --git a/src/BreathOfTheWild/Workarounds/AMDShaderCrash/24838b84d15a1da1_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/24838b84d15a1da1_0000000000000000_vs.txt new file mode 100644 index 00000000..f64ec631 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/24838b84d15a1da1_0000000000000000_vs.txt @@ -0,0 +1,72 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 24838b84d15a1da1 +layout(binding = 6, std140) +uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + + +layout(binding = 7, std140) +uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + + +layout(binding = 8, std140) +uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + + +layout(binding = 11, std140) +uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + + +layout(binding = 13, std140) +uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + + +layout(binding = 40) uniform sampler2D textureUnitVS8; +layout(binding = 45) uniform sampler2D textureUnitVS13; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +// export +gl_Position = vec4(0.0); +} diff --git a/src/BreathOfTheWild/Workarounds/AMDShaderCrash/83a697d61a3b9202_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/83a697d61a3b9202_0000000000000000_vs.txt new file mode 100644 index 00000000..bcb568e3 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/83a697d61a3b9202_0000000000000000_vs.txt @@ -0,0 +1,61 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 83a697d61a3b9202 +layout(binding = 6, std140) +uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + + +layout(binding = 7, std140) +uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + + +layout(binding = 8, std140) +uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + + +layout(binding = 11, std140) +uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + + +layout(binding = 45) uniform sampler2D textureUnitVS13; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +// export +gl_Position = vec4(0.0); +} diff --git a/src/BreathOfTheWild/Workarounds/AMDShaderCrash/97bc44a5028381c6_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/97bc44a5028381c6_0000000000000000_vs.txt new file mode 100644 index 00000000..21afbf7e --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/97bc44a5028381c6_0000000000000000_vs.txt @@ -0,0 +1,11 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable +// shader 24838b84d15a1da1 + +void main() +{ +// export +gl_Position = vec4(0.0); +} diff --git a/src/BreathOfTheWild/Workarounds/AMDShaderCrash/rules.txt b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/rules.txt new file mode 100644 index 00000000..c7200368 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/AMDShaderCrash/rules.txt @@ -0,0 +1,8 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Shader Crash (OpenGL and AMD) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds for OpenGL/AMD: Shader Crash" +description = Workaround for a shader related crash on AMD when using OpenGL.|Required for Cemu 1.15.8 and above. +vendorFilter = amd +rendererFilter = opengl +version = 6 diff --git a/src/BreathOfTheWild/Workarounds/CPUOcclusionQuery/patch_OcclusionQuery.asm b/src/BreathOfTheWild/Workarounds/CPUOcclusionQuery/patch_OcclusionQuery.asm new file mode 100644 index 00000000..ce750ceb --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/CPUOcclusionQuery/patch_OcclusionQuery.asm @@ -0,0 +1,5 @@ +[BotW_OcclusionQuery_V208] +moduleMatches = 0x6267BFD0 + +; Changes the occlusion query to be ran on the CPU instead of the GPU which fails when "Full Sync at GX2DrawDone()" is disabled +0x03B25BB0 = lis r3, 0 \ No newline at end of file diff --git a/src/BreathOfTheWild/Workarounds/CPUOcclusionQuery/rules.txt b/src/BreathOfTheWild/Workarounds/CPUOcclusionQuery/rules.txt new file mode 100644 index 00000000..b68ece86 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/CPUOcclusionQuery/rules.txt @@ -0,0 +1,7 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = NPC Stuttering Fix (OpenGL) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/NPC Stuttering Fix (OpenGL)" +description = Prevents NPC stuttering at a distance when Full sync at GX2DrawDone() is disabled. Only applicable for OpenGL.||Made by Xalphenos. +rendererFilter = opengl +version = 6 diff --git a/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/8e9e804a3cd384c3_00000000000ff259_ps.txt b/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/8e9e804a3cd384c3_00000000000ff259_ps.txt new file mode 100644 index 00000000..cd42a6fd --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/8e9e804a3cd384c3_00000000000ff259_ps.txt @@ -0,0 +1,630 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 8e9e804a3cd384c3 +// Square Shadows Fix - Workaround for the square shadows seen around torches in Kakariko Village +// shader dumped from BotW v1.3.1, using Cemu 1.11.1 +#ifdef VULKAN +layout(set = 1, binding = 4) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[13]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[13]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform samplerCubeArray textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 3) uniform sampler2D textureUnitPS3; +layout(location = 1) noperspective in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +// uf_fragCoordScale was moved to the ufBlock +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex2 = 0.0; +R0i = floatBitsToInt(GET_FRAGCOORD()); +R1i = floatBitsToInt(passParameterSem0); +// 0 +R6i.x = 0x3f800000; +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedPS[0].x))); +R127i.z = floatBitsToInt(intBitsToFloat(R1i.y) + -(intBitsToFloat(uf_remappedPS[0].y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[1].x)); +// 1 +R2i.x = floatBitsToInt(intBitsToFloat(R0i.x) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R11i.w = 0; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[1].y)); +// 2 +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y))); +R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(PS1i)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.z)); +R0i.y = floatBitsToInt(tempResultf); +PS0i = R0i.y; +R3i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.xy)).xyzw); +R2i.x = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).x); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 2.0 + -(1.0))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 2.0 + -(1.0))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 2.0 + -(1.0))); +PV0i.z = R127i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R2i.x)) + intBitsToFloat(uf_remappedPS[2].x))); +PV0i.w = R126i.w; +R127i.w = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x437f0000)); +PS0i = R127i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),-(intBitsToFloat(PV0i.w))) + -(intBitsToFloat(uf_remappedPS[3].x)))); +PS1i = R5i.x; +// 2 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R0i.y))); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R126i.w))) + -(intBitsToFloat(uf_remappedPS[3].y)))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),-(intBitsToFloat(R126i.w))) + -(intBitsToFloat(uf_remappedPS[3].z)))); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R0i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R0i.y))); +PS1i = int(intBitsToFloat(R127i.w)); +// 4 +backupReg0i = R0i.z; +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(backupReg0i)),-0.0),vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(backupReg0i)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.x = PS1i & 0x00000002; +PS0i = R125i.x; +// 5 +R126i.x = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3a83126f))); +PV1i.x = R126i.x; +R0i.y = floatBitsToInt(-(intBitsToFloat(R3i.w)) + 1.0); +R2i.z = floatBitsToInt(-(intBitsToFloat(R126i.w))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R126i.w)))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R126i.w)))); +PS1i = R4i.y; +// 6 +backupReg0i = R0i.z; +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R2i.y),intBitsToFloat(backupReg0i),-0.0),vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R125i.w = floatBitsToInt(tempResultf); +PS0i = R125i.w; +// 7 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R5i.x)), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R2i.y)), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.z)), intBitsToFloat(PS0i))); +PV1i.z = R4i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].w), intBitsToFloat(PS0i))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg0i)) + intBitsToFloat(0x3d4ccccd))); +R126i.z = clampFI32(R126i.z); +PS1i = R126i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R6i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PS0i = R125i.z; +// 9 +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R2i.y),intBitsToFloat(backupReg0i),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = tempi.x; +PS1i = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(1.0))); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R2i.y),intBitsToFloat(R0i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = tempi.x; +R126i.w = floatBitsToInt(min(intBitsToFloat(PS1i), 1.0)); +PS0i = R126i.w; +// 11 +redcCUBE(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.x),intBitsToFloat(R127i.x),intBitsToFloat(R127i.y)),vec4(intBitsToFloat(R127i.y),intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.x)),cubeMapSTM,cubeMapFaceId); +R1i.x = floatBitsToInt(cubeMapSTM.x); +R1i.y = floatBitsToInt(cubeMapSTM.y); +R1i.z = floatBitsToInt(cubeMapSTM.z); +R1i.w = cubeMapFaceId; +PV1i.x = R1i.x; +PV1i.y = R1i.y; +PV1i.z = R1i.z; +PV1i.w = R1i.w; +R127i.x = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +PS1i = R127i.x; +// 12 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(uf_remappedPS[8].x)) + intBitsToFloat(uf_remappedPS[8].y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R126i.z))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(uf_remappedPS[8].z)) + intBitsToFloat(uf_remappedPS[8].w))); +PV0i.z = R126i.z; +R126i.w = floatBitsToInt((intBitsToFloat(R0i.y) * 0.5 + 0.5)); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 13 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS0i)) + 1.5)); +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R127i.w = ((intBitsToFloat(PV0i.z) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R10i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(1.0)); +PS1i = R10i.x; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.z))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R126i.w))); +R5i.y = floatBitsToInt(intBitsToFloat(R5i.y) / 2.0); +PV0i.y = R5i.y; +R6i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3ea2f983)); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x40400000)); +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R125i.z))); +PS0i = R6i.w; +// 15 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[9].y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[10].y))); +PV1i.y = clampFI32(PV1i.y); +R123i.z = ((R127i.w == 0)?(0):(PV0i.x)); +PV1i.z = R123i.z; +R2i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 16 +R4i.x = ((intBitsToFloat(R3i.x) > intBitsToFloat(uf_remappedPS[9].x))?int(0xFFFFFFFF):int(0x0)); +R3i.y = ((R125i.x == 0)?(R126i.z):(PV1i.z)); +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +R3i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PS1i)); +R3i.w = clampFI32(R3i.w); +R0i.x = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +R0i.x = floatBitsToInt(intBitsToFloat(R0i.x) / 2.0); +PS0i = R0i.x; +R1i.w = floatBitsToInt(texture(textureUnitPS2, vec4(redcCUBEReverse(intBitsToFloat(R1i.yx),R1i.w),cubeMapArrayIndex2)).x); +R3i.y = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R3i.xy)).x); +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R6i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R4i.w),intBitsToFloat(R5i.w),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = ((intBitsToFloat(R1i.w) > intBitsToFloat(0x3f7ae148))?int(0xFFFFFFFF):int(0x0)); +// 1 +R126i.x = ((PS0i == 0)?(R1i.w):(0x42c80000)); +PV1i.y = PV0i.x; +PV1i.y = clampFI32(PV1i.y); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R2i.x))); +PV1i.w = PV0i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R3i.w)); +// 2 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R7i.x)))); +PV0i.x = R125i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R4i.w)))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R5i.w)))); +PV0i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.y))); +PV0i.w = R123i.w; +R126i.y = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(PS1i)); +PS0i = R126i.y; +// 3 +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R2i.y)),-(intBitsToFloat(backupReg0i)),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R124i.y; +// 4 +backupReg0i = R127i.y; +backupReg1i = R126i.z; +backupReg2i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R5i.x))); +PV0i.x = R126i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R2i.y))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R0i.z))); +PV0i.z = R126i.z; +float magicNumber = 3.0; +R123i.w = floatBitsToInt((mul_nonIEEE(magicNumber * intBitsToFloat(uf_remappedPS[10].z),intBitsToFloat(backupReg2i)) + 4.0)/2.0); +PV0i.w = R123i.w; +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R126i.y))); +PS0i = R3i.w; +// 5 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(backupReg0i))); +R127i.z = clampFI32(R127i.z); +PS1i = R127i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.w),intBitsToFloat(R4i.y),intBitsToFloat(R2i.z),intBitsToFloat(R6i.x)),vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),intBitsToFloat(uf_remappedPS[4].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 7 +R125i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.w),intBitsToFloat(R4i.y),intBitsToFloat(R2i.z),intBitsToFloat(R6i.x)),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),intBitsToFloat(uf_remappedPS[6].w)))); +PV1i.x = R125i.x; +PV1i.y = R125i.x; +PV1i.z = R125i.x; +PV1i.w = R125i.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 8 +R124i.x = ((R4i.x == 0)?(R3i.y):(R125i.z)); +R125i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[11].y)); +R125i.y = clampFI32(R125i.y); +R125i.z = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(uf_remappedPS[11].x)); +R125i.z = clampFI32(R125i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) * intBitsToFloat(PS1i)); +PV0i.w = clampFI32(PV0i.w); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R3i.z))); +PS0i = R1i.w; +// 9 +backupReg0i = R126i.x; +backupReg1i = R127i.y; +backupReg2i = R126i.z; +backupReg3i = R125i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(R5i.x)))); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(R2i.y)))); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg2i),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(R0i.z)))); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R126i.y) + -(intBitsToFloat(uf_remappedPS[12].x))); +PV1i.w = clampFI32(PV1i.w); +R125i.x = floatBitsToInt(intBitsToFloat(backupReg3i) + -(intBitsToFloat(uf_remappedPS[12].y))); +R125i.x = clampFI32(R125i.x); +PS1i = R125i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(max(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.w))); +PS0i = R127i.x; +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.w),intBitsToFloat(R4i.y),intBitsToFloat(R2i.z),intBitsToFloat(R6i.x)),vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),intBitsToFloat(uf_remappedPS[7].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 12 +backupReg0i = R127i.y; +backupReg1i = R126i.z; +backupReg2i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS1i))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS1i))); +PV0i.z = R126i.z; +R124i.w = floatBitsToInt(max(intBitsToFloat(R125i.y), intBitsToFloat(R125i.x))); +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg2i)) + 1.0); +PS0i = R127i.w; +// 13 +backupReg0i = R125i.w; +backupReg0i = R125i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV0i.x)); +PV1i.x = R126i.x; +R125i.y = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.y)); +PV1i.y = R125i.y; +R125i.z = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(uf_remappedPS[11].z)); +R125i.w = clampFI32(R125i.w); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(uf_remappedPS[12].z))); +R126i.w = clampFI32(R126i.w); +PS1i = R126i.w; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = floatBitsToInt(max(-(intBitsToFloat(R4i.z)), 0.0)); +PS0i = R0i.w; +// 15 +R6i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R6i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),0.0))); +R6i.x = clampFI32(R6i.x); +PV1i.x = R6i.x; +PV1i.y = R6i.x; +PV1i.z = R6i.x; +PV1i.w = R6i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 16 +backupReg0i = R126i.x; +backupReg1i = R125i.y; +backupReg2i = R127i.z; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS1i))); +PV0i.y = R125i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.y))); +PV0i.w = R123i.w; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(R127i.w))); +PS0i = R125i.z; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R4i.w),intBitsToFloat(R5i.w),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R127i.w; +// 18 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R6i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R127i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R125i.y; +// 19 +backupReg0i = R124i.y; +backupReg1i = R9i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R124i.y = floatBitsToInt(max(intBitsToFloat(R125i.w), intBitsToFloat(R126i.w))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R9i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[0].z)),intBitsToFloat(backupReg1i)) + 1.0)); +R9i.x = clampFI32(R9i.x); +PS1i = R9i.x; +// 20 +backupReg0i = R125i.y; +PV0i.x = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +R125i.y = floatBitsToInt(min(intBitsToFloat(R0i.w), 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(PV1i.w)) + 1.0)); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +R127i.y = floatBitsToInt(-(intBitsToFloat(R1i.w)) + 1.0); +PS0i = R127i.y; +// 21 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R6i.y = floatBitsToInt(-(intBitsToFloat(R124i.y)) + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.w))); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV0i.x))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].x), intBitsToFloat(R124i.x))); +PS1i = R5i.y; +// 22 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(R124i.x))); +R4i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f75c28f) + intBitsToFloat(0x3d23d70a))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(R1i.w))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].z), intBitsToFloat(R124i.x))); +R0i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R0i.w; +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R6i.y)) + -(1.0))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(R5i.y) * intBitsToFloat(0x3ea2f983)); +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.z) * intBitsToFloat(R0i.w)); +PV0i.w = floatBitsToInt(intBitsToFloat(R10i.x) * intBitsToFloat(0x3ea2f983)); +PS0i = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(0x3ea2f983)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R4i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.w))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[10].w)) + 1.0)); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS0i))); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV1i.x))); +// 3 +R11i.x = floatBitsToInt(min(intBitsToFloat(PV0i.x), intBitsToFloat(0x42000000))); +R11i.y = floatBitsToInt(min(intBitsToFloat(PV0i.y), intBitsToFloat(0x42000000))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R11i.z = floatBitsToInt(min(intBitsToFloat(PV0i.z), intBitsToFloat(0x42000000))); +PS1i = R11i.z; +// 4 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV1i.z))); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.w), intBitsToFloat(PV0i.y))); +// 6 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.x))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].z), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].x), intBitsToFloat(PV0i.w))); +// 8 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.z))); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV0i.z))); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.z))); +// 11 +R4i.x = floatBitsToInt(min(intBitsToFloat(PV0i.y), intBitsToFloat(0x42000000))); +R4i.y = floatBitsToInt(min(intBitsToFloat(PV0i.x), intBitsToFloat(0x42000000))); +R4i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), intBitsToFloat(0x42000000))); +// 12 +R0i.xyz = ivec3(R11i.x,R11i.y,R11i.z); +R0i.w = R11i.w; +// 13 +R1i.xyz = ivec3(R4i.x,R4i.y,R4i.z); +R1i.w = R4i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/ab0a485b9ae1bb1e_00000000000ff259_ps.txt b/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/ab0a485b9ae1bb1e_00000000000ff259_ps.txt new file mode 100644 index 00000000..83c23ddd --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/ab0a485b9ae1bb1e_00000000000ff259_ps.txt @@ -0,0 +1,627 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader ab0a485b9ae1bb1e +// Square Shadows Fix - Workaround for the square shadows seen around torches in Kakariko Village +// shader dumped from BotW v1.4.0, using Cemu 1.11.1 +#ifdef VULKAN +layout(set = 1, binding = 4) uniform ufBlock +{ +uniform ivec4 uf_remappedPS[13]; +uniform vec4 uf_fragCoordScale; +}; +#else +uniform ivec4 uf_remappedPS[13]; +uniform vec2 uf_fragCoordScale; +#endif +TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0; +TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1; +TEXTURE_LAYOUT(2, 1, 2) uniform samplerCubeArray textureUnitPS2; +TEXTURE_LAYOUT(3, 1, 3) uniform sampler2D textureUnitPS3; +layout(location = 1) noperspective in vec4 passParameterSem0; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +// uf_fragCoordScale was moved to the ufBlock +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex2 = 0.0; +R0i = floatBitsToInt(GET_FRAGCOORD()); +R1i = floatBitsToInt(passParameterSem0); +// 0 +backupReg0i = R0i.y; +R6i.x = 0x3f800000; +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbc23d70a)); +PV0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(0xbc23d70a)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedPS[0].x))); +// 1 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[1].z))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[1].w))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.w))); +R1i.w = floatBitsToInt(intBitsToFloat(R1i.y) + -(intBitsToFloat(uf_remappedPS[0].y))); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PS0i))); +PS1i = R3i.z; +R2i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyzw); +R0i.x = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt((intBitsToFloat(R2i.z) * 2.0 + -(1.0))); +PV0i.z = R127i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R0i.x)) + intBitsToFloat(uf_remappedPS[2].x))); +PV0i.w = R126i.w; +R127i.w = floatBitsToInt(intBitsToFloat(R2i.w) * intBitsToFloat(0x437f0000)); +PS0i = R127i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),-(intBitsToFloat(PV0i.w))) + -(intBitsToFloat(uf_remappedPS[3].x)))); +PS1i = R5i.x; +// 2 +R3i.x = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +PV0i.x = R3i.x; +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R126i.w))) + -(intBitsToFloat(uf_remappedPS[3].y)))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),-(intBitsToFloat(R126i.w))) + -(intBitsToFloat(uf_remappedPS[3].z)))); +R4i.w = floatBitsToInt(-(intBitsToFloat(R126i.w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +backupReg0i = R127i.w; +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3d4ccccd))); +R127i.w = clampFI32(R127i.w); +PS1i = int(intBitsToFloat(backupReg0i)); +// 4 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R2i.z)),-0.0),vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R2i.z)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.x = PS1i & 0x00000002; +PS0i = R125i.x; +// 5 +R126i.x = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3a83126f))); +PV1i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +R126i.z = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5)); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R126i.w)))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R0i.z)); +R126i.y = floatBitsToInt(tempResultf); +PS1i = R126i.y; +// 6 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R3i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R125i.w = floatBitsToInt(tempResultf); +PS0i = R125i.w; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R5i.x)), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R3i.y)), intBitsToFloat(PS0i))); +R5i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R2i.z)), intBitsToFloat(PS0i))); +PV1i.z = R5i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].w), intBitsToFloat(PS0i))); +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R126i.y))); +PS1i = R8i.x; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R5i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PS0i = R125i.z; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R3i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = tempi.x; +PS1i = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(1.0))); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R3i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = tempi.x; +R127i.w = floatBitsToInt(min(intBitsToFloat(PS1i), 1.0)); +PS0i = R127i.w; +// 11 +redcCUBE(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.x),intBitsToFloat(R127i.x),intBitsToFloat(R127i.y)),vec4(intBitsToFloat(R127i.y),intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.x)),cubeMapSTM,cubeMapFaceId); +R0i.x = floatBitsToInt(cubeMapSTM.x); +R0i.y = floatBitsToInt(cubeMapSTM.y); +R0i.z = floatBitsToInt(cubeMapSTM.z); +R0i.w = cubeMapFaceId; +PV1i.x = R0i.x; +PV1i.y = R0i.y; +PV1i.z = R0i.z; +PV1i.w = R0i.w; +R127i.x = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +PS1i = R127i.x; +// 12 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(uf_remappedPS[8].x)) + intBitsToFloat(uf_remappedPS[8].y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R126i.y))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(uf_remappedPS[8].z)) + intBitsToFloat(uf_remappedPS[8].w))); +PV0i.z = R127i.z; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R126i.y))); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 13 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS0i)) + 1.5)); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R127i.w = ((intBitsToFloat(PV0i.z) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R9i.x = floatBitsToInt(intBitsToFloat(R125i.y) + -(1.0)); +PS1i = R9i.x; +// 14 +backupReg0i = R1i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.z))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R126i.z))); +R4i.y = floatBitsToInt(intBitsToFloat(R4i.y) / 2.0); +PV0i.y = R4i.y; +R6i.z = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(0x3ea2f983)); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x40400000)); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), -(intBitsToFloat(R126i.w)))); +PS0i = R1i.y; +// 15 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R125i.z))); +PV1i.x = R10i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[9].y))); +PV1i.y = clampFI32(PV1i.y); +R123i.z = ((R127i.w == 0)?(0):(PV0i.x)); +PV1i.z = R123i.z; +R5i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 16 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[10].y))); +R2i.y = ((R125i.x == 0)?(R127i.z):(PV1i.z)); +R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +R2i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(PS1i)); +R2i.w = clampFI32(R2i.w); +R1i.x = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) / 2.0); +PS0i = R1i.x; +R0i.w = floatBitsToInt(texture(textureUnitPS2, vec4(redcCUBEReverse(intBitsToFloat(R0i.yx),R0i.w),cubeMapArrayIndex2)).x); +R0i.y = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.xy)).x); +// 0 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R5i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R8i.x),intBitsToFloat(R6i.y),intBitsToFloat(R6i.w),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = ((intBitsToFloat(backupReg0i) > intBitsToFloat(0x3f7ae148))?int(0xFFFFFFFF):int(0x0)); +// 1 +R126i.x = ((PS0i == 0)?(R0i.w):(0x42c80000)); +PV1i.y = PV0i.x; +PV1i.y = clampFI32(PV1i.y); +R126i.z = ((intBitsToFloat(R2i.x) > intBitsToFloat(uf_remappedPS[10].x))?int(0xFFFFFFFF):int(0x0)); +PV1i.w = PV0i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R2i.w)); +// 2 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R8i.x)))); +PV0i.x = R125i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R6i.y)))); +PV0i.y = R125i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R6i.w)))); +PV0i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R5i.w)) + intBitsToFloat(R4i.y))); +PV0i.w = R123i.w; +R126i.y = floatBitsToInt(intBitsToFloat(R3i.x) * intBitsToFloat(PS1i)); +PS0i = R126i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R5i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R2i.z)),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R124i.y; +// 4 +backupReg0i = R127i.z; +backupReg1i = R126i.x; +backupReg2i = R126i.y; +backupReg2i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R5i.x))); +PV0i.x = R126i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R3i.y))); +PV0i.y = R126i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R2i.z))); +PV0i.z = R127i.z; +///R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].z), intBitsToFloat(backupReg1i)) + 4.0) / 2.0); +R123i.w = floatBitsToInt((mul_nonIEEE(3.0*intBitsToFloat(uf_remappedPS[9].z),intBitsToFloat(backupReg1i)) + 4.0)/2.0); +PV0i.w = R123i.w; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(backupReg2i))); +PS0i = R0i.w; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(R1i.x))); +R124i.z = clampFI32(R124i.z); +PS1i = R124i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.w),intBitsToFloat(R1i.y),intBitsToFloat(R4i.w),intBitsToFloat(R6i.x)),vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),intBitsToFloat(uf_remappedPS[4].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 7 +R125i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.w),intBitsToFloat(R1i.y),intBitsToFloat(R4i.w),intBitsToFloat(R6i.x)),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),intBitsToFloat(uf_remappedPS[6].w)))); +PV1i.x = R125i.x; +PV1i.y = R125i.x; +PV1i.z = R125i.x; +PV1i.w = R125i.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 8 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R4i.x))); +R127i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[11].y)); +R127i.y = clampFI32(R127i.y); +R125i.z = floatBitsToInt(-(intBitsToFloat(R125i.y)) + intBitsToFloat(uf_remappedPS[11].x)); +R125i.z = clampFI32(R125i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) * intBitsToFloat(PS1i)); +PV0i.w = clampFI32(PV0i.w); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R1i.w)) + intBitsToFloat(R3i.z))); +PS0i = R2i.y; +// 9 +backupReg0i = R126i.x; +backupReg1i = R126i.y; +backupReg2i = R127i.z; +backupReg3i = R125i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(R5i.x)))); +PV1i.x = R126i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(R3i.y)))); +PV1i.y = R126i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg2i),intBitsToFloat(PV0i.w)) + -(intBitsToFloat(R2i.z)))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R125i.y) + -(intBitsToFloat(uf_remappedPS[12].x))); +PV1i.w = clampFI32(PV1i.w); +R125i.x = floatBitsToInt(intBitsToFloat(backupReg3i) + -(intBitsToFloat(uf_remappedPS[12].y))); +R125i.x = clampFI32(R125i.x); +PS1i = R125i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(max(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.w))); +PS0i = R127i.x; +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.w),intBitsToFloat(R1i.y),intBitsToFloat(R4i.w),intBitsToFloat(R6i.x)),vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),intBitsToFloat(uf_remappedPS[7].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 12 +backupReg0i = R127i.z; +backupReg1i = R127i.y; +backupReg2i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS1i))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.z = R127i.z; +R124i.w = floatBitsToInt(max(intBitsToFloat(backupReg1i), intBitsToFloat(R125i.x))); +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg2i)) + 1.0); +PS0i = R127i.w; +// 13 +backupReg0i = R125i.w; +backupReg0i = R125i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV0i.x)); +PV1i.x = R126i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV0i.y)); +PV1i.y = R126i.y; +R125i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(uf_remappedPS[11].z)); +R125i.w = clampFI32(R125i.w); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(uf_remappedPS[12].z))); +R126i.w = clampFI32(R126i.w); +PS1i = R126i.w; +// 14 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.z = ((R126i.z == 0)?(backupReg0i):(R124i.x)); +PS0i = R2i.z; +// 15 +R5i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R5i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +R5i.x = clampFI32(R5i.x); +PV1i.x = R5i.x; +PV1i.y = R5i.x; +PV1i.z = R5i.x; +PV1i.w = R5i.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 16 +backupReg0i = R126i.x; +backupReg1i = R126i.y; +backupReg2i = R125i.z; +backupReg3i = R124i.z; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS1i))); +PV0i.y = R126i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PS1i))); +PV0i.z = R125i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R5i.w)) + intBitsToFloat(R4i.y))); +PV0i.w = R123i.w; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(R127i.w))); +PS0i = R124i.z; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R5i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R127i.w; +// 18 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R6i.y),intBitsToFloat(R6i.w),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +// 19 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R127i.w))); +R124i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PV1i.y = R124i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(PS0i)) + 1.0)); +PV1i.z = R123i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R1i.z))); +R127i.w = floatBitsToInt(max(-(intBitsToFloat(R5i.z)), 0.0)); +PS1i = R127i.w; +// 20 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.y))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(max(intBitsToFloat(R125i.w), intBitsToFloat(R126i.w))); +R126i.w = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +R4i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[0].z)),intBitsToFloat(R2i.y)) + 1.0)); +R4i.x = clampFI32(R4i.x); +PS0i = R4i.x; +// 21 +R9i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R2i.y = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0); +R1i.z = floatBitsToInt(min(intBitsToFloat(R127i.w), 1.0)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 22 +R8i.x = floatBitsToInt(intBitsToFloat(R6i.z) * intBitsToFloat(PS1i)); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.w))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.w))); +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].x), intBitsToFloat(R2i.z))); +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(R2i.z))); +PS0i = R7i.x; +// 0 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(R5i.w))); +R123i.y = floatBitsToInt((intBitsToFloat(R6i.z) * intBitsToFloat(0x3f75c28f) + intBitsToFloat(0x3d23d70a))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R9i.x)) + -(1.0))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].z), intBitsToFloat(R2i.z))); +PS0i = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(0x3ea2f983)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) * intBitsToFloat(0x3ea2f983)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3ea2f983)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(uf_remappedPS[9].w)) + 1.0)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PS0i))); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV1i.x))); +R6i.w = 0; +PS0i = R6i.w; +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.z))); +R6i.x = floatBitsToInt(min(intBitsToFloat(PV0i.x), intBitsToFloat(0x42000000))); +PS1i = R6i.x; +// 4 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +R6i.z = floatBitsToInt(min(intBitsToFloat(PV1i.x), intBitsToFloat(0x42000000))); +R6i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), intBitsToFloat(0x42000000))); +PS0i = R6i.y; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV0i.y))); +// 6 +backupReg0i = R0i.w; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].z), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].x), intBitsToFloat(PV0i.w))); +// 8 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.z))); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.z))); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.z))); +// 11 +R4i.x = floatBitsToInt(min(intBitsToFloat(PV0i.y), intBitsToFloat(0x42000000))); +R4i.y = floatBitsToInt(min(intBitsToFloat(PV0i.x), intBitsToFloat(0x42000000))); +R4i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), intBitsToFloat(0x42000000))); +// 12 +R0i.xyz = ivec3(R6i.x,R6i.y,R6i.z); +R0i.w = R6i.w; +// 13 +R1i.xyz = ivec3(R4i.x,R4i.y,R4i.z); +R1i.w = R4i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +} diff --git a/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/rules.txt b/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/rules.txt new file mode 100644 index 00000000..04c08121 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/KakarikoTorchShadows/rules.txt @@ -0,0 +1,7 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Kakariko Torch Shadows workaround (OpenGL) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/Kakariko Torch Shadows (OpenGL)" +description = Workaround for the square shadows seen around torches in Kakariko Village when using OpenGL.||Made by Kiri. +rendererFilter = opengl +version = 6 diff --git a/src/BreathOfTheWild/Workarounds/LWZXNullCheck/patch_LWZXCrashFix.asm b/src/BreathOfTheWild/Workarounds/LWZXNullCheck/patch_LWZXCrashFix.asm new file mode 100644 index 00000000..2472006e --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/LWZXNullCheck/patch_LWZXCrashFix.asm @@ -0,0 +1,165 @@ +[BotW_LWZXCrashFix_Shared] +moduleMatches = 0xD91A406D,0x0F748D9C,0x9A61FF4C,0x8E3324A9,0xD71D859D,0x6FD41A61,0x9A2CA0C7,0x29DBB52A,0xFD091F9F,0xD472D8A5,0x6267BFD0 + +.origin = codecave + +; null checked version of 'lwzx r31, r9, r0' +_lwzxCheck: +add r30, r9, r0 +xor r31, r31, r31 +cmpwi r30, 0 +beq .+0x8 +lwzx r31, r9, r0 +blr + +; null checked version of 'lwz r8, 0(r31)' +_lwzCheck: +xor r8, r8, r8 +oris r8, r8, 0xD15A +ori r8, r8, 0xB1ED +cmpwi r31, 0 +beq .+0x8 +lwz r8, 0(r31) +blr + + +[BotW_LWZXCrashFix_V33] +moduleMatches = 0xD91A406D + +; restore the 2 instructions possibly overwritten by cemu itself +0x03721B00 = stwu r1, -0x28(r1) +0x03721B04 = mflr r0 + +; replace simple loads with calls to the patched functions +0x03721CA8 = bla _lwzxCheck +0x03721CB4 = bla _lwzCheck + +0x03721D20 = bla _lwzxCheck +0x03721D2C = bla _lwzCheck + +[BotW_LWZXCrashFix_V48] +moduleMatches = 0x0F748D9C + +; restore the 2 instructions possibly overwritten by cemu itself +0x03721F0C = stwu r1, -0x28(r1) +0x03721F10 = mflr r0 + +; replace simple loads with calls to these funcs +0x037220B4 = bla _lwzxCheck +0x037220C0 = bla _lwzCheck + +0x0372212C = bla _lwzxCheck +0x03722138 = bla _lwzCheck + +[BotW_LWZXCrashFix_V64] +moduleMatches = 0x9A61FF4C + +; restore the 2 instructions possibly overwritten by cemu itself +0x037235F4 = stwu r1, -0x28(r1) +0x037235F8 = mflr r0 + +; replace simple loads with calls to these funcs +0x0372379C = bla _lwzxCheck +0x037237A8 = bla _lwzCheck + +0x03723814 = bla _lwzxCheck +0x03723820 = bla _lwzCheck + + +[BotW_LWZXCrashFix_V80] +moduleMatches = 0x8E3324A9 + +; restore the 2 instructions possibly overwritten by cemu itself +0x03744368 = stwu r1, -0x28(r1) +0x0374436C = mflr r0 + +; replace simple loads with calls to these funcs +0x03744510 = bla _lwzxCheck +0x0374451C = bla _lwzCheck + +0x03744588 = bla _lwzxCheck +0x03744594 = bla _lwzCheck + +[BotW_LWZXCrashFix_V97] +moduleMatches = 0xD71D859D + +; restore the 2 instructions possibly overwritten by cemu itself +0x03799E3C = stwu r1, -0x28(r1) +0x03799E40 = mflr r0 + +; replace simple loads with calls to these funcs +0x03799FE4 = bla _lwzxCheck +0x03799FF0 = bla _lwzCheck + +0x0379A05C = bla _lwzxCheck +0x0379A068 = bla _lwzCheck + +[BotW_LWZXCrashFix_V112] +moduleMatches = 0x6FD41A61 + +; restore the 2 instructions possibly overwritten by cemu itself +0x0379AF6C = stwu r1, -0x28(r1) +0x0379AF70 = mflr r0 + +; replace simple loads with calls to these funcs +0x0379B114 = bla _lwzxCheck +0x0379B120 = bla _lwzCheck + +0x0379B18C = bla _lwzxCheck +0x0379B198 = bla _lwzCheck + +[BotW_LWZXCrashFix_V144] +moduleMatches = 0x9A2CA0C7 + +; restore the 2 instructions possibly overwritten by cemu itself +0x037CF648 = stwu r1, -0x28(r1) +0x037CF64C = mflr r0 + +; replace simple loads with calls to these funcs +0x037CF7F0 = bla _lwzxCheck +0x037CF7FC = bla _lwzCheck + +0x037CF868 = bla _lwzxCheck +0x037CF874 = bla _lwzCheck + +[BotW_LWZXCrashFix_V160] +moduleMatches = 0x29DBB52A + +; restore the 2 instructions possibly overwritten by cemu itself +0x037CF514 = stwu r1, -0x28(r1) +0x037CF518 = mflr r0 + +; replace simple loads with calls to these funcs +0x037CF6BC = bla _lwzxCheck +0x037CF6C8 = bla _lwzCheck + +0x037CF734 = bla _lwzxCheck +0x037CF740 = bla _lwzCheck + +[BotW_LWZXCrashFix_V176V192] +moduleMatches = 0xFD091F9F,0xD472D8A5 + +; restore the 2 instructions possibly overwritten by cemu itself +0x038E3A30 = stwu r1, -0x28(r1) +0x038E3A34 = mflr r0 + +; replace simple loads with calls to these funcs +0x038E3BD8 = bla _lwzxCheck +0x038E3BE4 = bla _lwzCheck + +0x038E3C50 = bla _lwzxCheck +0x038E3C5C = bla _lwzCheck + +[BotW_LWZXCrashFix_V208] +moduleMatches = 0x6267BFD0 + +; restore the 2 instructions possibly overwritten by cemu itself +0x038E46CC = stwu r1, -0x28(r1) +0x038E46D0 = mflr r0 + +; replace simple loads with calls to these funcs +0x038E4874 = bla _lwzxCheck +0x038E4880 = bla _lwzCheck + +0x038E48EC = bla _lwzxCheck +0x038E48F8 = bla _lwzCheck \ No newline at end of file diff --git a/src/BreathOfTheWild/Workarounds/LWZXNullCheck/rules.txt b/src/BreathOfTheWild/Workarounds/LWZXNullCheck/rules.txt new file mode 100644 index 00000000..739420bc --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/LWZXNullCheck/rules.txt @@ -0,0 +1,7 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = LWZX Crash (OpenGL) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/LWZX Crash (OpenGL)" +description = Prevents crashes when the Full sync at GX2DrawDone() is disabled. Only applicable for OpenGL.||Made by rajkosto. +rendererFilter = opengl +version = 6 diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/17aae2b035ae850c_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/17aae2b035ae850c_0000000000000000_vs.txt new file mode 100644 index 00000000..e940fa8a --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/17aae2b035ae850c_0000000000000000_vs.txt @@ -0,0 +1,1850 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader 17aae2b035ae850c // distant cloud and fog vs +uniform ivec4 uf_remappedVS[68]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +layout(location = 11) in uvec4 attrDataSem11; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem7; +layout(location = 5) out vec4 passParameterSem8; +layout(location = 7) out vec4 passParameterSem11; +layout(location = 8) out vec4 passParameterSem14; +layout(location = 9) out vec4 passParameterSem15; +layout(location = 10) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 6) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem5.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem11; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R11i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem10; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R10i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem4; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem8; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R10i.z = floatBitsToInt(-(intBitsToFloat(R10i.y)) + 1.0); +R6i.w = 0; +R7i.w = floatBitsToInt(1.0); +PS0i = R7i.w; +// 1 +R10i.w = floatBitsToInt(-(intBitsToFloat(R5i.w)) + intBitsToFloat(uf_remappedVS[0].x)); +R15i.w = floatBitsToInt(-(intBitsToFloat(R10i.x)) + 1.0); +PS1i = R15i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R10i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R19i.x = 0; +R19i.y = 0; +R19i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].y) * intBitsToFloat(0x40a00000)); +R21i.x = 0; +PS0i = R21i.x; +// 1 +R5i.w = R7i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R5i.w = R6i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R5i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R4i.w)); +// 1 +R22i.x = floatBitsToInt(float(PS0i)); +PS1i = R22i.x; +// 2 +predResult = (intBitsToFloat(R10i.w) >= intBitsToFloat(R22i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R19i.x = 0; +R19i.y = 0; +R19i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].y) * intBitsToFloat(0x40a00000)); +R21i.x = 0; +PS0i = R21i.x; +// 1 +R6i.w = R7i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R6i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(uf_remappedVS[2].y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(uf_remappedVS[2].z))); +PV0i.w = floatBitsToInt(max(intBitsToFloat(R8i.x), 0.0)); +// 1 +PV1i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 0.0)); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedVS[3].w))); +PS1i = R13i.z; +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV1i.z)); +PV0i.x = R0i.x; +R14i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].w) + intBitsToFloat(R10i.w)); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedVS[2].x))); +// 4 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedVS[3].y))); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_remappedVS[3].z))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedVS[3].y))); +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +R17i.x = ((intBitsToFloat(uf_remappedVS[4].x) == 1.0)?int(0xFFFFFFFF):int(0x0)); +R12i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].x)) + 1.0); +// 1 +predResult = (R17i.x != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(R14i.z))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].w), intBitsToFloat(PV0i.x))); +// 2 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].x), intBitsToFloat(PV1i.w))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].y), intBitsToFloat(PV1i.w))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].z), intBitsToFloat(PV1i.w))); +} +activeMaskStack[3] = activeMaskStack[3] == false; +activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true; +if( activeMaskStackC[4] == true ) { +// 0 +tempResultf = log2(abs(intBitsToFloat(uf_remappedVS[4].x))); +PS0i = floatBitsToInt(tempResultf); +// 1 +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f317218)); +tempResultf = log2(intBitsToFloat(uf_remappedVS[4].x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(PS1i))); +R127i.y = ((intBitsToFloat(uf_remappedVS[4].x) == 0.0)?(0xff7fffff):(PV1i.z)); +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(R12i.y)); +PS0i = R127i.z; +// 3 +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + -(1.0)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 5 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(R14i.z) + -(intBitsToFloat(PV1i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.y))); +// 8 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].w), intBitsToFloat(PV1i.x))); +// 9 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].x), intBitsToFloat(PV0i.w))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].y), intBitsToFloat(PV0i.w))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].z), intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = uf_remappedVS[6].x & 0x00020000; +R127i.y = uf_remappedVS[6].x & 0x00010000; +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R8i.z)); +R125i.w = uf_remappedVS[6].x & 0x00040000; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[7].z)); +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * 0.5); +R126i.y = R8i.z; +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[7].x) * intBitsToFloat(PS0i)); +R124i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R8i.y)); +R127i.w = floatBitsToInt(float(PV0i.x)); +PS1i = R127i.w; +// 2 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PV1i.z))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.z) > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z)))); +PV0i.z = R127i.z; +R126i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.x = floatBitsToInt(float(R127i.y)); +PS0i = R127i.x; +// 3 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(R127i.w))?1.0:0.0); +R127i.y = ((intBitsToFloat(PV0i.z) > 1.0)?int(0xFFFFFFFF):int(0x0)); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + -(intBitsToFloat(PV1i.x))); +R123i.y = ((PV1i.y == 0)?(R127i.z):(PS1i)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(R127i.x))?1.0:0.0); +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3fc90fdb)); +PS0i = floatBitsToInt(float(R125i.w)); +// 5 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt(min(intBitsToFloat(PV0i.y), 1.0)); +R125i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R125i.w; +// 6 +R124i.x = floatBitsToInt(((R127i.y == 0)?(intBitsToFloat(R127i.w)):(-(intBitsToFloat(R127i.w))))); +R125i.y = ((R127i.y == 0)?(0):(R126i.w)); +R126i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(1.0))); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R125i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R125i.x; +// 7 +backupReg0i = R126i.y; +backupReg1i = R124i.w; +R127i.x = R8i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +PV1i.y = R126i.y; +PV1i.z = 0 - R125i.w; +R124i.w = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg1i) * 0.5); +PS1i = R127i.z; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(0x3edcf805) * intBitsToFloat(PV1i.y) + 1.0)); +PV0i.x = R123i.x; +R127i.y = max(R125i.w, PV1i.z); +R123i.z = floatBitsToInt((intBitsToFloat(0x3d6ee04d) * intBitsToFloat(PV1i.y) + intBitsToFloat(0x3f43b24e))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R8i.z)); +R0i.x = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5)); +R0i.x = floatBitsToInt(intBitsToFloat(R0i.x) * 2.0); +PS0i = R0i.x; +// 9 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +R127i.x = 0 - R125i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.z)) + 1.0)); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +R127i.w = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.z)), intBitsToFloat(PV0i.x))); +R124i.z = int(intBitsToFloat(backupReg1i)); +PS1i = R124i.z; +// 10 +R126i.x = R8i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R126i.y = floatBitsToInt((intBitsToFloat(uf_remappedVS[7].x) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(R124i.w))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(R124i.w) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(uf_remappedVS[7].x))?1.0:0.0); +R124i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +R12i.z = max(R125i.x, R127i.x); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R0i.z = floatBitsToInt(intBitsToFloat(R125i.w) * 0.5); +PS1i = R0i.z; +// 12 +R125i.x = floatBitsToInt(intBitsToFloat(R126i.y) + -(intBitsToFloat(PV1i.x))); +R0i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(0.5)); +R0i.y = floatBitsToInt(intBitsToFloat(R0i.y) * 2.0); +R123i.z = ((intBitsToFloat(R126i.z) > 0.0)?(PV1i.w):(floatBitsToInt(-(intBitsToFloat(PV1i.w))))); +PV0i.z = R123i.z; +PV0i.w = 0 - R124i.z; +R127i.x = floatBitsToInt(float(R127i.y)); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +PS0i = R127i.x; +// 13 +backupReg0i = R125i.y; +backupReg1i = R125i.z; +PV1i.x = floatBitsToInt((intBitsToFloat(R125i.z) > 0.0)?1.0:0.0); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg0i))); +PV1i.y = R125i.y; +R125i.z = floatBitsToInt(floor(intBitsToFloat(R126i.x))); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(backupReg1i))?1.0:0.0); +R126i.x = max(R124i.z, PV0i.w); +PS1i = R126i.x; +// 14 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PV1i.y))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.y) > 0.0)?1.0:0.0); +R124i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +R6i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.x)), intBitsToFloat(R124i.y))); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.z) + -(0.5)); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +PS0i = R0i.w; +// 15 +R12i.x = floatBitsToInt(intBitsToFloat(R8i.y) + -(0.5)); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(R125i.z))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(R125i.z) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(float(R12i.z)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 16 +backupReg0i = R124i.z; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.w)); +R124i.z = ((intBitsToFloat(uf_remappedVS[7].x) == 0.0)?int(0xFFFFFFFF):int(0x0)); +R7i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(backupReg0i))); +PS0i = floatBitsToInt(float(R126i.x)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 17 +PV1i.x = ((0.0 > intBitsToFloat(uf_remappedVS[7].z))?int(0xFFFFFFFF):int(0x0)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fc90fdb)); +R12i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(PV0i.x))); +R12i.w = floatBitsToInt(intBitsToFloat(R8i.x) + -(0.5)); +R13i.x = floatBitsToInt(intBitsToFloat(R8i.z) + -(0.5)); +PS1i = R13i.x; +// 18 +backupReg0i = R124i.z; +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.y) + -(intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(0x3fc90fdb)); +R124i.z = ((intBitsToFloat(uf_remappedVS[7].z) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +tempResultf = log2(intBitsToFloat(uf_remappedVS[4].x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 19 +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(R13i.z))); +PV1i.y = uf_remappedVS[8].y; +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +R123i.z = ((PV0i.w == 0)?(PV0i.x):(0x40490fdb)); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt(1.0 / intBitsToFloat(R12i.y)); +PS1i = R125i.z; +// 20 +R16i.x = 0x3f800000; +R12i.y = ((R124i.z == 0)?(PV1i.z):(R125i.y)); +PV0i.z = uf_remappedVS[8].x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 21 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV0i.z)); +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV0i.w))); +R14i.w = floatBitsToInt(intBitsToFloat(R8i.x) + 1.0); +R7i.x = floatBitsToInt(intBitsToFloat(R8i.y) + 1.0); +PS1i = R7i.x; +// 22 +backupReg0i = R14i.x; +R14i.x = floatBitsToInt(intBitsToFloat(R8i.z) + 1.0); +R7i.y = ((intBitsToFloat(R10i.w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R13i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(R125i.z)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(uf_remappedVS[9].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[9].y))); +R126i.z = ((intBitsToFloat(uf_remappedVS[10].w) == 1.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[10].w)) + 1.0); +tempResultf = log2(intBitsToFloat(uf_remappedVS[10].w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 1 +R125i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[10].y) + intBitsToFloat(PV0i.y)); +PV1i.x = R125i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(uf_remappedVS[9].z))); +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[10].x)); +PV1i.z = R125i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.w), intBitsToFloat(PS0i))); +R124i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R124i.z; +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R7i.w))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(uf_remappedVS[11].y))); +R127i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[10].z) + intBitsToFloat(PV1i.y)); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R6i.w))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R124i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0i.x)); +R125i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R12i.z))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.w), intBitsToFloat(uf_remappedVS[11].x))); +// 4 +R125i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(R124i.z)); +R127i.z = floatBitsToInt(intBitsToFloat(PS1i) + 0.0); +R127i.w = floatBitsToInt(intBitsToFloat(R125i.y) + 0.0); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(uf_remappedVS[11].z))); +// 5 +R123i.x = ((R126i.z == 0)?(PV0i.y):(R10i.w)); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(intBitsToFloat(PS0i) + 0.0); +R126i.z = ((R17i.x == 0)?(R13i.w):(R14i.z)); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.w), intBitsToFloat(uf_remappedVS[12].x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(uf_remappedVS[12].x))); +PS1i = R126i.y; +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PV1i.z))); +PS0i = R125i.z; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R126i.z))); +R125i.y = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV0i.y)); +PS1i = R125i.y; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R125i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R12i.y)); +R125i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV1i.w)); +PS0i = R125i.z; +// 9 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R125i.y))); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.w = R123i.w; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV0i.z))); +PS1i = R125i.y; +// 10 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R125i.z))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.w = R123i.w; +R124i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(PV1i.z)); +PS0i = R124i.x; +// 11 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983)); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983)); +PV1i.z = R125i.z; +R124i.w = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R125i.y)); +R126i.z = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(PV0i.y)); +PS1i = R126i.z; +// 12 +backupReg0i = R7i.y; +R125i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983)); +PV0i.x = R125i.x; +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.x), intBitsToFloat(uf_remappedVS[12].x))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R22i.x), intBitsToFloat(uf_remappedVS[13].w))); +R4i.w = ((backupReg0i == 0)?(R10i.w):(0x3f800000)); +R127i.x = floatBitsToInt(cos((intBitsToFloat(PV1i.z))/0.1591549367)); +PS0i = R127i.x; +// 13 +R13i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.w),intBitsToFloat(R126i.z),intBitsToFloat(R16i.x)))); +PV1i.x = R13i.x; +PV1i.y = R13i.x; +PV1i.z = R13i.x; +PV1i.w = R13i.x; +R127i.w = floatBitsToInt(sin((intBitsToFloat(PV0i.x))/0.1591549367)); +PS1i = R127i.w; +// 14 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(sin((intBitsToFloat(R125i.z))/0.1591549367)); +PS0i = R127i.y; +// 15 +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.w))); +R125i.z = floatBitsToInt(cos((intBitsToFloat(R125i.x))/0.1591549367)); +PS1i = R125i.z; +// 16 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PV0i.x = R125i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(sin((intBitsToFloat(R126i.x))/0.1591549367)); +PS0i = R125i.y; +// 17 +backupReg0i = R126i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R125i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.z))); +R1i.w = floatBitsToInt(-(intBitsToFloat(PS0i))); +R126i.x = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367)); +PS1i = R126i.x; +// 18 +backupReg0i = R127i.w; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R1i.y = floatBitsToInt(-(intBitsToFloat(R124i.y)) + intBitsToFloat(PV1i.z)); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.w = R127i.w; +R4i.y = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV1i.y)); +PS0i = R4i.y; +// 19 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R126i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R15i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R124i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R15i.x))); +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R126i.x))); +PS1i = R14i.x; +// 20 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R15i.x))); +R9i.y = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z)); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 21 +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.w),intBitsToFloat(R126i.z),intBitsToFloat(R16i.x)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R14i.y = tempi.x; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.w))); +PS1i = R125i.z; +// 22 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R4i.x)) + intBitsToFloat(R127i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R14i.x)) + intBitsToFloat(backupReg0i))); +PV0i.y = R123i.y; +// 23 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.w),intBitsToFloat(R126i.z),intBitsToFloat(R16i.x)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.y))); +PS1i = R122i.x; +// 24 +R0i.x = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(R126i.x)); +PV0i.x = R0i.x; +R0i.y = floatBitsToInt(intBitsToFloat(R14i.y) + intBitsToFloat(R125i.z)); +PV0i.y = R0i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PS1i)); +PV0i.z = R2i.z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 25 +backupReg0i = R7i.y; +backupReg1i = R4i.w; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R127i.w))); +R7i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(backupReg0i)); +R0i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R126i.y)); +R4i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R126i.w)); +R3i.z = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(PS0i)); +R3i.z = clampFI32(R3i.z); +PS1i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(R0i.z)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R1i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.w)) + intBitsToFloat(R3i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R14i.x)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R2i.w = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV0i.x)); +// 2 +R12i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.x)) + intBitsToFloat(R127i.w))); +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +R13i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R9i.y)) + intBitsToFloat(PV1i.z))); +// 3 +predResult = (intBitsToFloat(uf_remappedVS[14].y) != 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +PV0i.x = uf_remappedVS[15].w; +PV0i.y = uf_remappedVS[16].w; +// 1 +R127i.x = floatBitsToInt(-(intBitsToFloat(R0i.x)) + intBitsToFloat(PV0i.y)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.x)); +PV1i.w = uf_remappedVS[17].w; +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[14].y)); +PS1i = R126i.y; +// 2 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.w)); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(R126i.y)); +PV1i.x = clampFI32(PV1i.x); +// 6 +backupReg0i = R3i.z; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[16].w) + intBitsToFloat(uf_remappedVS[15].w)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(backupReg0i)); +R1i.w = 0x3f800000; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R13i.y)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[17].w)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_remappedVS[18].w))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(uf_remappedVS[18].z))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +// 2 +PV0i.x = ((0.0 > intBitsToFloat(PV1i.w))?int(0xFFFFFFFF):int(0x0)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[13].x))); +PV0i.y = R126i.y; +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3dd70a3d)); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.w)), intBitsToFloat(PV1i.w))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R127i.y)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[13].z), intBitsToFloat(uf_remappedVS[18].w))); +R0i.w = ((PV0i.x == 0)?(PS0i):(PV0i.w)); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[13].y), intBitsToFloat(uf_remappedVS[18].z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +// 6 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +// 7 +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.w = R123i.w; +// 8 +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983)); +PV0i.z = R127i.z; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.z))/0.1591549367)); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R126i.z))); +PS0i = floatBitsToInt(cos((intBitsToFloat(R127i.z))/0.1591549367)); +// 11 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS0i))); +R1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.x))/0.1591549367)); +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R126i.y))); +R2i.w = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(PV1i.x)); +// 13 +R2i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.x)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R13i.x) + -(intBitsToFloat(uf_remappedVS[19].x))); +R126i.y = floatBitsToInt(intBitsToFloat(R14i.y) + -(intBitsToFloat(uf_remappedVS[19].y))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(uf_remappedVS[20].w))); +// 1 +PV1i.z = floatBitsToInt(intBitsToFloat(R9i.z) + -(intBitsToFloat(uf_remappedVS[19].z))); +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 3 +R0i.y = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R0i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(uf_remappedVS[21].x))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[12].y), intBitsToFloat(R0i.z))); +R126i.z = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[21].y))); +R0i.w = ((intBitsToFloat(backupReg0i) > intBitsToFloat(uf_remappedVS[21].x))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = R0i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[21].x)); +// 1 +backupReg0i = R1i.w; +backupReg0i = R1i.w; +R0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +R1i.w = ((PV0i.w == 0)?(backupReg0i):(backupReg0i)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[21].y)); +// 2 +R1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[20].x), intBitsToFloat(R0i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[20].z), intBitsToFloat(R0i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[20].y), intBitsToFloat(R0i.y))); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.z))); +R7i.w = 0x3f800000; +PS1i = R7i.w; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV1i.y)); +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(PV0i.y)); +R0i.y = uf_remappedVS[22].x; +R126i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.x)); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(R13i.x)) + intBitsToFloat(PV0i.z)); +// 4 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(backupReg0i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(backupReg0i))); +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.y))); +PS0i = R127i.x; +// 5 +backupReg0i = R126i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(PV0i.z)); +R126i.y = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV0i.w)); +R126i.z = floatBitsToInt(intBitsToFloat(R14i.y) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.y))); +PS1i = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(PV0i.x)); +// 6 +R2i.x = ((R0i.w == 0)?(PV1i.x):(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV1i.w)); +R1i.z = uf_remappedVS[22].y; +PV0i.w = floatBitsToInt(intBitsToFloat(R14i.y) + intBitsToFloat(R127i.x)); +R2i.z = uf_remappedVS[22].z; +PS0i = R2i.z; +// 7 +R0i.x = uf_remappedVS[23].x; +R4i.y = ((R0i.w == 0)?(R126i.z):(PV0i.w)); +R4i.z = ((R0i.w == 0)?(R126i.y):(PV0i.y)); +R0i.w = uf_remappedVS[24].x; +R1i.x = uf_remappedVS[24].y; +PS1i = R1i.x; +// 8 +R2i.w = uf_remappedVS[24].z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R22i.x)); +// 9 +R6i.z = uf_remappedVS[25].z; +R6i.w = uf_remappedVS[25].w; +R3i.z = floatBitsToInt(intBitsToFloat(R10i.w) * intBitsToFloat(PS0i)); +PS1i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[26].x),intBitsToFloat(uf_remappedVS[26].y),intBitsToFloat(uf_remappedVS[26].z),intBitsToFloat(uf_remappedVS[26].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R5i.z = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[27].x),intBitsToFloat(uf_remappedVS[27].y),intBitsToFloat(uf_remappedVS[27].z),intBitsToFloat(uf_remappedVS[27].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.y = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[28].x),intBitsToFloat(uf_remappedVS[28].y),intBitsToFloat(uf_remappedVS[28].z),intBitsToFloat(uf_remappedVS[28].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.w = tempi.x; +// 3 +R9i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[29].x),intBitsToFloat(uf_remappedVS[29].y),intBitsToFloat(uf_remappedVS[29].z),intBitsToFloat(uf_remappedVS[29].w)))); +PV1i.x = R9i.x; +PV1i.y = R9i.x; +PV1i.z = R9i.x; +PV1i.w = R9i.x; +// 4 +backupReg0i = R0i.y; +R5i.x = floatBitsToInt((intBitsToFloat(R4i.w) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.x = R5i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[30].x))); +PV0i.z = PV1i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedVS[30].y))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedVS[30].z))); +PS0i = R1i.z; +// 5 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(uf_remappedVS[30].w))); +R123i.y = floatBitsToInt((intBitsToFloat(R4i.w) * 0.0 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R5i.w = floatBitsToInt((intBitsToFloat(R4i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.w = R5i.w; +R3i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R3i.w; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +R7i.y = floatBitsToInt((intBitsToFloat(R5i.z) * 0.5 + intBitsToFloat(PV1i.y))); +R7i.z = floatBitsToInt((intBitsToFloat(R6i.y) * -(0.5) + intBitsToFloat(PV1i.y))); +// 7 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedVS[1].w)) + -(intBitsToFloat(uf_remappedVS[1].y)))); +PV1i.z = R123i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R14i.y),intBitsToFloat(R9i.z),intBitsToFloat(R7i.w)),vec4(intBitsToFloat(uf_remappedVS[28].x),intBitsToFloat(uf_remappedVS[28].y),intBitsToFloat(uf_remappedVS[28].z),intBitsToFloat(uf_remappedVS[28].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 9 +R0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[1].z)) * intBitsToFloat(PS0i)); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R13i.x),intBitsToFloat(R14i.y),intBitsToFloat(R9i.z),intBitsToFloat(R7i.w)),vec4(intBitsToFloat(uf_remappedVS[29].x),intBitsToFloat(uf_remappedVS[29].y),intBitsToFloat(uf_remappedVS[29].z),intBitsToFloat(uf_remappedVS[29].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 11 +PV1i.y = PV0i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +R123i.w = floatBitsToInt((intBitsToFloat(R127i.w) * 0.0 + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 12 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * 0.5 + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 13 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[1].w), intBitsToFloat(PV1i.y))); +// 15 +PV1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[1].y)) + intBitsToFloat(PV0i.x)); +// 16 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 17 +R2i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[1].z)) * intBitsToFloat(PS0i)); +// 18 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[31].y))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(uf_remappedVS[31].x))); +R2i.z = ((intBitsToFloat(R8i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_remappedVS[31].z))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(uf_remappedVS[32].x))); +PV0i.y = floatBitsToInt((intBitsToFloat(uf_remappedVS[33].w) > 0.0)?1.0:0.0); +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedVS[32].x))); +R12i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedVS[32].x))); +PS0i = floatBitsToInt((0.0 > intBitsToFloat(uf_remappedVS[33].w))?1.0:0.0); +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[32].x), intBitsToFloat(R1i.y))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[32].x), intBitsToFloat(R1i.x))); +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[32].x), intBitsToFloat(R0i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[33].w)); +// 2 +PV0i.x = uf_remappedVS[6].x & 0x00080000; +R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(R10i.w) * intBitsToFloat(PS1i)); +R127i.w = ((R2i.z == 0)?(R10i.x):(R15i.w)); +PS0i = uf_remappedVS[6].x & 0x00100000; +// 3 +PV1i.x = (PV0i.x == 0x00080000)?int(0xFFFFFFFF):int(0x0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(uf_remappedVS[34].x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R126i.z = (PS0i == 0x00100000)?int(0xFFFFFFFF):int(0x0); +PV1i.w = ((intBitsToFloat(R8i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS1i = uf_remappedVS[6].x & 0x00200000; +// 4 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +R123i.y = ((PV1i.w == 0)?(R10i.y):(R10i.z)); +PV0i.y = R123i.y; +R1i.z = ((PV1i.x == 0)?(R10i.x):(R127i.w)); +R127i.w = (PS1i == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PS0i = ((intBitsToFloat(R8i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.x))); +R1i.y = ((R126i.z == 0)?(R10i.y):(PV0i.y)); +R123i.z = ((PS0i == 0)?(R10i.x):(R15i.w)); +PV1i.z = R123i.z; +PV1i.w = uf_remappedVS[6].x & 0x00400000; +PS1i = ((intBitsToFloat(R8i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 6 +R1i.x = ((R127i.w == 0)?(R10i.x):(PV1i.z)); +R123i.y = ((PS1i == 0)?(R10i.y):(R10i.z)); +PV0i.y = R123i.y; +PV0i.z = (PV1i.w == 0x00400000)?int(0xFFFFFFFF):int(0x0); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.x))); +// 7 +R2i.z = uf_remappedVS[6].x & 0x00800000; +R1i.w = ((PV0i.z == 0)?(R10i.y):(PV0i.y)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[35].w)) + intBitsToFloat(uf_remappedVS[36].w)); +R126i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(uf_remappedVS[36].w))); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(uf_remappedVS[35].w))); +PV0i.z = R126i.z; +// 1 +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[35].x)) + intBitsToFloat(uf_remappedVS[36].x)); +R127i.z = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R127i.z; +R127i.w = (R2i.z == 0x00800000)?int(0xFFFFFFFF):int(0x0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(PS1i)); +R126i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[36].x)) + intBitsToFloat(uf_remappedVS[37].x)); +PS0i = ((intBitsToFloat(R8i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(uf_remappedVS[37].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(uf_remappedVS[35].x))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); +R123i.w = ((PS0i == 0)?(R10i.x):(R15i.w)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[35].x), intBitsToFloat(PV0i.y))); +// 4 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z)) + intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[36].w)) + intBitsToFloat(uf_remappedVS[37].w)); +R0i.z = ((R127i.w == 0)?(R10i.x):(PV1i.w)); +R127i.w = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.w = R127i.w; +PS0i = ((intBitsToFloat(R8i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PV1i.y = uf_remappedVS[6].x & 0x01000000; +R127i.z = ((PS0i == 0)?(R10i.y):(R10i.z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +PV0i.z = (PV1i.y == 0x01000000)?int(0xFFFFFFFF):int(0x0); +PV0i.w = uf_remappedVS[6].y & int(1); +// 7 +R10i.x = (int(1) != PV0i.w)?int(0xFFFFFFFF):int(0x0); +R0i.y = ((PV0i.z == 0)?(R10i.y):(R127i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(uf_remappedVS[36].x))); +PV1i.w = R123i.w; +// 8 +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R127i.y)) + intBitsToFloat(R126i.x))); +PV0i.w = R123i.w; +// 9 +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[37].x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R2i.z; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[31].w))); +PS0i = int(intBitsToFloat(uf_remappedVS[38].z)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[39].z) + intBitsToFloat(uf_remappedVS[40].x)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(uf_remappedVS[40].x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(uf_remappedVS[40].y))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[39].w) + intBitsToFloat(uf_remappedVS[40].y)); +R127i.y = floatBitsToInt(float(PS0i)); +PS1i = R127i.y; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PV0i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.w)),intBitsToFloat(uf_remappedVS[39].x)) + -(intBitsToFloat(PV0i.w)))); +R127i.z = ((intBitsToFloat(PV0i.z) == 0.0)?(0):(PV0i.y)); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[39].y)) + intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[38].z)); +// 4 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[38].x), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)); +R126i.z = ((R10i.x == 0)?(0):(int(1))); +PV0i.z = R126i.z; +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[38].w)); +// 5 +R123i.x = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +PV1i.x = R123i.x; +R125i.y = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[38].y), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PV0i.x)) + -(0.5))); +PS1i = int(intBitsToFloat(PV0i.w)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[41].x) + intBitsToFloat(uf_remappedVS[41].z)); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[41].y) + intBitsToFloat(uf_remappedVS[41].w)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PV1i.z)) + -(0.5))); +R123i.w = ((intBitsToFloat(R127i.y) == 0.0)?(0):(PV1i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 7 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(uf_remappedVS[41].z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(uf_remappedVS[41].w)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.w = (R126i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +PS1i = int(intBitsToFloat(PV0i.w)); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[40].w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[40].z)) + intBitsToFloat(PV1i.x))); +R123i.z = ((PV1i.w == 0)?(R8i.x):(R8i.z)); +PV0i.z = R123i.z; +R123i.w = ((PV1i.w == 0)?(R8i.y):(R8i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 9 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R125i.z)) + -(intBitsToFloat(R127i.z)))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.y))); +PV1i.y = R123i.y; +R123i.z = ((R125i.y == 0)?(PV0i.z):(R8i.y)); +PV1i.z = R123i.z; +R123i.w = ((R125i.y == 0)?(PV0i.w):(R8i.z)); +PV1i.w = R123i.w; +R127i.x = ((R125i.y == 0)?(R8i.x):(R8i.y)); +PS1i = R127i.x; +// 10 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[42].x), intBitsToFloat(PV1i.z))); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[42].y), intBitsToFloat(PV1i.w))); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +R127i.w = ((R125i.y == 0)?(R8i.y):(R8i.z)); +PS0i = int(intBitsToFloat(uf_remappedVS[43].z)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[44].z) + intBitsToFloat(uf_remappedVS[42].x)); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[44].w) + intBitsToFloat(uf_remappedVS[42].y)); +R126i.w = ((R10i.x == 0)?(0):(0x00000002)); +R127i.y = floatBitsToInt(float(PS0i)); +PS1i = R127i.y; +// 12 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y)); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PV0i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.w)),intBitsToFloat(uf_remappedVS[44].x)) + -(intBitsToFloat(PV0i.w)))); +R127i.z = ((intBitsToFloat(PV0i.z) == 0.0)?(0):(PV0i.y)); +PV1i.z = R127i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[44].y)) + intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[43].z)); +// 14 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[43].x), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)); +R126i.z = (R126i.w == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[43].w)); +// 15 +R123i.x = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +PV1i.x = R123i.x; +R125i.y = (R126i.w == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[43].y), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.x)) + -(0.5))); +PS1i = int(intBitsToFloat(PV0i.w)); +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[45].x) + intBitsToFloat(uf_remappedVS[45].z)); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[45].y) + intBitsToFloat(uf_remappedVS[45].w)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(PV1i.z)) + -(0.5))); +R123i.w = ((intBitsToFloat(R127i.y) == 0.0)?(0):(PV1i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[45].w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[45].z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R127i.w = ((R125i.y == 0)?(R8i.x):(R8i.z)); +PS1i = int(intBitsToFloat(PV0i.w)); +// 18 +backupReg0i = R125i.y; +backupReg0i = R125i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[42].w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[42].z)) + intBitsToFloat(PV1i.z))); +R123i.z = ((backupReg0i == 0)?(R8i.z):(R8i.y)); +PV0i.z = R123i.z; +R123i.w = ((backupReg0i == 0)?(R8i.y):(R8i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 19 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R125i.z)) + -(intBitsToFloat(R127i.y)))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.y))); +PV1i.y = R123i.y; +R123i.z = ((R126i.z == 0)?(R127i.w):(R8i.y)); +PV1i.z = R123i.z; +R127i.w = ((R126i.z == 0)?(PV0i.w):(R8i.z)); +R0i.w = ((R126i.z == 0)?(PV0i.z):(R8i.x)); +PS1i = R0i.w; +// 20 +R10i.x = ((R126i.z == 0)?(R8i.y):(R8i.z)); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y))); +R1i.z = ((R126i.z == 0)?(R8i.x):(R8i.y)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[46].x), intBitsToFloat(PV1i.z))); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) * 2.0); +PS0i = int(intBitsToFloat(uf_remappedVS[47].z)); +// 21 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[46].y), intBitsToFloat(R127i.w))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +R5i.y = floatBitsToInt(intBitsToFloat(R124i.y) + 0.5); +PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[48].z) + intBitsToFloat(uf_remappedVS[46].x)); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[48].w) + intBitsToFloat(uf_remappedVS[46].y)); +R1i.w = floatBitsToInt(float(PS0i)); +PS1i = R1i.w; +// 22 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 23 +R8i.x = ((intBitsToFloat(PV0i.w) == 0.0)?(0):(PV0i.x)); +PV1i.x = R8i.x; +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.w)),intBitsToFloat(uf_remappedVS[48].x)) + -(intBitsToFloat(PV0i.y)))); +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[48].y)) + intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[47].z)); +// 24 +R3i.x = floatBitsToInt(intBitsToFloat(R125i.x) + 0.5); +R8i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[47].x), intBitsToFloat(PS1i))); +R8i.w = floatBitsToInt(abs(intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.x)); +R1i.y = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[47].w)); +PS0i = R1i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[47].y), intBitsToFloat(R1i.y))); +PV0i.x = R125i.x; +R1i.y = floatBitsToInt(intBitsToFloat(R10i.y) + 0.5); +R123i.z = ((-(intBitsToFloat(R8i.x)) > 0.0)?(R8i.w):(R8i.x)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R8i.z)) + -(0.5))); +PS0i = int(intBitsToFloat(R8i.y)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[49].y) + intBitsToFloat(uf_remappedVS[49].z)); +R123i.y = ((intBitsToFloat(R1i.w) == 0.0)?(0):(PV0i.z)); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + -(0.5))); +R1i.w = floatBitsToInt(intBitsToFloat(R1i.x) + 0.5); +PS1i = floatBitsToInt(float(PS0i)); +// 2 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[49].z),intBitsToFloat(R0i.w)) + intBitsToFloat(PV1i.x))); +R124i.y = floatBitsToInt(intBitsToFloat(R2i.y) + -(intBitsToFloat(uf_remappedVS[50].x))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PS1i)) + intBitsToFloat(R2i.w))); +R126i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[50].x)) + intBitsToFloat(uf_remappedVS[50].y)); +PS0i = int(intBitsToFloat(PV1i.y)); +// 3 +backupReg0i = R3i.z; +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[51].y) + intBitsToFloat(uf_remappedVS[51].w)); +R3i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + 0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[51].x) + intBitsToFloat(uf_remappedVS[51].z)); +PS1i = floatBitsToInt(float(PS0i)); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[51].w),intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PS1i)) + intBitsToFloat(R3i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[51].z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[49].x)) + intBitsToFloat(R125i.x))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 5 +backupReg0i = R124i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[46].z)) + intBitsToFloat(PV0i.z))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedVS[46].w)) + intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +R7i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R7i.w = clampFI32(R7i.w); +R127i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[52].w))); +PS1i = R127i.y; +// 6 +R125i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[52].x)) + intBitsToFloat(uf_remappedVS[53].x)); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +// 7 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[53].w))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[52].w)) + intBitsToFloat(uf_remappedVS[53].w)); +// 8 +R124i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[53].x)) + intBitsToFloat(uf_remappedVS[54].x)); +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +PV0i.w = R126i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 9 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[53].w)) + intBitsToFloat(uf_remappedVS[54].w)); +PV1i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R1i.z = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[54].w))); +R125i.z = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367)); +PS1i = R125i.z; +// 10 +backupReg0i = R126i.w; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R127i.w))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(uf_remappedVS[52].x))); +R126i.w = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[55].w))); +PS0i = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367)); +// 11 +backupReg0i = R125i.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[54].x)) + intBitsToFloat(uf_remappedVS[55].x)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R125i.x = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS1i = R125i.x; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R126i.z)))); +PV0i.y = R123i.y; +PV0i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[54].w)) + intBitsToFloat(uf_remappedVS[55].w)); +// 13 +backupReg0i = R125i.y; +R4i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +R125i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[55].x)) + intBitsToFloat(uf_remappedVS[56].x)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(R125i.x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 14 +R8i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedVS[53].x))); +R124i.w = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[56].w))); +R125i.w = ((intBitsToFloat(R127i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R125i.w; +// 15 +backupReg0i = R126i.y; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(uf_remappedVS[54].x))); +R126i.y = ((intBitsToFloat(R1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R126i.y; +R124i.z = ((intBitsToFloat(backupReg0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R0i.w = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[57].w))); +PV1i.w = R0i.w; +R127i.x = ((intBitsToFloat(R126i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R127i.x; +// 16 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[55].w)) + intBitsToFloat(uf_remappedVS[56].w)); +R127i.z = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R127i.z; +R127i.w = ((intBitsToFloat(R124i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.w = R127i.w; +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +PS0i = R126i.x; +// 17 +R125i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[56].x)) + intBitsToFloat(uf_remappedVS[57].x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 18 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[56].w)) + intBitsToFloat(uf_remappedVS[57].w)); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(backupReg0i))); +PS0i = R127i.w; +// 19 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R124i.z)) + 1.0); +R125i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[58].w))); +PV1i.y = R125i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(uf_remappedVS[55].x))); +R126i.w = floatBitsToInt(-(intBitsToFloat(R125i.w)) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 20 +backupReg0i = R125i.x; +backupReg1i = R125i.w; +R125i.x = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R125i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +R124i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[57].x)) + intBitsToFloat(uf_remappedVS[58].x)); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.x))); +R8i.w = 0; +PS0i = R8i.w; +// 21 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(uf_remappedVS[56].x))); +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(uf_remappedVS[59].w))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +// 22 +R1i.x = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R1i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[57].w)) + intBitsToFloat(uf_remappedVS[58].w)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.z))); +// 23 +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[58].x)) + intBitsToFloat(uf_remappedVS[59].x)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 24 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[58].w)) + intBitsToFloat(uf_remappedVS[59].w)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS1i)); +// 25 +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(uf_remappedVS[57].x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[52].x), intBitsToFloat(R126i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 26 +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +// 27 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(uf_remappedVS[58].x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +// 28 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +// 29 +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 30 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +// 31 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +// 32 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +// 33 +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[59].x),intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[19].x) + -(intBitsToFloat(R2i.x))); +R125i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[19].y) + -(intBitsToFloat(R4i.y))); +PV0i.z = floatBitsToInt(min(intBitsToFloat(uf_remappedVS[19].y), intBitsToFloat(uf_remappedVS[60].z))); +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[19].z) + -(intBitsToFloat(R4i.z))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(R14i.y)) + intBitsToFloat(PV0i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(uf_remappedVS[61].x)) + -(intBitsToFloat(uf_remappedVS[61].y)))); +R123i.z = clampFI32(R123i.z); +PV1i.z = R123i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[60].y),intBitsToFloat(PV1i.y)) + intBitsToFloat(uf_remappedVS[60].x))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(uf_remappedVS[62].x)) + -(intBitsToFloat(uf_remappedVS[62].y)))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PV1i.x)); +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(R125i.y) + intBitsToFloat(PS0i))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[63].y) + 1.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedVS[64].w))); +tempResultf = log2(intBitsToFloat(PV0i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 4 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * 1.5); +PV0i.x = clampFI32(PV0i.x); +R126i.y = floatBitsToInt((intBitsToFloat(R127i.x) * intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt((intBitsToFloat(uf_remappedVS[63].y) * 1.0 + intBitsToFloat(backupReg0i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[61].w), intBitsToFloat(PS1i))); +tempResultf = log2(intBitsToFloat(PV1i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[65].y), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[65].x), intBitsToFloat(PS0i))); +R124i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41700000)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 6 +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS1i)),intBitsToFloat(uf_remappedVS[66].w)) + intBitsToFloat(uf_remappedVS[66].w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y)); +PS0i = floatBitsToInt(tempResultf); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R124i.w = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(R3i.w)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(uf_remappedVS[63].x),intBitsToFloat(uf_remappedVS[63].y),intBitsToFloat(uf_remappedVS[63].z),0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PS0i = R0i.y; +// 9 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.x = R127i.x; +R2i.y = 0; +R3i.z = ((0.0 >= intBitsToFloat(R7i.w))?int(0xFFFFFFFF):int(0x0)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.y))); +// 10 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedVS[65].z)),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedVS[65].z))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -0.0); +PV1i.y = clampFI32(PV1i.y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.w))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.y = R123i.y; +R1i.z = PV1i.y; +PV0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(0x3e4ccccd))); +R1i.x = PV1i.y; +PS0i = R1i.x; +// 13 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.y))) + 1.0)); +R8i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].y) * intBitsToFloat(0x40a00000)); +PV1i.y = R8i.y; +R4i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 1.0)); +PV1i.w = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(0x40200000)); +R4i.y = 0; +PS1i = R4i.y; +// 14 +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3daaaaab)); +R3i.y = ((R3i.z == 0)?(R5i.z):(PS1i)); +R5i.z = ((R3i.z == 0)?(R4i.w):(PV1i.y)); +R4i.w = 0; +R13i.x = 0; +PS0i = R13i.x; +} +if( activeMaskStackC[3] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R0i.xy)).xyz); +R10i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R2i.xy)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R4i.z))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R4i.z))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[12].w), intBitsToFloat(R6i.z))); +PV0i.z = R125i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R4i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[12].w), intBitsToFloat(R6i.w))); +PS0i = R127i.y; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[39].y), intBitsToFloat(PS0i))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[44].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(R1i.y))); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[39].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(R5i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[44].y), intBitsToFloat(PS0i))); +R0i.x = R12i.x; +PS1i = R0i.x; +// 2 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[67].w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R1i.w))); +R1i.y = R12i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[48].y), intBitsToFloat(R127i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedVS[67].w)) + intBitsToFloat(R3i.x))); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[48].y),intBitsToFloat(R125i.z)) + intBitsToFloat(R8i.x))); +PS0i = R2i.x; +// 3 +backupReg0i = R4i.x; +R4i.x = ((R3i.z == 0)?(R6i.y):(R4i.w)); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[67].w),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg0i))); +R4i.z = R13i.z; +R1i.w = ((R3i.z == 0)?(R9i.x):(R9i.x)); +R0i.z = ((R3i.z == 0)?(R13i.y):(R13i.y)); +PS1i = R0i.z; +// 4 +R3i.x = ((R3i.z == 0)?(0):(0x3f800000)); +PV0i.x = R3i.x; +R6i.y = ((R3i.z == 0)?(R21i.z):(R21i.z)); +R123i.z = ((R3i.z == 0)?(0):(R0i.w)); +PV0i.z = R123i.z; +R123i.w = ((R3i.z == 0)?(0):(R2i.w)); +PV0i.w = R123i.w; +R122i.x = ((R3i.z == 0)?(0):(R125i.y)); +PS0i = R122i.x; +// 5 +R14i.x = ((PV0i.x == 0)?(R2i.w):(PV0i.w)); +R14i.y = ((PV0i.x == 0)?(R0i.w):(PV0i.z)); +R123i.z = ((R3i.z == 0)?(0):(R1i.z)); +PV1i.z = R123i.z; +R123i.w = ((R3i.z == 0)?(0):(R127i.x)); +PV1i.w = R123i.w; +R16i.x = ((PV0i.x == 0)?(R125i.y):(PS0i)); +PS1i = R16i.x; +// 6 +R123i.x = ((R3i.z == 0)?(0):(R8i.w)); +PV0i.x = R123i.x; +R16i.y = ((R3i.x == 0)?(R127i.x):(PV1i.w)); +R14i.z = ((R3i.x == 0)?(R1i.z):(PV1i.z)); +R123i.w = ((R3i.z == 0)?(0):(R1i.x)); +PV0i.w = R123i.w; +R122i.x = ((R3i.z == 0)?(0):(R124i.w)); +PS0i = R122i.x; +// 7 +R127i.x = ((R3i.z == 0)?(0):(R10i.y)); +R125i.y = ((R3i.z == 0)?(0):(R10i.z)); +R16i.z = ((R3i.x == 0)?(R124i.w):(PS0i)); +R14i.w = ((R3i.x == 0)?(R8i.w):(PV0i.x)); +R16i.w = ((R3i.x == 0)?(R1i.x):(PV0i.w)); +PS1i = R16i.w; +// 8 +backupReg0i = R1i.y; +R123i.x = ((R3i.z == 0)?(0):(R10i.w)); +PV0i.x = R123i.x; +R1i.y = ((R3i.z == 0)?(0):(R0i.x)); +R1i.z = ((R3i.z == 0)?(0):(backupReg0i)); +R123i.w = ((R3i.z == 0)?(0):(R10i.x)); +PV0i.w = R123i.w; +R1i.x = ((R3i.z == 0)?(0):(R0i.w)); +PS0i = R1i.x; +// 9 +R17i.x = ((R3i.x == 0)?(R10i.x):(PV0i.w)); +R17i.y = ((R3i.x == 0)?(R10i.y):(R127i.x)); +R17i.z = ((R3i.x == 0)?(R10i.z):(R125i.y)); +R17i.w = ((R3i.x == 0)?(R10i.w):(PV0i.x)); +R124i.w = ((R3i.z == 0)?(0):(R127i.w)); +PS1i = R124i.w; +// 10 +R127i.x = ((R3i.z == 0)?(0):(R11i.w)); +R10i.y = ((R3i.z == 0)?(0):(R4i.z)); +R123i.z = ((R3i.z == 0)?(0):(R0i.y)); +PV0i.z = R123i.z; +R123i.w = ((R3i.z == 0)?(0):(R2i.x)); +PV0i.w = R123i.w; +R125i.z = ((R3i.z == 0)?(0):(R126i.y)); +PS0i = R125i.z; +// 11 +R15i.x = ((R3i.x == 0)?(R2i.x):(PV0i.w)); +R15i.y = ((R3i.x == 0)?(R0i.y):(PV0i.z)); +R4i.z = ((R3i.z == 0)?(0):(R2i.z)); +PV1i.z = R4i.z; +R125i.w = ((R3i.z == 0)?(0):(R126i.x)); +R126i.w = ((R3i.z == 0)?(0):(R11i.y)); +PS1i = R126i.w; +// 12 +R123i.x = ((R3i.z == 0)?(0):(R124i.z)); +PV0i.x = R123i.x; +R125i.y = ((R3i.z == 0)?(0):(R11i.x)); +R10i.w = ((R3i.z == 0)?(R21i.y):(R13i.y)); +R10i.z = ((R3i.z == 0)?(R21i.z):(R21i.z)); +PS0i = R10i.z; +// 13 +R18i.x = ((R3i.x == 0)?(R124i.z):(PV0i.x)); +R18i.y = ((R3i.x == 0)?(R127i.w):(R124i.w)); +R18i.z = ((R3i.x == 0)?(R126i.y):(R125i.z)); +R18i.w = ((R3i.x == 0)?(R126i.x):(R125i.w)); +// 14 +R20i.x = ((R3i.x == 0)?(R11i.x):(R125i.y)); +R20i.y = ((R3i.x == 0)?(R11i.y):(R126i.w)); +R123i.z = ((R3i.z == 0)?(0):(R11i.z)); +PV0i.z = R123i.z; +R123i.w = ((R3i.z == 0)?(0):(R7i.y)); +PV0i.w = R123i.w; +R126i.w = ((R3i.z == 0)?(0):(R5i.w)); +PS0i = R126i.w; +// 15 +R23i.x = ((R3i.x == 0)?(R7i.y):(PV0i.w)); +R123i.y = ((R3i.z == 0)?(0):(R7i.z)); +PV1i.y = R123i.y; +R20i.z = ((R3i.x == 0)?(R11i.z):(PV0i.z)); +R20i.w = ((R3i.x == 0)?(R11i.w):(R127i.x)); +R122i.x = ((R3i.z == 0)?(0):(R5i.x)); +PS1i = R122i.x; +// 16 +R123i.x = ((R3i.z == 0)?(0):(R9i.y)); +PV0i.x = R123i.x; +R23i.y = ((R3i.x == 0)?(R7i.z):(PV1i.y)); +R23i.z = ((R3i.x == 0)?(R5i.w):(R126i.w)); +R23i.w = ((R3i.x == 0)?(R5i.x):(PS1i)); +R122i.x = ((R3i.z == 0)?(0):(R9i.z)); +PS0i = R122i.x; +// 17 +R0i.x = ((R3i.x == 0)?(R9i.y):(PV0i.x)); +R0i.y = ((R3i.x == 0)?(R9i.z):(PS0i)); +R9i.z = ((R3i.z == 0)?(R21i.x):(R13i.x)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(R7i.w)) + 0.0)); +PV0i.x = R2i.x; +// 1 +R123i.x = ((R3i.z == 0)?(0):(R9i.w)); +PV1i.x = R123i.x; +R125i.y = R12i.y; +R125i.z = ((R3i.z == 0)?(0):(R2i.z)); +R123i.w = ((R3i.z == 0)?(PV0i.x):(R13i.x)); +PV1i.w = R123i.w; +R126i.y = ((R3i.z == 0)?(0):(R6i.x)); +PS1i = R126i.y; +// 2 +R21i.x = ((R3i.x == 0)?(PV1i.w):(R9i.z)); +R21i.y = ((R3i.x == 0)?(R0i.z):(R10i.w)); +R21i.z = ((R3i.x == 0)?(R6i.y):(R10i.z)); +PV0i.w = R12i.x; +R0i.z = ((R3i.x == 0)?(R9i.w):(PV1i.x)); +PS0i = R0i.z; +// 3 +R13i.x = ((R3i.x == 0)?(PV0i.w):(R1i.y)); +R13i.y = ((R3i.x == 0)?(R125i.y):(R1i.z)); +R0i.w = ((R3i.x == 0)?(R2i.z):(R125i.z)); +R12i.x = ((R3i.x == 0)?(R6i.x):(R126i.y)); +PS1i = R12i.x; +// 4 +R123i.x = ((R3i.z == 0)?(0):(R12i.w)); +PV0i.x = R123i.x; +R123i.y = ((R3i.z == 0)?(R19i.x):(R4i.y)); +PV0i.y = R123i.y; +R123i.z = ((R3i.z == 0)?(0):(R7i.x)); +PV0i.z = R123i.z; +R123i.w = ((R3i.z == 0)?(0):(R12i.z)); +PV0i.w = R123i.w; +// 5 +backupReg0i = R12i.z; +R19i.x = ((R3i.x == 0)?(R3i.y):(PV0i.y)); +R12i.y = ((R3i.x == 0)?(R12i.w):(PV0i.x)); +R12i.z = ((R3i.x == 0)?(backupReg0i):(PV0i.w)); +R12i.w = ((R3i.x == 0)?(R7i.x):(PV0i.z)); +R122i.x = ((R3i.z == 0)?(R19i.y):(R4i.w)); +PS1i = R122i.x; +// 6 +PV0i.x = R13i.z; +R19i.y = ((R3i.x == 0)?(R4i.x):(PS1i)); +R123i.z = ((R3i.z == 0)?(R19i.w):(R9i.x)); +PV0i.z = R123i.z; +R123i.w = ((R3i.z == 0)?(R19i.z):(R8i.y)); +PV0i.w = R123i.w; +// 7 +R13i.z = ((R3i.x == 0)?(PV0i.x):(R10i.y)); +R19i.w = ((R3i.x == 0)?(R1i.w):(PV0i.z)); +R19i.z = ((R3i.x == 0)?(R5i.z):(PV0i.w)); +PS1i = R19i.z; +// 8 +R15i.z = ((R3i.x == 0)?(R2i.z):(R4i.z)); +R13i.w = ((R3i.x == 0)?(R1i.x):(R1i.x)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R12i.x), intBitsToFloat(R12i.y), intBitsToFloat(R12i.z), intBitsToFloat(R12i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem7 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R13i.x), intBitsToFloat(R13i.y), intBitsToFloat(R13i.z), intBitsToFloat(R13i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R16i.x), intBitsToFloat(R16i.y), intBitsToFloat(R16i.z), intBitsToFloat(R16i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R14i.x), intBitsToFloat(R14i.y), intBitsToFloat(R14i.z), intBitsToFloat(R14i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R15i.x), intBitsToFloat(R15i.y), intBitsToFloat(R15i.z), intBitsToFloat(R15i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/2938a1b3abfdfe49_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/2938a1b3abfdfe49_0000000000000000_vs.txt new file mode 100644 index 00000000..3e784c2b --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/2938a1b3abfdfe49_0000000000000000_vs.txt @@ -0,0 +1,2575 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader 2938a1b3abfdfe49 +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +layout(binding = 11, std140) uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + +layout(binding = 13, std140) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +layout(location = 11) in uvec4 attrDataSem11; +layout(location = 12) in uvec4 attrDataSem12; +layout(location = 13) in uvec4 attrDataSem13; +layout(location = 14) in uvec4 attrDataSem14; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem5; +layout(location = 5) out vec4 passParameterSem8; +layout(location = 7) out vec4 passParameterSem11; +layout(location = 8) out vec4 passParameterSem14; +layout(location = 9) out vec4 passParameterSem15; +layout(location = 10) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 6) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem9; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem8.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem13; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R12i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem11; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R11i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem10; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R10i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R17i.z = floatBitsToInt(-(intBitsToFloat(R12i.y)) + 1.0); +R5i.w = 0; +R8i.w = floatBitsToInt(1.0); +PS0i = R8i.w; +// 1 +R12i.w = floatBitsToInt(-(intBitsToFloat(R7i.w)) + uf_blockVS8[2].x); +R16i.w = floatBitsToInt(-(intBitsToFloat(R12i.x)) + 1.0); +PS1i = R16i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R12i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R19i.x = 0; +R19i.y = 0; +R19i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R20i.x = 0; +PS0i = R20i.x; +// 1 +R7i.w = R8i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R7i.w = R5i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R7i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R6i.w)); +// 1 +R7i.x = floatBitsToInt(float(PS0i)); +PS1i = R7i.x; +// 2 +predResult = (intBitsToFloat(R12i.w) >= intBitsToFloat(R7i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R19i.x = 0; +R19i.y = 0; +R19i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R20i.x = 0; +PS0i = R20i.x; +// 1 +R5i.w = R8i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R5i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +PV0i.y = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS7[10].y)); +PV0i.w = floatBitsToInt(max(intBitsToFloat(R10i.x), 0.0)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PS0i)); +R127i.y = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +PV1i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 0.0)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R127i.w; +R6i.y = floatBitsToInt(1.0 / intBitsToFloat(R7i.x)); +PS1i = R6i.y; +// 2 +R7i.x = floatBitsToInt(intBitsToFloat(R11i.x) + intBitsToFloat(PV1i.z)); +R7i.y = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PS1i)); +PV0i.y = R7i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +R126i.y = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +PS0i = R126i.y; +// 3 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z))); +R125i.y = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +// 4 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.z))); +R126i.z = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y); +R125i.w = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +backupReg0i = R127i.y; +R125i.x = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV0i.y)); +PV1i.x = R125i.x; +R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R127i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS0i)); +R126i.y = floatBitsToInt(-(uf_blockVS7[97].z) + uf_blockVS7[98].z); +PS1i = R126i.y; +// 6 +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[97].w)); +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[96].w)); +PV0i.w = R126i.w; +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.y))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w); +R127i.y = floatBitsToInt(intBitsToFloat(R125i.x) + -(uf_blockVS7[98].w)); +PS1i = R127i.y; +// 8 +R0i.x = ((intBitsToFloat(R126i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R124i.y = floatBitsToInt(uf_blockVS7[96].z + intBitsToFloat(PV1i.x)); +R127i.z = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(PV1i.y)); +R124i.w = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +R125i.w = floatBitsToInt(-(uf_blockVS7[98].x) + uf_blockVS7[99].x); +R126i.w = floatBitsToInt(-(uf_blockVS7[98].y) + uf_blockVS7[99].y); +PS1i = R126i.w; +// 10 +R126i.x = floatBitsToInt(-(uf_blockVS7[98].z) + uf_blockVS7[99].z); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(-(uf_blockVS7[98].w) + uf_blockVS7[99].w); +// 11 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(PV0i.w)); +R125i.y = ((intBitsToFloat(backupReg0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R126i.z = floatBitsToInt(uf_blockVS7[97].z + intBitsToFloat(PV0i.y)); +R127i.w = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 12 +backupReg0i = R126i.x; +R126i.x = ((intBitsToFloat(R127i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(intBitsToFloat(R125i.x) + -(uf_blockVS7[99].w)); +// 13 +backupReg0i = R127i.y; +backupReg0i = R127i.y; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.w))); +R127i.y = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +// 14 +R125i.x = floatBitsToInt(uf_blockVS7[98].y + intBitsToFloat(PV1i.w)); +R126i.y = floatBitsToInt(uf_blockVS7[98].x + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R126i.w = floatBitsToInt(uf_blockVS7[98].z + intBitsToFloat(PV1i.z)); +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i))); +PS0i = R124i.x; +// 15 +R6i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].x, intBitsToFloat(R127i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.z))); +R0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].y, intBitsToFloat(R127i.y))); +R5i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].z, intBitsToFloat(R127i.y))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PS1i = R125i.w; +// 16 +backupReg0i = R124i.x; +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(backupReg0i))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.y))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(backupReg0i))); +PS0i = R0i.y; +// 17 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(-(intBitsToFloat(R125i.y)) + 1.0); +R125i.y = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(R10i.y)); +R125i.z = floatBitsToInt(intBitsToFloat(R10i.y) + intBitsToFloat(R10i.z)); +R126i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +R6i.w = 0x3f800000; +PS1i = R6i.w; +// 18 +R13i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(PS1i)))); +PV0i.x = R13i.x; +PV0i.y = R13i.x; +PV0i.z = R13i.x; +PV0i.w = R13i.x; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.x))); +PS0i = R127i.w; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R6i.w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R12i.z = tempi.x; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS0i))); +PS1i = R126i.z; +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R6i.w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.y = tempi.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R127i.w))); +PS0i = R126i.y; +// 21 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R127i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(R126i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(R126i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(R126i.w))); +R125i.x = floatBitsToInt(intBitsToFloat(R125i.y) * 0.5); +PS1i = R125i.x; +// 22 +R127i.x = floatBitsToInt(intBitsToFloat(R125i.z) * 0.5); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PV1i.w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(R10i.z)); +// 23 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * 0.5); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.z)); +R3i.z = floatBitsToInt(intBitsToFloat(R125i.x) + -(0.5)); +R3i.z = floatBitsToInt(intBitsToFloat(R3i.z) * 2.0); +PS1i = R3i.z; +// 24 +R3i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w)); +R0i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(PV1i.x)); +R2i.z = floatBitsToInt(intBitsToFloat(R127i.x) + -(0.5)); +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +R0i.w = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(PV1i.z)); +R3i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(0.5)); +R3i.w = floatBitsToInt(intBitsToFloat(R3i.w) * 2.0); +PS0i = R3i.w; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(R0i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(R3i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(backupReg0i)); +R127i.w = floatBitsToInt(intBitsToFloat(R10i.x) + -(0.5)); +R124i.z = floatBitsToInt(intBitsToFloat(R10i.y) + -(0.5)); +PS0i = R124i.z; +// 1 +R11i.x = floatBitsToInt(intBitsToFloat(R10i.z) + -(0.5)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PV0i.z))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), uf_blockVS7[115].x)); +PS1i = R125i.w; +// 2 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[3].y)); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[3].w)); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockVS8[3].z)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[3].y)); +PS0i = R10i.y; +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 3 +R6i.x = floatBitsToInt(intBitsToFloat(R125i.w) + uf_blockVS7[114].x); +PV1i.y = floatBitsToInt(floor(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), uf_blockVS7[115].y)); +PV1i.w = R10i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0); +R127i.y = R10i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +PS1i = R127i.y; +// 4 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.y) > 0.0)?1.0:0.0); +R0i.y = floatBitsToInt(uf_blockVS7[114].y + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PV1i.y))?1.0:0.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockVS7[115].z)); +PS0i = floatBitsToInt(floor(intBitsToFloat(PV1i.w))); +// 5 +R3i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +R3i.y = floatBitsToInt(uf_blockVS7[114].z + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(floor(intBitsToFloat(R127i.y))); +// 6 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), uf_blockVS7[113].x)); +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), uf_blockVS7[113].y)); +PS0i = R2i.x; +// 7 +R11i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00020000; +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00010000; +R127i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00040000; +// 1 +PS1i = floatBitsToInt(float(PV0i.z)); +// 2 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), uf_blockVS7[113].z)); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(R127i.y)); +// 3 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(float(R127i.w)); +// 4 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R127i.y; +// 5 +PV1i.x = 0 - PS0i; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.x))); +R127i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.w; +// 6 +PV0i.x = max(R127i.y, PV1i.x); +PV0i.y = 0 - PS1i; +R125i.w = ((uf_blockVS7[114].w == 1.0)?int(0xFFFFFFFF):int(0x0)); +R127i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R127i.x; +// 7 +PV1i.x = 0 - PS0i; +PV1i.z = max(R127i.w, PV0i.y); +PS1i = floatBitsToInt(float(PV0i.x)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 8 +PV0i.y = max(R127i.x, PV1i.x); +R124i.z = floatBitsToInt(-(uf_blockVS7[114].w) + 1.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(R3i.x))); +PS0i = floatBitsToInt(float(PV1i.z)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(R2i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(float(PV0i.y)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 10 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(R11i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +R126i.z = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PV1i.x))); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PS0i)); +R127i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.y)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R3i.w)); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV0i.x))); +// 12 +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R2i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PV1i.z)); +tempResultf = log2(uf_blockVS7[114].w); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 13 +backupReg0i = R0i.x; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS7[13].z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.w), intBitsToFloat(PS0i))); +R124i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R126i.y)); +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +PS1i = R126i.y; +// 14 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 15 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +// 16 +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(R126i.y)); +// 17 +R123i.x = ((R125i.w == 0)?(PV0i.w):(R12i.w)); +PV1i.x = R123i.x; +// 18 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.x))); +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV0i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV0i.y)); +// 20 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.w = R123i.w; +// 21 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(uf_blockVS7[13].x); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +// 22 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.y = R123i.y; +R5i.z = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV1i.w)); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(uf_blockVS7[13].y); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 23 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983)); +PV1i.x = R127i.x; +R3i.y = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(PS0i)); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983)); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3e22f983)); +// 24 +R127i.w = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367)); +PS0i = R127i.w; +// 25 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367)); +PS1i = R127i.x; +// 26 +R124i.z = floatBitsToInt(sin((intBitsToFloat(R126i.z))/0.1591549367)); +PS0i = R124i.z; +// 27 +backupReg0i = R126i.z; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367)); +PS1i = R127i.y; +// 28 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PV0i.x = R125i.x; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +PV0i.w = R124i.w; +R3i.w = floatBitsToInt(sin((intBitsToFloat(R126i.w))/0.1591549367)); +PS0i = R3i.w; +// 29 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.x))); +R11i.z = floatBitsToInt(-(intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R126i.y))); +R124i.x = floatBitsToInt(cos((intBitsToFloat(R126i.w))/0.1591549367)); +PS1i = R124i.x; +// 30 +R5i.x = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.y)); +R5i.y = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R5i.w = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.w)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PS0i = R2i.w; +// 31 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R124i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(R126i.z))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R124i.x))); +// 32 +R2i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.y)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = floatBitsToInt(intBitsToFloat(R13i.x) + -(uf_blockVS6[17].x)); +PV0i.x = R125i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R12i.z) + -(uf_blockVS6[17].y)); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt(intBitsToFloat(R1i.y) + -(uf_blockVS6[17].z)); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R13i.x)) + uf_blockVS6[17].x); +R125i.y = floatBitsToInt(-(intBitsToFloat(R12i.z)) + uf_blockVS6[17].y); +PS0i = R125i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(R1i.y)) + uf_blockVS6[17].z); +PS1i = R124i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R126i.z)), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.y)), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.x)), intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.w))); +PV0i.x = R14i.x; +R14i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.y))); +PV0i.z = R14i.z; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.z))); +PV0i.w = R6i.w; +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R126i.y; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV0i.z)); +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.w),intBitsToFloat(R125i.y),intBitsToFloat(R124i.z),-0.0),vec4(intBitsToFloat(R127i.w),intBitsToFloat(R125i.y),intBitsToFloat(R124i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(R126i.y)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R126i.y = floatBitsToInt(tempResultf); +PS0i = R126i.y; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.w))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +PS1i = R127i.w; +// 10 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.y))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV1i.y))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y))); +PV0i.z = R126i.z; +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.z))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), -(uf_blockVS6[1].z))); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), -(uf_blockVS6[1].x))); +R126i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].y,intBitsToFloat(PV0i.z)) + intBitsToFloat(PS0i))); +R9i.z = R124i.w; +PV1i.z = R9i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), -(uf_blockVS6[1].y))); +R6i.z = R127i.w; +PS1i = R6i.z; +// 12 +R1i.x = R126i.z; +PV0i.x = R1i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].z,intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.x))); +PV0i.y = R125i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].x,intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R124i.z; +R126i.w = PV1i.z; +R125i.z = PS1i; +PS0i = R125i.z; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = PV0i.x; +PS1i = R127i.y; +// 14 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(R126i.w))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R126i.w))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(R125i.z))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 15 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +PV1i.x = R9i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R125i.z))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PV1i.z = R5i.z; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +PV1i.w = R0i.w; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R127i.y))); +PS1i = R125i.y; +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.z))); +R3i.z = PV1i.w; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.w))); +R3i.x = PV1i.z; +PS0i = R3i.x; +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.w)),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R127i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R3i.y))); +// 18 +R6i.x = PV1i.y; +PV0i.x = R6i.x; +R9i.y = PV1i.x; +PV0i.y = R9i.y; +R7i.z = PV1i.w; +PV0i.z = R7i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(PS1i))); +PV0i.w = R123i.w; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R126i.w))); +PS0i = R126i.z; +// 19 +backupReg0i = R2i.z; +R124i.x = PV0i.y; +PV1i.x = R124i.x; +R127i.y = PV0i.x; +PV1i.y = R127i.y; +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w))); +R126i.w = PV0i.z; +PV1i.w = R126i.w; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.z))); +PS1i = R5i.y; +// 20 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(R125i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(R125i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(R124i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i))); +PV0i.w = R123i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(R126i.y))); +PS0i = R125i.w; +// 21 +R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV0i.w))); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R0i.w)) + intBitsToFloat(PV0i.x))); +R13i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(R125i.y))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R3i.y))); +// 22 +backupReg0i = R3i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R9i.x)) + intBitsToFloat(R127i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R11i.z)) + intBitsToFloat(PS1i))); +PV0i.y = R123i.y; +R11i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R0i.w)) + intBitsToFloat(R125i.w))); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.w))); +R7i.w = 0x3f800000; +PS0i = R7i.w; +// 23 +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(R124i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R127i.y)) + intBitsToFloat(R5i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R124i.x)) + intBitsToFloat(R126i.z))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(R3i.y))); +// 24 +backupReg0i = R1i.z; +backupReg0i = R1i.z; +backupReg1i = R0i.w; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R2i.w)) + intBitsToFloat(PS1i))); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R9i.x)) + intBitsToFloat(PV1i.w))); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.y))); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV1i.z))); +R5i.y = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(R6i.w)); +PS0i = R5i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R3i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R5i.x)) + intBitsToFloat(R2i.x))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R0i.w))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R1i.z))); +R1i.z = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R14i.z)); +PS0i = R1i.z; +// 1 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x))); +PS1i = R124i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.z),intBitsToFloat(R6i.x),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R127i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R3i.w)) + intBitsToFloat(R126i.w))); +PS0i = R127i.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R7i.z),intBitsToFloat(R1i.x),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R127i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(PV0i.x)); +// 4 +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R7i.x)) + intBitsToFloat(R127i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R11i.z)) + intBitsToFloat(R126i.z))); +PV0i.y = R123i.y; +R7i.z = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV1i.x)); +R3i.w = 0x3f800000; +PS0i = R3i.w; +// 5 +R15i.x = floatBitsToInt(intBitsToFloat(R14i.z) + intBitsToFloat(PV0i.w)); +R8i.y = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(R14i.x)); +R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y))); +R11i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R13i.z)) + intBitsToFloat(R124i.z))); +R8i.z = floatBitsToInt(uf_blockVS7[60].x); +PS1i = R8i.z; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(R127i.z)); +R2i.y = floatBitsToInt(uf_blockVS7[60].y); +R6i.w = floatBitsToInt(uf_blockVS7[60].z); +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(R14i.x) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PS1i)); +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +PV0i.y = R127i.y; +R125i.w = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +// 9 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),uf_blockVS7[9].z) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 10 +PV0i.x = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 12 +R127i.y = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS1i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +// 13 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(uf_blockVS7[68].w)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(uf_blockVS7[69].w)); +// 14 +backupReg0i = R127i.y; +R127i.x = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R127i.x; +R127i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R127i.y; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(backupReg0i)) + uf_blockVS7[68].x)); +// 15 +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV1i.z))); +// 17 +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +// 18 +R14i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[69].x,intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.w))); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R7i.z),intBitsToFloat(R15i.x),intBitsToFloat(R7i.w)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.y = tempi.x; +// 1 +R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R7i.z),intBitsToFloat(R15i.x),intBitsToFloat(R7i.w)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = R0i.x; +PV1i.y = R0i.x; +PV1i.z = R0i.x; +PV1i.w = R0i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R7i.z),intBitsToFloat(R15i.x),intBitsToFloat(R7i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R8i.w = tempi.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R7i.z),intBitsToFloat(R15i.x),intBitsToFloat(R7i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R15i.z = tempi.x; +// 4 +backupReg0i = R6i.w; +R13i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), uf_blockVS8[0].x)); +PV0i.y = PV1i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R16i.z = floatBitsToInt((intBitsToFloat(R8i.w) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = R16i.z; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), uf_blockVS8[0].y)); +R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].z)); +PS0i = R7i.w; +// 5 +R123i.x = floatBitsToInt((intBitsToFloat(R8i.w) * 0.0 + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.x), uf_blockVS8[0].w)); +R15i.w = floatBitsToInt((intBitsToFloat(R8i.w) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.w = R15i.w; +R9i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +PS1i = R9i.w; +// 6 +R17i.x = floatBitsToInt((intBitsToFloat(R9i.y) * 0.5 + intBitsToFloat(PV1i.x))); +R11i.y = floatBitsToInt((intBitsToFloat(R0i.x) * -(0.5) + intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +// 7 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV1i.y = R123i.y; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.y),intBitsToFloat(R5i.y),intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 9 +R12i.z = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.y),intBitsToFloat(R5i.y),intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 11 +PV1i.x = PV0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0); +R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * 0.0 + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +// 12 +R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * 0.5 + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(PS0i)); +// 14 +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV1i.x))); +// 15 +PV1i.y = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV0i.z)); +// 16 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 17 +R3i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +// 18 +PV0i.x = ((intBitsToFloat(R10i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = ((intBitsToFloat(R10i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.z = ((intBitsToFloat(R10i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = ((intBitsToFloat(R10i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 19 +R14i.x = ((PV0i.w == 0)?(R12i.x):(R16i.w)); +R8i.y = ((PV0i.z == 0)?(R12i.x):(R16i.w)); +R1i.z = ((PV0i.x == 0)?(R12i.y):(R17i.z)); +R3i.w = ((PV0i.y == 0)?(R12i.y):(R17i.z)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R13i.x; +R13i.x = floatBitsToInt(uf_blockVS7[76].x); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.w), uf_blockVS7[59].x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS7[59].x)); +R14i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.w), uf_blockVS7[59].x)); +R8i.z = floatBitsToInt(uf_blockVS7[76].y); +PS0i = R8i.z; +// 1 +PV1i.x = floatBitsToInt((0.0 > uf_blockVS7[8].w)?1.0:0.0); +R2i.y = floatBitsToInt(uf_blockVS7[76].z); +PV1i.z = ((intBitsToFloat(R10i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = floatBitsToInt((uf_blockVS7[8].w > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].w); +// 2 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +R125i.y = ((PV1i.z == 0)?(R12i.x):(R16i.w)); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),uf_blockVS7[10].x) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PV1i.z = (PV0i.x == 0x00080000)?int(0xFFFFFFFF):int(0x0); +PV1i.w = (PS0i == 0x00100000)?int(0xFFFFFFFF):int(0x0); +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +// 4 +R1i.x = ((PV1i.w == 0)?(R12i.y):(R3i.w)); +PV0i.y = (PS1i == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +R0i.w = ((PV1i.z == 0)?(R12i.x):(R8i.y)); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +// 5 +PV1i.x = (PS0i == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +R14i.z = ((PV0i.y == 0)?(R12i.x):(R14i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +// 6 +R14i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.w))); +R1i.y = ((PV1i.x == 0)?(R12i.y):(R1i.z)); +PV0i.z = (PV1i.y == 0x00800000)?int(0xFFFFFFFF):int(0x0); +R126i.w = (PS1i == 0x01000000)?int(0xFFFFFFFF):int(0x0); +PS0i = ((intBitsToFloat(R10i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 7 +backupReg0i = R125i.y; +R123i.x = ((PS0i == 0)?(R12i.y):(R17i.z)); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010; +PV1i.z = floatBitsToInt(uf_blockVS7[5].y) & int(1); +R1i.w = ((PV0i.z == 0)?(R12i.x):(backupReg0i)); +R6i.w = int(uf_blockVS7[17].x); +PS1i = R6i.w; +// 8 +R11i.x = ((R126i.w == 0)?(R12i.y):(PV1i.x)); +R8i.y = (int(1) != PV1i.z)?int(0xFFFFFFFF):int(0x0); +R12i.x = int(uf_blockVS7[17].y); +PS0i = R12i.x; +// 9 +R12i.y = floatBitsToInt(float(R125i.y)); +PS1i = R12i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R14i.x) + -(uf_blockVS7[85].w)); +R127i.z = floatBitsToInt(intBitsToFloat(R14i.x) + -(uf_blockVS7[84].w)); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(-(uf_blockVS7[84].w) + uf_blockVS7[85].w); +// 1 +R127i.x = floatBitsToInt((intBitsToFloat(R12i.y) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(-(uf_blockVS7[84].x) + uf_blockVS7[85].x); +R124i.z = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R124i.z; +R126i.w = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 2 +backupReg0i = R8i.z; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(PS1i)); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), uf_blockVS8[1].x)); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[1].y)); +PS0i = R8i.z; +// 3 +R13i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), uf_blockVS8[1].z)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[84].x)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[84].x, intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt((0.0 > intBitsToFloat(R12i.y))?1.0:0.0); +// 4 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.x) + -(intBitsToFloat(PS1i))); +// 5 +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[85].x,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R125i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R125i.y; +// 6 +PV0i.x = 0 - PS1i; +R16i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[1].w)); +// 7 +R14i.x = max(R125i.y, PV0i.x); +R9i.x = floatBitsToInt(uf_blockVS8[3].x); +PS1i = R9i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +R18i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(R3i.w))); +R13i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(R13i.x))); +R17i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(R8i.z))); +PV0i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020; +R124i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040; +PS0i = R124i.z; +// 1 +R124i.x = int(-1) + R6i.w; +R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000; +R127i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080; +PS1i = floatBitsToInt(float(PV0i.w)); +// 2 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(R124i.z)); +// 3 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.z)); +// 4 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 5 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.w = 0 - PS0i; +R127i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R127i.y; +// 6 +R8i.x = max(R125i.y, PV1i.w); +PV0i.w = 0 - PS1i; +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 7 +R13i.x = max(R127i.y, PV0i.w); +PV1i.w = 0 - PS0i; +R127i.z = floatBitsToInt(float(R6i.w)); +PS1i = R127i.z; +// 8 +R126i.x = max(R125i.y, PV1i.w); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.w), intBitsToFloat(PS1i))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(float(R12i.x)); +// 9 +PV1i.w = floatBitsToInt(intBitsToFloat(R6i.y) * intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 10 +R126i.w = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PS1i)); +PS0i = int(intBitsToFloat(PV1i.w)); +// 11 +R126i.z = R14i.x * PS0i; +PS1i = R126i.z; +// 12 +R14i.x = int(intBitsToFloat(R126i.w)); +PS0i = R14i.x; +// 13 +PS1i = floatBitsToInt(float(PS0i)); +// 14 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PS1i)); +R127i.y = floatBitsToInt(float(R6i.w)); +PS0i = R127i.y; +// 15 +R7i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R123i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +R127i.w = floatBitsToInt(float(R14i.x)); +PS1i = R127i.w; +// 16 +R125i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R127i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R127i.x; +// 17 +R125i.y = int(1) - PS0i; +R12i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R127i.y))); +PS1i = R12i.x; +// 18 +backupReg0i = R127i.x; +PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R127i.w)), intBitsToFloat(PS1i))); +R127i.x = backupReg0i * R124i.x; +PS0i = R127i.x; +// 19 +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(float(R126i.y)); +// 20 +backupReg0i = R124i.z; +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R7i.x)) + intBitsToFloat(R125i.x))); +PV0i.z = R124i.z; +R125i.w = int(intBitsToFloat(backupReg0i)); +PS0i = R125i.w; +// 21 +PV1i.x = floatBitsToInt(-(abs(intBitsToFloat(R127i.y))) + intBitsToFloat(PV0i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R127i.y)))?1.0:0.0); +R126i.y = R126i.x * PS0i; +PS1i = R126i.y; +// 22 +R126i.x = ((intBitsToFloat(PV1i.w) == 0.0)?(R124i.z):(PV1i.x)); +PV0i.x = R126i.x; +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 23 +PV1i.x = 0 - PS0i; +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.x)); +// 24 +R123i.y = ((-(intBitsToFloat(R126i.x)) > 0.0)?(PV1i.z):(R126i.x)); +PV0i.y = R123i.y; +PV0i.z = max(R126i.w, PV1i.x); +// 25 +R123i.w = ((-(intBitsToFloat(R127i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.w = R123i.w; +PS1i = PV0i.z * R125i.w; +// 26 +R126i.x = ((intBitsToFloat(R127i.y) == 0.0)?(R127i.w):(PV1i.w)); +PV0i.z = R14i.x + PS1i; +// 27 +R127i.w = R13i.x * PV0i.z; +PS1i = R127i.w; +// 28 +PS0i = int(intBitsToFloat(R126i.x)); +// 29 +PS1i = R125i.y * PS0i; +// 30 +PV0i.z = PS1i + R127i.x; +// 31 +PS1i = R8i.x * PV0i.z; +// 32 +PV0i.y = PS1i + R126i.z; +// 33 +PV1i.w = R127i.w + PV0i.y; +// 34 +PV0i.x = R126i.y + PV1i.w; +// 35 +R124i.z = floatBitsToInt(float(PV0i.x)); +PS1i = R124i.z; +// 36 +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), abs(intBitsToFloat(PS1i)))); +// 37 +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +// 38 +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R7i.x)) + intBitsToFloat(R127i.x))); +PV0i.z = R126i.z; +// 39 +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R127i.y))) + intBitsToFloat(PV0i.z)); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R127i.y)))?1.0:0.0); +// 40 +R127i.x = ((intBitsToFloat(PV1i.w) == 0.0)?(R126i.z):(PV1i.y)); +PV0i.x = R127i.x; +// 41 +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.x)); +// 42 +R123i.y = ((-(intBitsToFloat(R127i.x)) > 0.0)?(PV1i.z):(R127i.x)); +PV0i.y = R123i.y; +// 43 +R123i.w = ((-(intBitsToFloat(R124i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.w = R123i.w; +// 44 +R123i.x = ((intBitsToFloat(R127i.y) == 0.0)?(R124i.z):(PV1i.w)); +PV0i.x = R123i.x; +// 45 +R124i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R124i.z; +// 46 +R2i.y = floatBitsToInt(float(PS1i)); +PS0i = R2i.y; +// 47 +R7i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R6i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R3i.w = floatBitsToInt(float(R124i.z)); +PS1i = R3i.w; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R3i.w)) * 0.25); +R127i.y = floatBitsToInt(abs(intBitsToFloat(R3i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(R6i.w) + -(intBitsToFloat(R7i.x))); +// 1 +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * 0.5 + intBitsToFloat(R2i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * 0.25); +R13i.z = ((R8i.y == 0)?(R10i.x):(R10i.y)); +R127i.w = floatBitsToInt((-(intBitsToFloat(PV1i.z)) * 4.0 + intBitsToFloat(R127i.y))); +PV0i.w = R127i.w; +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(0xc0800000)); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt((intBitsToFloat(PV0i.w) >= 4.0)?1.0:0.0); +R12i.y = int(uf_blockVS7[26].x); +PS1i = R12i.y; +// 4 +R127i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R127i.y = ((intBitsToFloat(PV1i.z) == 0.0)?(R127i.w):(PV1i.x)); +PV0i.y = R127i.y; +PS0i = int(intBitsToFloat(PV1i.y)); +// 5 +R2i.y = PS0i + 0x00000012; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 4.0); +R6i.w = int(uf_blockVS7[26].y); +PS1i = R6i.w; +// 6 +R123i.x = ((-(intBitsToFloat(R127i.y)) > 0.0)?(PV1i.w):(R127i.y)); +PV0i.x = R123i.x; +PS0i = floatBitsToInt(float(R127i.x)); +// 7 +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R123i.z = ((-(intBitsToFloat(R3i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +// 8 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.w))); +PS0i = int(intBitsToFloat(PV1i.z)); +// 9 +R127i.x = 0xfffffffe + PS0i; +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +R124i.z = 0xfffffffd + PS0i; +PV1i.w = int(-1) + PS0i; +PS1i = floatBitsToInt(float(PS0i)); +// 10 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.w)); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.x)); +// 12 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +R127i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R127i.w; +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.y = 0 - PS0i; +R127i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R127i.x; +// 14 +PV0i.x = 0 - PS1i; +PV0i.z = max(R127i.w, PV1i.y); +R126i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R126i.z; +// 15 +R8i.x = int(1) - PV0i.z; +PV1i.y = max(R127i.x, PV0i.x); +PV1i.z = 0 - PS0i; +PS1i = floatBitsToInt(float(R124i.z)); +// 16 +R12i.x = int(1) - PV1i.y; +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = max(R126i.z, PV1i.z); +R126i.z = int(intBitsToFloat(R126i.x)); +PS0i = R126i.z; +// 17 +R7i.x = int(1) - PV0i.w; +PV1i.y = 0 - PS0i; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(float(R127i.y)); +// 18 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R3i.w = max(R126i.z, PV1i.y); +R127i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R127i.y; +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = 0 - PS0i; +// 20 +PV0i.x = max(R127i.y, PV1i.w); +R1i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R1i.z; +// 21 +R8i.z = int(1) - PV0i.x; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockVS7[R2i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +PV0i.y = 0 - R1i.z; +R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +R125i.w = int(-1) + R12i.y; +R127i.y = R8i.z * R2i.w; +PS0i = R127i.y; +// 1 +R7i.w = max(R1i.z, PV0i.y); +R127i.w = R7i.x * R2i.z; +PS1i = R127i.w; +// 2 +R126i.x = R12i.x * R2i.y; +PS0i = R126i.x; +// 3 +PS1i = R8i.x * R2i.x; +// 4 +PV0i.y = R126i.x + PS1i; +PS0i = floatBitsToInt(float(R127i.x)); +// 5 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = R127i.w + PV0i.y; +PS1i = floatBitsToInt(float(R126i.z)); +// 6 +R8i.x = R127i.y + PV1i.w; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R127i.x = floatBitsToInt(float(R12i.y)); +PS0i = R127i.x; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w))); +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.w), intBitsToFloat(PS0i))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(PS0i))); +R126i.z = int(intBitsToFloat(PV0i.y)); +PS1i = R126i.z; +// 8 +PV0i.x = 0 - PS1i; +PV0i.y = floatBitsToInt(intBitsToFloat(R6i.y) * intBitsToFloat(PV1i.z)); +R124i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R124i.z; +// 9 +PV1i.y = 0 - PS0i; +R2i.w = max(R126i.z, PV0i.x); +PS1i = int(intBitsToFloat(PV0i.y)); +// 10 +R124i.w = max(R124i.z, PV1i.y); +R125i.x = R3i.w * PS1i; +PS0i = R125i.x; +// 11 +PS1i = floatBitsToInt(float(R6i.w)); +// 12 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 13 +PV1i.y = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PS0i)); +R126i.z = floatBitsToInt(float(R12i.y)); +PS1i = R126i.z; +// 14 +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R6i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R6i.w; +// 15 +PS1i = floatBitsToInt(float(PS0i)); +// 16 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.x)) + intBitsToFloat(PS1i)); +R126i.y = floatBitsToInt(float(R6i.w)); +PS0i = R126i.y; +// 17 +R123i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R123i.y; +R127i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R3i.w = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.z))); +PS1i = R3i.w; +// 18 +PV0i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.y)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.y)); +// 19 +backupReg0i = R125i.w; +R126i.x = int(1) - PS0i; +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +R125i.w = PS0i * backupReg0i; +PS1i = R125i.w; +// 20 +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.z)),intBitsToFloat(R124i.y)) + intBitsToFloat(R127i.w))); +PV0i.x = R127i.x; +PS0i = floatBitsToInt(float(R127i.y)); +// 21 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.x) >= abs(intBitsToFloat(R126i.z)))?1.0:0.0); +PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R126i.z))) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R125i.y = int(intBitsToFloat(R126i.w)); +PS1i = R125i.y; +// 22 +backupReg0i = R124i.w; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +R124i.w = ((intBitsToFloat(PV1i.y) == 0.0)?(R127i.x):(PV1i.z)); +PV0i.w = R124i.w; +R124i.z = backupReg0i * PS1i; +PS0i = R124i.z; +// 23 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.w)); +R127i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R127i.y; +// 24 +R123i.z = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV1i.x):(R124i.w)); +PV0i.z = R123i.z; +PV0i.w = 0 - PS1i; +// 25 +PV1i.x = max(R127i.y, PV0i.w); +R123i.y = ((-(intBitsToFloat(R126i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +PV1i.y = R123i.y; +// 26 +R123i.w = ((intBitsToFloat(R126i.z) == 0.0)?(R126i.y):(PV1i.y)); +PV0i.w = R123i.w; +PS0i = PV1i.x * R125i.y; +// 27 +R127i.x = R6i.w + PS0i; +PS1i = int(intBitsToFloat(PV0i.w)); +// 28 +PS0i = R126i.x * PS1i; +// 29 +PV1i.x = PS0i + R125i.w; +R126i.y = R2i.w * R127i.x; +PS1i = R126i.y; +// 30 +PS0i = R7i.w * PV1i.x; +// 31 +PV1i.z = PS0i + R125i.x; +// 32 +PV0i.y = R126i.y + PV1i.z; +// 33 +PV1i.w = R124i.z + PV0i.y; +// 34 +R127i.x = floatBitsToInt(float(PV1i.w)); +PS0i = R127i.x; +// 35 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), abs(intBitsToFloat(PS0i)))); +R125i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +// 36 +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +// 37 +R125i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R124i.y)) + intBitsToFloat(R125i.w))); +PV1i.x = R125i.x; +// 38 +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.x) >= abs(intBitsToFloat(R126i.z)))?1.0:0.0); +PV0i.z = floatBitsToInt(-(abs(intBitsToFloat(R126i.z))) + intBitsToFloat(PV1i.x)); +// 39 +R125i.w = ((intBitsToFloat(PV0i.y) == 0.0)?(R125i.x):(PV0i.z)); +PV1i.w = R125i.w; +// 40 +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.w)); +// 41 +R123i.z = ((-(intBitsToFloat(R125i.w)) > 0.0)?(PV0i.x):(R125i.w)); +PV1i.z = R123i.z; +// 42 +R123i.y = ((-(intBitsToFloat(R127i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +// 43 +R123i.w = ((intBitsToFloat(R126i.z) == 0.0)?(R127i.x):(PV0i.y)); +PV1i.w = R123i.w; +// 44 +R127i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R127i.x; +// 45 +R13i.z = floatBitsToInt(float(PS0i)); +PS1i = R13i.z; +// 46 +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R12i.y = floatBitsToInt(float(R127i.x)); +PS0i = R12i.y; +// 47 +R2i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R3i.w = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(R3i.w))); +R123i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 0.5 + intBitsToFloat(R13i.z))); +PV0i.z = R123i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * 0.25); +R124i.y = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * 4.0 + intBitsToFloat(R2i.z))); +PV1i.y = R124i.y; +// 2 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.y) >= 4.0)?1.0:0.0); +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xc0800000)); +// 3 +R126i.z = ((intBitsToFloat(PV0i.x) == 0.0)?(R124i.y):(PV0i.w)); +PV1i.z = R126i.z; +PS1i = int(intBitsToFloat(PV0i.y)); +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 4.0); +R2i.z = PS1i + 0x0000001b; +PS0i = int(uf_blockVS7[48].z); +// 5 +R123i.w = ((-(intBitsToFloat(R126i.z)) > 0.0)?(PV0i.y):(R126i.z)); +PV1i.w = R123i.w; +R1i.z = floatBitsToInt(float(PS0i)); +PS1i = R1i.z; +// 6 +R123i.x = ((-(intBitsToFloat(R12i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.w)))):(PV1i.w)); +PV0i.x = R123i.x; +R12i.y = floatBitsToInt(float(R8i.x)); +PS0i = R12i.y; +// 7 +PS1i = int(intBitsToFloat(PV0i.x)); +// 8 +R127i.x = 0xfffffffd + PS1i; +PV0i.y = int(-1) + PS1i; +R126i.z = floatBitsToInt(abs(intBitsToFloat(R1i.z))); +R125i.w = 0xfffffffe + PS1i; +PS0i = floatBitsToInt(float(PS1i)); +// 9 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.y)); +// 10 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(float(R125i.w)); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R124i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R124i.y; +// 12 +PV0i.x = 0 - PS1i; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +R125i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R125i.w; +// 13 +PV1i.x = max(R124i.y, PV0i.x); +PV1i.y = 0 - PS0i; +R125i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R125i.x; +// 14 +R7i.x = int(1) - PV1i.x; +PV0i.y = 0 - PS1i; +PV0i.z = max(R125i.w, PV1i.y); +PS0i = floatBitsToInt(float(R127i.x)); +// 15 +R12i.x = int(1) - PV0i.z; +PV1i.y = max(R125i.x, PV0i.y); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R7i.w = floatBitsToInt(float(R8i.x)); +PS1i = R7i.w; +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R3i.w = int(1) - PV1i.y; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R1i.z))); +// 17 +PV1i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R7i.w)), intBitsToFloat(PS0i))); +R124i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R124i.z; +// 18 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +PV0i.y = 0 - PS1i; +// 19 +backupReg0i = R126i.z; +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R124i.y))); +PV1i.z = R126i.z; +PV1i.w = max(R124i.z, PV0i.y); +// 20 +R8i.x = int(1) - PV1i.w; +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R1i.z))) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R1i.z)))?1.0:0.0); +// 21 +R2i.x = ((intBitsToFloat(PV0i.w) == 0.0)?(R126i.z):(PV0i.y)); +PV1i.x = R2i.x; +// 22 +R13i.z = floatBitsToInt(abs(intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.x)); +} +if( activeMaskStackC[3] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockVS7[R2i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((intBitsToFloat(R12i.y) > 0.0)?1.0:0.0); +R123i.y = ((-(intBitsToFloat(R2i.x)) > 0.0)?(R13i.z):(R2i.x)); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(R12i.y))?1.0:0.0); +R127i.z = R8i.x * R6i.w; +PS0i = R127i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS7[45].x)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), uf_blockVS7[45].y)); +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +R123i.w = ((-(intBitsToFloat(R7i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.w = R123i.w; +R126i.y = R3i.w * R6i.z; +PS1i = R126i.y; +// 2 +R125i.x = ((intBitsToFloat(R1i.z) == 0.0)?(R7i.w):(PV1i.w)); +R124i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(R126i.z)); +R126i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * 0.5 + intBitsToFloat(R12i.y))); +PV0i.w = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R125i.w = R12i.x * R6i.y; +PS0i = R125i.w; +// 3 +PV1i.x = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV1i.y = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +R124i.w = floatBitsToInt(-(intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.w)); +PS1i = R7i.x * R6i.x; +// 4 +backupReg0i = R124i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),uf_blockVS7[46].z) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(backupReg0i)))); +PV0i.z = R125i.w + PS1i; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),uf_blockVS7[46].w) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R124i.z = int(intBitsToFloat(R125i.x)); +PS0i = R124i.z; +// 5 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[44].y) + intBitsToFloat(R124i.w))); +PV1i.y = R126i.y + PV0i.z; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[45].z) + intBitsToFloat(PV0i.x))); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[45].w) + intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R1i.z)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +R126i.w = R127i.z + PV1i.y; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].z); +// 7 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +R123i.y = ((R8i.y == 0)?(0):(int(1))); +PV1i.y = R123i.y; +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS0i))); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 8 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.w)) + -(0.5))); +R126i.y = (PV1i.y == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i))); +PV0i.z = R126i.z; +PV0i.w = (PV1i.y == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 9 +backupReg0i = R124i.z; +R123i.x = ((PV0i.w == 0)?(R10i.y):(R10i.x)); +PV1i.x = R123i.x; +R125i.y = ((PV0i.y == 0)?(R10i.x):(R10i.y)); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.z)) + -(0.5))); +R123i.w = ((PV0i.w == 0)?(R10i.x):(R10i.z)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(float(backupReg0i)); +// 10 +R123i.x = ((R126i.y == 0)?(PV1i.x):(R10i.z)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS1i)) + intBitsToFloat(R124i.y))); +PV0i.y = R123i.y; +R123i.z = ((R126i.y == 0)?(PV1i.w):(R10i.y)); +PV0i.z = R123i.z; +R127i.w = ((R126i.y == 0)?(R10i.y):(R10i.z)); +PS0i = floatBitsToInt(float(R127i.z)); +// 11 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV0i.x))); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x))); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) * 2.0); +PS1i = int(uf_blockVS7[53].z); +// 12 +PV0i.x = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +PV0i.y = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R124i.z)) + -(intBitsToFloat(PV1i.z)))); +R127i.y = floatBitsToInt(float(PS1i)); +PS0i = R127i.y; +// 13 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R124i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R124i.w = floatBitsToInt(float(R126i.w)); +PS1i = R124i.w; +// 14 +backupReg0i = R125i.y; +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R125i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R126i.x = floatBitsToInt(float(R126i.w)); +PS0i = R126i.x; +// 15 +R125i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R124i.z)))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R127i.y))); +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.x)), intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R124i.w))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[49].y) + intBitsToFloat(R127i.x))); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[50].z) + intBitsToFloat(R125i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[50].w) + intBitsToFloat(R125i.x))); +R124i.z = ((R8i.y == 0)?(0):(0x00000002)); +PV1i.z = R124i.z; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 18 +backupReg0i = R126i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS1i))); +PV0i.x = R1i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R124i.y))); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R124i.w = (PV1i.z == int(1))?int(0xFFFFFFFF):int(0x0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 19 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R127i.y)))?1.0:0.0); +R124i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS0i))); +PV1i.y = R124i.y; +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.z),intBitsToFloat(PV0i.x)) + -(0.5))); +PV1i.w = floatBitsToInt(-(abs(intBitsToFloat(R127i.y))) + intBitsToFloat(PV0i.y)); +PS1i = int(intBitsToFloat(PV0i.z)); +// 20 +backupReg0i = R126i.y; +backupReg1i = R124i.z; +R7i.x = ((R124i.w == 0)?(R10i.x):(R10i.y)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PV1i.y)) + -(0.5))); +R124i.z = ((intBitsToFloat(PV1i.x) == 0.0)?(backupReg0i):(PV1i.w)); +PV0i.z = R124i.z; +PV0i.w = (backupReg1i == 0x00000002)?int(0xFFFFFFFF):int(0x0); +PS0i = floatBitsToInt(float(PS1i)); +// 21 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.z))); +PV1i.y = R123i.y; +R123i.z = ((PV0i.w == 0)?(R10i.x):(R10i.z)); +PV1i.z = R123i.z; +R123i.w = ((PV0i.w == 0)?(R10i.y):(R10i.x)); +PV1i.w = R123i.w; +R6i.z = ((R124i.w == 0)?(R10i.y):(R10i.z)); +PS1i = R6i.z; +// 22 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R126i.y)) + -(intBitsToFloat(PV1i.y)))); +R1i.y = ((R124i.w == 0)?(PV1i.z):(R10i.y)); +R14i.z = ((R124i.w == 0)?(PV1i.w):(R10i.z)); +R123i.w = ((-(intBitsToFloat(R124i.z)) > 0.0)?(PV1i.x):(R124i.z)); +PV0i.w = R123i.w; +PS0i = int(uf_blockVS7[58].z); +// 23 +R123i.x = ((-(intBitsToFloat(R126i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.x = R123i.x; +R7i.w = floatBitsToInt(float(PS0i)); +PS1i = R7i.w; +// 24 +R10i.x = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +R10i.y = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +R10i.z = ((intBitsToFloat(R127i.y) == 0.0)?(R126i.x):(PV1i.x)); +R10i.w = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R10i.w; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.w) * 0.0); +R127i.y = ((intBitsToFloat(R10i.y) == 0.0)?(0):(R10i.x)); +PV0i.y = R127i.y; +PS0i = int(intBitsToFloat(R10i.z)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R1i.y))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +PV1i.y = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x); +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(abs(intBitsToFloat(R7i.w)) + intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(float(PS0i)); +// 2 +R123i.x = ((-(intBitsToFloat(R127i.y)) > 0.0)?(PV1i.w):(R127i.y)); +PV0i.x = R123i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R14i.z))); +R124i.y = floatBitsToInt(intBitsToFloat(R124i.y) * 2.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PS1i)) + intBitsToFloat(R0i.w))); +PV0i.w = R123i.w; +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 3 +R13i.x = floatBitsToInt(intBitsToFloat(R6i.y) + 0.5); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.w)),uf_blockVS7[54].x) + -(intBitsToFloat(PV0i.z)))); +R123i.z = ((intBitsToFloat(R7i.w) == 0.0)?(0):(PV0i.x)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(R1i.z)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 4 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +R8i.y = floatBitsToInt(intBitsToFloat(R3i.w) + 0.5); +R5i.z = floatBitsToInt(intBitsToFloat(R6i.x) + 0.5); +R13i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.5); +R127i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R127i.y; +// 5 +R125i.x = floatBitsToInt(intBitsToFloat(R3i.x) + -(uf_blockVS7[93].x)); +R10i.y = floatBitsToInt(intBitsToFloat(R7i.y) + 0.0); +PV1i.y = R10i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(PV0i.x)) + -(0.5))); +R124i.w = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 6 +backupReg0i = R127i.y; +R14i.x = R7i.y; +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + -(uf_blockVS7[104].w)); +PS0i = floatBitsToInt(float(backupReg0i)); +// 7 +backupReg0i = R126i.y; +PV1i.x = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(PV0i.y)) + -(0.5))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i))); +R126i.x = floatBitsToInt(float(R125i.y)); +PS1i = R126i.x; +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R124i.y)) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z); +PV0i.w = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.w)); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R3i.z = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(PS0i)); +R3i.z = clampFI32(R3i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[54].y) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[55].w) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[105].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),uf_blockVS7[55].z) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 11 +backupReg0i = R124i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.y)) + -(intBitsToFloat(PV0i.y)))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R124i.z = floatBitsToInt(-(uf_blockVS7[104].y) + uf_blockVS7[105].y); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(backupReg0i)) + intBitsToFloat(R127i.w))); +PV1i.w = R123i.w; +// 12 +R24i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.5); +R2i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.z = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R127i.w = floatBitsToInt(-(uf_blockVS7[104].z) + uf_blockVS7[105].z); +// 13 +R126i.x = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +R126i.z = floatBitsToInt(-(uf_blockVS7[105].y) + uf_blockVS7[106].y); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 14 +R125i.x = floatBitsToInt(-(uf_blockVS7[105].z) + uf_blockVS7[106].z); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +// 15 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[104].x)); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.w)) + uf_blockVS7[104].y)); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.y)) + uf_blockVS7[104].z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[106].w)); +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(-(uf_blockVS7[106].z) + uf_blockVS7[107].z); +PS0i = R127i.w; +// 17 +R12i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[105].x)); +R13i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + uf_blockVS7[105].y)); +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.y)) + uf_blockVS7[105].z)); +// 18 +R126i.x = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +R126i.z = floatBitsToInt(-(uf_blockVS7[106].y) + uf_blockVS7[107].y); +// 19 +R124i.x = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[107].w)); +PV1i.y = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R14i.z = ((intBitsToFloat(R125i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +// 20 +R127i.x = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +R6i.y = ((intBitsToFloat(R127i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R127i.z = floatBitsToInt(-(uf_blockVS7[107].y) + uf_blockVS7[108].y); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 21 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(-(uf_blockVS7[107].z) + uf_blockVS7[108].z); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +// 22 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.z)) + uf_blockVS7[106].x)); +R127i.y = ((intBitsToFloat(R125i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.w)) + uf_blockVS7[106].y)); +R10i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[106].z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 23 +R3i.x = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[108].w)); +PV1i.x = R3i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R1i.w = floatBitsToInt(-(uf_blockVS7[108].z) + uf_blockVS7[109].z); +PS1i = R1i.w; +// 24 +R8i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.z)) + uf_blockVS7[107].x)); +R126i.y = ((intBitsToFloat(R124i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R126i.y; +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.w)) + uf_blockVS7[107].y)); +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[107].z)); +R7i.y = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R7i.y; +// 25 +R7i.x = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R6i.z = floatBitsToInt(-(uf_blockVS7[108].y) + uf_blockVS7[109].y); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R127i.w = floatBitsToInt(-(intBitsToFloat(R127i.y)) + 1.0); +PS1i = R127i.w; +// 26 +R1i.x = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[109].w)); +PV0i.x = R1i.x; +PV0i.y = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.w))); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +R3i.w = floatBitsToInt(-(intBitsToFloat(R14i.z)) + 1.0); +PS0i = R3i.w; +// 27 +R6i.x = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +R1i.y = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R1i.z = floatBitsToInt(-(uf_blockVS7[109].y) + uf_blockVS7[110].y); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(R127i.w))); +R11i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +PS1i = R11i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +R124i.x = floatBitsToInt(-(uf_blockVS7[109].z) + uf_blockVS7[110].z); +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.w) * intBitsToFloat(R11i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R7i.x) * intBitsToFloat(R11i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(R6i.z) * intBitsToFloat(R11i.x)); +PS0i = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +// 1 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PV0i.z)) + uf_blockVS7[108].x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R1i.y)) + 1.0); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PV0i.w)) + uf_blockVS7[108].y)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PV0i.y)) + uf_blockVS7[108].z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.x) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R124i.x) * intBitsToFloat(PS1i)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(PS1i)); +R126i.y = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[110].w)); +PS0i = R126i.y; +// 3 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.x)) + uf_blockVS7[109].x)); +R124i.y = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R124i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.w)) + uf_blockVS7[109].y)); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.y)) + uf_blockVS7[109].z)); +PS1i = floatBitsToInt(-(intBitsToFloat(R6i.y)) + 1.0); +// 4 +R124i.x = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +R127i.y = floatBitsToInt(-(uf_blockVS7[110].y) + uf_blockVS7[111].y); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +// 5 +PV1i.x = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS7[111].w)); +R127i.w = floatBitsToInt(-(uf_blockVS7[110].z) + uf_blockVS7[111].z); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R3i.w))); +R1i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].y, intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].z, intBitsToFloat(R3i.w))); +R127i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R127i.x; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R124i.x) * intBitsToFloat(PS0i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R124i.w = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +PS1i = R124i.w; +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(R127i.x)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(R0i.w)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.x),intBitsToFloat(R0i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(R0i.w)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z)) + uf_blockVS7[110].x)); +PS0i = R127i.x; +// 9 +backupReg0i = R126i.y; +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R124i.w)) + uf_blockVS7[110].y)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)) + uf_blockVS7[110].z)); +PS1i = R124i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + 1.0); +R127i.y = floatBitsToInt(fract(intBitsToFloat(R4i.w))); +PS0i = R127i.y; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(0x42c80000)); +R126i.x = clampFI32(R126i.x); +PS1i = R126i.x; +// 12 +backupReg0i = R0i.x; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PS0i = R4i.z; +// 13 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(R126i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), uf_blockVS11[5].z)); +PS1i = R4i.x; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].y,intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].z,intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +// 15 +R6i.y = PV0i.x; +R2i.z = PV0i.w; +R7i.y = PV0i.z; +PS1i = R7i.y; +// 16 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R3i.z)) + 0.0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R11i.y) * intBitsToFloat(R9i.w)); +// 17 +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 18 +R1i.y = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R1i.y = clampFI32(R1i.y); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R5i.x))); +R126i.y = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R7i.z))); +PV0i.w = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +// 1 +R126i.x = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R15i.x))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(R1i.y)) + 1.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockVS13[24].x) + -(uf_blockVS13[24].y))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV1i.z)) + uf_blockVS13[27].x)); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R124i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0x41080000)); +PS0i = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PV1i.x)); +// 3 +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), uf_blockVS13[26].w)); +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(R126i.y) + intBitsToFloat(PS0i))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(uf_blockVS13[28].y + 1.0); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +tempResultf = log2(intBitsToFloat(PV0i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[24].w, intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt((intBitsToFloat(R127i.x) * intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 1.5); +PV0i.z = clampFI32(PV0i.z); +R125i.w = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R12i.z))); +tempResultf = log2(intBitsToFloat(PV1i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +R125i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(PS0i))); +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS0i))); +R12i.z = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(0x3daaaaab)); +R124i.w = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x41700000)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 6 +R5i.x = ((0.0 >= intBitsToFloat(R3i.z))?int(0xFFFFFFFF):int(0x0)); +R12i.y = 0; +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS1i)),uf_blockVS13[25].w) + uf_blockVS13[25].w)); +R4i.w = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y)); +PS0i = floatBitsToInt(tempResultf); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R5i.w = 0; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R125i.y))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PS0i = R1i.y; +// 9 +R2i.x = 0; +R5i.y = ((R5i.x == 0)?(R0i.x):(R5i.w)); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.z = R126i.z; +R8i.w = 0; +PV1i.w = R8i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R125i.x))); +// 10 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R4i.y = ((R5i.x == 0)?(R4i.z):(PV1i.w)); +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(PS1i)) + uf_blockVS13[23].z)); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.w)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(0xbe593484))); +PV1i.y = R123i.y; +R7i.z = ((R5i.x == 0)?(R9i.y):(R4i.w)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w)); +PV1i.w = clampFI32(PV1i.w); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R9i.y = PV1i.w; +PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(0x3e4ccccd))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R4i.z = PV1i.w; +PS0i = R4i.z; +// 13 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.w))) + 1.0)); +R10i.y = R9i.z; +R6i.z = R16i.x; +R9i.w = floatBitsToInt(min(intBitsToFloat(PV0i.z), 1.0)); +R0i.x = R11i.w; +PS1i = R0i.x; +} +if( activeMaskStackC[3] == true ) { +R1i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R1i.xy)).xyz); +R12i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R12i.zy)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R9i.w))); +PV0i.x = R125i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R9i.w))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R9i.w))); +R9i.w = ((R5i.x == 0)?(R15i.z):(R15i.z)); +R1i.z = ((R5i.x == 0)?(R6i.y):(R6i.y)); +PS0i = R1i.z; +// 1 +R1i.x = ((R5i.x == 0)?(0):(0x3f800000)); +R1i.y = ((R5i.x == 0)?(R20i.z):(R20i.z)); +R126i.z = ((R5i.x == 0)?(0):(PV0i.x)); +R2i.w = ((R5i.x == 0)?(R3i.x):(R2i.x)); +R126i.y = ((R5i.x == 0)?(0):(R9i.y)); +PS1i = R126i.y; +// 2 +R123i.x = ((R5i.x == 0)?(0):(R125i.y)); +PV0i.x = R123i.x; +R124i.y = ((R5i.x == 0)?(0):(R12i.w)); +R123i.z = ((R5i.x == 0)?(0):(R15i.x)); +PV0i.z = R123i.z; +R123i.w = ((R5i.x == 0)?(0):(R3i.z)); +PV0i.w = R123i.w; +R127i.y = ((R5i.x == 0)?(0):(R124i.z)); +PS0i = R127i.y; +// 3 +R21i.x = ((R1i.x == 0)?(R3i.z):(PV0i.w)); +R21i.y = ((R1i.x == 0)?(R15i.x):(PV0i.z)); +R21i.z = ((R1i.x == 0)?(R9i.y):(R126i.y)); +R123i.w = ((R5i.x == 0)?(0):(R4i.z)); +PV1i.w = R123i.w; +R22i.x = ((R1i.x == 0)?(R125i.y):(PV0i.x)); +PS1i = R22i.x; +// 4 +backupReg0i = R125i.x; +R125i.x = R11i.w; +R22i.y = ((R1i.x == 0)?(backupReg0i):(R126i.z)); +R22i.z = ((R1i.x == 0)?(R124i.z):(R127i.y)); +R22i.w = ((R1i.x == 0)?(R4i.z):(PV1i.w)); +// 5 +R123i.x = ((R5i.x == 0)?(0):(R4i.x)); +PV1i.x = R123i.x; +R127i.y = ((R5i.x == 0)?(0):(R12i.z)); +R126i.z = ((R5i.x == 0)?(0):(R12i.y)); +R125i.w = ((R5i.x == 0)?(0):(R10i.y)); +R9i.y = ((R5i.x == 0)?(0):(R6i.z)); +PS1i = R9i.y; +// 6 +R126i.x = ((R5i.x == 0)?(0):(R0i.w)); +R125i.y = ((R5i.x == 0)?(0):(R24i.z)); +R124i.z = ((R5i.x == 0)?(0):(R2i.y)); +R21i.w = ((R1i.x == 0)?(R4i.x):(PV1i.x)); +R124i.w = ((R5i.x == 0)?(0):(R8i.y)); +PS0i = R124i.w; +// 7 +R124i.x = ((R5i.x == 0)?(0):(R7i.y)); +R126i.y = ((R5i.x == 0)?(0):(R5i.z)); +R125i.z = ((R5i.x == 0)?(0):(R13i.w)); +R123i.w = ((R5i.x == 0)?(0):(R12i.x)); +PV1i.w = R123i.w; +R127i.z = ((R5i.x == 0)?(0):(R2i.z)); +PS1i = R127i.z; +// 8 +R23i.x = ((R1i.x == 0)?(R12i.x):(PV1i.w)); +R23i.y = ((R1i.x == 0)?(R12i.y):(R126i.z)); +R23i.z = ((R1i.x == 0)?(R12i.z):(R127i.y)); +R23i.w = ((R1i.x == 0)?(R12i.w):(R124i.y)); +R127i.x = R9i.z; +PS0i = R127i.x; +// 9 +R12i.x = ((R5i.x == 0)?(R20i.y):(R6i.y)); +R127i.y = ((R5i.x == 0)?(0):(R14i.w)); +R126i.z = ((R5i.x == 0)?(R20i.z):(R20i.z)); +R123i.w = ((R5i.x == 0)?(0):(R0i.x)); +PV1i.w = R123i.w; +R9i.z = ((R5i.x == 0)?(0):(R16i.z)); +PS1i = R9i.z; +// 10 +R25i.x = ((R1i.x == 0)?(R125i.x):(PV1i.w)); +R25i.y = ((R1i.x == 0)?(R127i.x):(R125i.w)); +// 11 +R127i.x = ((R5i.x == 0)?(0):(R11i.y)); +R124i.y = ((R5i.x == 0)?(0):(R15i.w)); +R12i.z = ((R5i.x == 0)?(0):(R17i.z)); +R123i.w = ((R5i.x == 0)?(0):(R24i.x)); +PV1i.w = R123i.w; +R12i.w = ((R5i.x == 0)?(0):(R13i.y)); +PS1i = R12i.w; +// 12 +R6i.x = ((R1i.x == 0)?(R24i.x):(PV1i.w)); +R6i.y = ((R1i.x == 0)?(R2i.y):(R124i.z)); +R4i.z = ((R5i.x == 0)?(0):(R16i.w)); +R125i.w = ((R5i.x == 0)?(0):(R3i.y)); +R126i.w = ((R5i.x == 0)?(0):(R14i.w)); +PS0i = R126i.w; +// 13 +backupReg0i = R4i.w; +R123i.x = ((R5i.x == 0)?(0):(R13i.x)); +PV1i.x = R123i.x; +R123i.y = ((R5i.x == 0)?(0):(R0i.z)); +PV1i.y = R123i.y; +R124i.z = ((R5i.x == 0)?(0):(R0i.y)); +R127i.w = ((R5i.x == 0)?(R19i.y):(R8i.w)); +R4i.w = ((R5i.x == 0)?(R19i.z):(backupReg0i)); +PS1i = R4i.w; +// 14 +R24i.x = ((R1i.x == 0)?(R13i.x):(PV1i.x)); +R24i.y = ((R1i.x == 0)?(R8i.y):(R124i.w)); +R24i.z = ((R1i.x == 0)?(R13i.w):(R125i.z)); +PV0i.z = R24i.z; +R24i.w = ((R1i.x == 0)?(R5i.z):(R126i.y)); +R0i.x = ((R1i.x == 0)?(R0i.z):(PV1i.y)); +PS0i = R0i.x; +// 15 +backupReg0i = R0i.y; +PV1i.x = R16i.x; +R0i.y = ((R1i.x == 0)?(R3i.y):(R125i.w)); +R0i.z = ((R1i.x == 0)?(R14i.w):(R126i.w)); +R0i.w = ((R1i.x == 0)?(backupReg0i):(R124i.z)); +R6i.z = ((R1i.x == 0)?(PV0i.z):(R125i.y)); +PS1i = R6i.z; +// 16 +R123i.x = ((R5i.x == 0)?(R19i.w):(R15i.z)); +PV0i.x = R123i.x; +R123i.y = ((R5i.x == 0)?(R19i.x):(R5i.w)); +PV0i.y = R123i.y; +R25i.z = ((R1i.x == 0)?(PV1i.x):(R9i.y)); +// 17 +R19i.x = ((R1i.x == 0)?(R5i.y):(PV0i.y)); +R19i.y = ((R1i.x == 0)?(R4i.y):(R127i.w)); +R19i.z = ((R1i.x == 0)?(R7i.z):(R4i.w)); +R19i.w = ((R1i.x == 0)?(R9i.w):(PV0i.x)); +R25i.w = ((R1i.x == 0)?(R126i.x):(R126i.x)); +PS1i = R25i.w; +// 18 +R123i.x = ((R5i.x == 0)?(0):(R14i.x)); +PV0i.x = R123i.x; +// 19 +backupReg0i = R14i.x; +backupReg1i = R14i.w; +R14i.x = ((R1i.x == 0)?(backupReg0i):(PV0i.x)); +R14i.y = ((R1i.x == 0)?(R7i.y):(R124i.x)); +R14i.z = ((R1i.x == 0)?(R2i.z):(R127i.z)); +R14i.w = ((R1i.x == 0)?(backupReg1i):(R127i.y)); +// 20 +R123i.x = ((R5i.x == 0)?(R20i.x):(R2i.x)); +PV0i.x = R123i.x; +// 21 +R20i.x = ((R1i.x == 0)?(R2i.w):(PV0i.x)); +R20i.y = ((R1i.x == 0)?(R1i.z):(R12i.x)); +R20i.z = ((R1i.x == 0)?(R1i.y):(R126i.z)); +// 22 +R123i.y = ((R5i.x == 0)?(0):(R17i.x)); +PV0i.y = R123i.y; +// 23 +R15i.x = ((R1i.x == 0)?(R17i.x):(PV0i.y)); +R15i.y = ((R1i.x == 0)?(R11i.y):(R127i.x)); +R15i.z = ((R1i.x == 0)?(R15i.w):(R124i.y)); +R15i.w = ((R1i.x == 0)?(R16i.z):(R9i.z)); +// 24 +R123i.y = ((R5i.x == 0)?(0):(R18i.x)); +PV0i.y = R123i.y; +// 25 +backupReg0i = R13i.y; +R13i.x = ((R1i.x == 0)?(R18i.x):(PV0i.y)); +R13i.y = ((R1i.x == 0)?(R17i.z):(R12i.z)); +R13i.z = ((R1i.x == 0)?(backupReg0i):(R12i.w)); +R13i.w = ((R1i.x == 0)?(R16i.w):(R4i.z)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R13i.x), intBitsToFloat(R13i.y), intBitsToFloat(R13i.z), intBitsToFloat(R13i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R15i.x), intBitsToFloat(R15i.y), intBitsToFloat(R15i.z), intBitsToFloat(R15i.w)); +// export +passParameterSem5 = vec4(intBitsToFloat(R14i.x), intBitsToFloat(R14i.y), intBitsToFloat(R14i.z), intBitsToFloat(R14i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R24i.x), intBitsToFloat(R24i.y), intBitsToFloat(R24i.z), intBitsToFloat(R24i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R25i.x), intBitsToFloat(R25i.y), intBitsToFloat(R25i.z), intBitsToFloat(R25i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/314c2583a1612026_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/314c2583a1612026_0000000000000000_vs.txt new file mode 100644 index 00000000..b22b87a4 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/314c2583a1612026_0000000000000000_vs.txt @@ -0,0 +1,1992 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader 314c2583a1612026 // guardian explosion fire vs +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem8; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 5) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem9; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R12i.z = floatBitsToInt(-(intBitsToFloat(R7i.y)) + 1.0); +R0i.w = 0; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +R13i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + uf_blockVS8[2].x); +R8i.w = floatBitsToInt(-(intBitsToFloat(R7i.x)) + 1.0); +PS1i = R8i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R13i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R15i.x = 0; +R15i.y = 0; +R15i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R16i.x = 0; +PS0i = R16i.x; +// 1 +R3i.w = R1i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R3i.w = R0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R3i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R2i.w)); +// 1 +R0i.x = floatBitsToInt(float(PS0i)); +PS1i = R0i.x; +// 2 +backupReg0i = R0i.x; +predResult = (intBitsToFloat(R13i.w) >= intBitsToFloat(backupReg0i)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R15i.x = 0; +R15i.y = 0; +R15i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R16i.x = 0; +PS0i = R16i.x; +// 1 +R0i.w = R1i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R0i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockVS7[10].y)); +PV0i.y = floatBitsToInt(max(intBitsToFloat(R5i.x), 0.0)); +PV0i.z = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +PV0i.w = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.y), 0.0)); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +R6i.w = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS1i = R6i.w; +// 2 +R2i.x = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(PV1i.x)); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.z)); +R3i.z = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS1i)); +PV0i.z = R3i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R126i.w = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +PS0i = R126i.w; +// 3 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.w))); +R127i.z = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +PV1i.w = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +// 4 +backupReg0i = R127i.y; +R126i.x = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y); +R127i.y = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +backupReg0i = R126i.y; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +R126i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(PS0i)); +R126i.w = floatBitsToInt(-(uf_blockVS7[97].z) + uf_blockVS7[98].z); +PS1i = R126i.w; +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + -(uf_blockVS7[96].w)); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + -(uf_blockVS7[97].w)); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R127i.w))); +PV1i.y = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R126i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R127i.x))); +R125i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.w; +// 8 +R127i.x = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(PV1i.w)); +R126i.y = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(PV1i.x)); +R125i.z = ((intBitsToFloat(R126i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt(uf_blockVS7[96].z + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(uf_blockVS7[98].w)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +// 10 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.x))); +R126i.z = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R126i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +PS0i = R124i.z; +// 11 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt(uf_blockVS7[97].z + intBitsToFloat(PV0i.w)); +R126i.y = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(PV0i.x)); +R127i.z = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PS1i = R127i.y; +// 12 +backupReg0i = R126i.z; +backupReg1i = R127i.x; +R125i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].x, intBitsToFloat(R126i.z))); +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].z, intBitsToFloat(R126i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].y, intBitsToFloat(backupReg0i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.w))); +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.z))); +PS0i = R127i.x; +// 13 +backupReg0i = R126i.x; +backupReg1i = R126i.y; +backupReg2i = R127i.z; +backupReg3i = R127i.w; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV0i.w))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(R124i.z))); +PS1i = floatBitsToInt(-(intBitsToFloat(R125i.w)) + 1.0); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(PS1i))); +R4i.w = 0x3f800000; +PS0i = R4i.w; +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(uf_blockVS7[13].x); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +PS1i = floatBitsToInt(uf_blockVS7[13].y); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 16 +R0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.z)); +R2i.w = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(PS1i)); +PS0i = R2i.w; +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV0i.z)); +// 18 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV1i.w))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PV1i.x))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PV1i.z))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R6i.x; +backupReg1i = R6i.y; +backupReg1i = R6i.y; +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[3].z)); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS8[3].y)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS8[3].y)); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[3].w)); +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R0i.y = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.w = tempi.x; +// 3 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w))); +PV1i.x = R1i.x; +PV1i.y = R1i.x; +PV1i.z = R1i.x; +PV1i.w = R1i.x; +// 4 +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), uf_blockVS7[13].z)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = floatBitsToInt(intBitsToFloat(R0i.y) + -(uf_blockVS6[17].x)); +PV0i.x = R125i.x; +R125i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(uf_blockVS6[17].y)); +PV0i.y = R125i.y; +R126i.z = floatBitsToInt(intBitsToFloat(R1i.x) + -(uf_blockVS6[17].z)); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(R0i.y)) + uf_blockVS6[17].x); +R126i.y = floatBitsToInt(-(intBitsToFloat(R3i.w)) + uf_blockVS6[17].y); +PS0i = R126i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + uf_blockVS6[17].z); +PS1i = R124i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.x)), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R126i.z)), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.y)), intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.w))); +PV0i.x = R2i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x))); +PV0i.y = R1i.y; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.z))); +PV0i.w = R124i.w; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R127i.z; +// 5 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV0i.w)); +R4i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +R2i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.x)); +PS1i = R2i.y; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.z = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R124i.w)); +PS0i = R1i.z; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.w),intBitsToFloat(R126i.y),intBitsToFloat(R124i.z),-0.0),vec4(intBitsToFloat(R127i.w),intBitsToFloat(R126i.y),intBitsToFloat(R124i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +R125i.x = floatBitsToInt(-(uf_blockVS6[17].x) + intBitsToFloat(R4i.w)); +R127i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(R127i.z)); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(-(uf_blockVS6[17].y) + intBitsToFloat(R2i.y)); +R0i.w = 0x3f800000; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R125i.y = floatBitsToInt(tempResultf); +PS0i = R125i.y; +// 9 +backupReg0i = R126i.y; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PV0i.y))); +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PS1i = R126i.x; +// 10 +backupReg0i = R4i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R0i.x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R2i.w))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R125i.y))); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), -(uf_blockVS6[1].z))); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), -(uf_blockVS6[1].y))); +R125i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].y,intBitsToFloat(PV0i.w)) + intBitsToFloat(PS0i))); +R126i.z = R126i.y; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), -(uf_blockVS6[1].x))); +R125i.z = R126i.x; +PS1i = R125i.z; +// 12 +backupReg0i = R127i.y; +R0i.x = R127i.w; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].z,intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.w))); +PV0i.y = R127i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].x,intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.x))); +PV0i.z = R124i.z; +R4i.y = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS0i = R4i.y; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(-(uf_blockVS6[17].z) + intBitsToFloat(R1i.z)); +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R127i.z),intBitsToFloat(PS1i),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R127i.z),intBitsToFloat(PS1i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 15 +backupReg0i = R127i.y; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +PV1i.x = R125i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PV1i.w = R125i.w; +R125i.y = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R125i.y; +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.w))); +R126i.w = PV1i.y; +R124i.x = PV1i.w; +PS0i = R124i.x; +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(min(intBitsToFloat(R125i.y), uf_blockVS7[116].x)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.x)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[116].x); +// 18 +R126i.x = PV1i.y; +PV0i.y = PV1i.x; +R124i.z = PV1i.w; +R2i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +R1i.w = 0x3f800000; +PS0i = R1i.w; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 20 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R126i.w),intBitsToFloat(R126i.x),intBitsToFloat(R125i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); +PS0i = R126i.x; +// 21 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.z),intBitsToFloat(backupReg0i),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV0i.x)); +// 22 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R126i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV1i.x)); +// 23 +R1i.x = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(PV0i.y)); +R1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x)); +R3i.w = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV0i.w)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(R4i.y)); +PV0i.y = floatBitsToInt((uf_blockVS7[8].x > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R1i.z)) + intBitsToFloat(R3i.w)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(R4i.y)); +PS0i = floatBitsToInt((0.0 > uf_blockVS7[8].x)?1.0:0.0); +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R2i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(R4i.y)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R2i.w))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].x); +// 2 +R127i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y)); +R124i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV1i.w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R2i.w))); +R124i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R124i.w; +// 3 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),uf_blockVS7[9].y) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.w)); +PV1i.z = R124i.z; +// 4 +backupReg0i = R0i.w; +R9i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(PV1i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = R9i.x; +PV0i.y = R9i.x; +PV0i.z = R9i.x; +PV0i.w = R9i.x; +PS0i = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +// 5 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +// 6 +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.z))); +// 7 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R124i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R7i.z = tempi.x; +// 8 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R124i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.y = tempi.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R124i.z),intBitsToFloat(R0i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.w = tempi.x; +// 10 +PV0i.x = PV1i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +PV0i.y = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +R9i.w = floatBitsToInt((intBitsToFloat(R10i.y) * 0.0 + intBitsToFloat(PV1i.x))); +// 11 +R11i.y = floatBitsToInt((intBitsToFloat(R10i.y) * 0.5 + intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((intBitsToFloat(R10i.y) * 0.0 + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +// 12 +R10i.x = floatBitsToInt((intBitsToFloat(R7i.z) * -(0.5) + intBitsToFloat(PV1i.z))); +R8i.z = floatBitsToInt((intBitsToFloat(R9i.x) * 0.5 + intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R2i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = tempi.x; +R124i.y = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS0i)); +PS1i = R124i.y; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R2i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +PS0i = R124i.z; +// 15 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),uf_blockVS7[9].z) + intBitsToFloat(R124i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R127i.y) * 0.0 + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +PV1i.w = PV0i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +// 16 +R123i.z = floatBitsToInt((intBitsToFloat(R127i.y) * 0.5 + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 17 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(PS0i)); +// 18 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R124i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV1i.w))); +// 19 +PV1i.y = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV0i.z)); +// 20 +R9i.y = floatBitsToInt(uf_blockVS6[18].y); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 21 +R7i.w = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[60].w)); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(-(uf_blockVS7[60].z) + uf_blockVS7[61].z); +PV0i.z = floatBitsToInt(-(uf_blockVS7[60].w) + uf_blockVS7[61].w); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[61].w)); +// 1 +R126i.x = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R126i.x; +R124i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R124i.y; +PV1i.z = floatBitsToInt(-(uf_blockVS7[60].y) + uf_blockVS7[61].y); +PV1i.w = floatBitsToInt(-(uf_blockVS7[60].x) + uf_blockVS7[61].x); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R124i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R124i.w; +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.w))); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)) + uf_blockVS7[60].z)); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.y)) + uf_blockVS7[60].y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.z)) + uf_blockVS7[60].x)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].x, intBitsToFloat(PS0i))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].z, intBitsToFloat(R124i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].y, intBitsToFloat(R124i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(PS1i))); +PV0i.w = R123i.w; +// 5 +R126i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].x,intBitsToFloat(R124i.y)) + intBitsToFloat(PV0i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R1i.x) + -(uf_blockVS7[68].w)); +PV1i.w = R126i.w; +// 6 +backupReg0i = R124i.y; +backupReg0i = R124i.y; +R124i.y = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R124i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.y))); +R124i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].y,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.z))); +// 7 +R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R124i.z = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + -(uf_blockVS7[69].w)); +PV0i.y = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +// 9 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(backupReg0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), uf_blockVS8[0].x)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), uf_blockVS8[0].y)); +R124i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), uf_blockVS8[0].z)); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS7[59].x)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS1i)); +R12i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockVS7[59].x)); +PS0i = R12i.w; +// 11 +R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockVS7[59].x)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.z))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[68].x)); +PV1i.z = R123i.z; +// 12 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(-(uf_blockVS7[76].x) + uf_blockVS7[77].x); +R124i.y = floatBitsToInt(-(uf_blockVS7[76].y) + uf_blockVS7[77].y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i))); +PV0i.z = R123i.z; +// 13 +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[69].x,intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +// 14 +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[0].w)); +PV0i.z = ((intBitsToFloat(R5i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 15 +R126i.x = floatBitsToInt(-(uf_blockVS7[76].z) + uf_blockVS7[77].z); +R4i.y = ((PV0i.z == 0)?(R7i.x):(R8i.w)); +PV1i.z = ((intBitsToFloat(R5i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = floatBitsToInt(-(uf_blockVS7[76].w) + uf_blockVS7[77].w); +// 16 +R1i.x = ((PV1i.z == 0)?(R7i.y):(R12i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 17 +R2i.x = floatBitsToInt(intBitsToFloat(R124i.y) * intBitsToFloat(PS0i)); +R2i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R1i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS0i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].z)?1.0:0.0); +PV0i.y = floatBitsToInt((uf_blockVS7[8].z > 0.0)?1.0:0.0); +R4i.z = floatBitsToInt(uf_blockVS7[84].x); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].z); +// 1 +PV1i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +PV1i.y = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +R124i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),uf_blockVS7[9].w) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PV0i.y = (PV1i.z == 0x00100000)?int(0xFFFFFFFF):int(0x0); +R125i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = (PV1i.x == 0x00080000)?int(0xFFFFFFFF):int(0x0); +R124i.y = (PS1i == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PS0i = R124i.y; +// 3 +R3i.x = ((PV0i.w == 0)?(R7i.x):(R4i.y)); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PV1i.z = ((intBitsToFloat(R5i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R3i.w = ((PV0i.y == 0)?(R7i.y):(R1i.x)); +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +// 4 +R127i.x = (PS1i == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.y))); +PV0i.z = ((intBitsToFloat(R5i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R123i.w = ((PV1i.z == 0)?(R7i.x):(R8i.w)); +PV0i.w = R123i.w; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = ((PV0i.z == 0)?(R7i.y):(R12i.z)); +PV1i.y = R123i.y; +R0i.z = ((R124i.y == 0)?(R7i.x):(PV0i.w)); +// 6 +R8i.y = ((R127i.x == 0)?(R7i.y):(PV1i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[77].w)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[76].w)); +// 7 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.w)) + uf_blockVS7[76].z)); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R2i.x)) + uf_blockVS7[76].y)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R2i.y)) + uf_blockVS7[76].x)); +R124i.w = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R124i.w; +R125i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.y; +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = ((intBitsToFloat(R5i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +PS0i = R126i.w; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].x, intBitsToFloat(PV0i.z))); +R126i.y = ((PV0i.w == 0)?(R7i.x):(R8i.w)); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].y, intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].z, intBitsToFloat(PV0i.z))); +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +PV0i.w = (R127i.y == 0x00800000)?int(0xFFFFFFFF):int(0x0); +R125i.z = (R126i.w == 0x01000000)?int(0xFFFFFFFF):int(0x0); +PS0i = R125i.z; +// 11 +R8i.x = ((PV0i.w == 0)?(R7i.x):(R126i.y)); +R2i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].z,intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.x))); +R1i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].y,intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].x,intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.z))); +PS1i = ((intBitsToFloat(R5i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 12 +R123i.x = ((PS1i == 0)?(R7i.y):(R12i.z)); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010; +PV0i.z = floatBitsToInt(uf_blockVS7[5].y) & int(1); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020; +R2i.x = int(uf_blockVS7[17].x); +PS0i = R2i.x; +// 13 +backupReg0i = R125i.z; +R3i.y = (int(1) != PV0i.z)?int(0xFFFFFFFF):int(0x0); +R125i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040; +R8i.w = ((backupReg0i == 0)?(R7i.y):(PV0i.x)); +R4i.w = int(uf_blockVS7[17].y); +PS1i = R4i.w; +// 14 +PS0i = floatBitsToInt(float(R126i.y)); +// 15 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R126i.w)); +// 16 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R7i.y = floatBitsToInt(float(R125i.z)); +PS0i = R7i.y; +// 17 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 18 +PV0i.x = 0 - PS1i; +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 19 +PV1i.x = 0 - PS0i; +R0i.w = max(R126i.y, PV0i.x); +// 20 +R2i.w = max(R125i.y, PV1i.x); +} +if( activeMaskStackC[3] == true ) { +// 0 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), uf_blockVS8[1].w)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), uf_blockVS8[1].z)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), uf_blockVS8[1].y)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[1].x)); +// 1 +PV1i.x = floatBitsToInt((intBitsToFloat(R7i.y) > 0.0)?1.0:0.0); +R12i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.y))); +R9i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.z))); +R10i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt((0.0 > intBitsToFloat(R7i.y))?1.0:0.0); +// 2 +R127i.x = int(-1) + R2i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PS1i))); +R124i.z = floatBitsToInt(float(R2i.x)); +PS0i = R124i.z; +// 3 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.w), intBitsToFloat(PS0i))); +R125i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R125i.y; +// 4 +PV0i.x = 0 - PS1i; +PV0i.y = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(PV1i.y)); +R125i.z = floatBitsToInt(float(R4i.w)); +PS0i = R125i.z; +// 5 +R4i.w = max(R125i.y, PV0i.x); +PS1i = int(intBitsToFloat(PV0i.y)); +// 6 +R126i.z = R0i.w * PS1i; +PS0i = R126i.z; +// 7 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS1i)); +R2i.y = floatBitsToInt(float(R2i.x)); +PS0i = R2i.y; +// 9 +R7i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R0i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R0i.w; +// 10 +PS0i = floatBitsToInt(float(PS1i)); +// 11 +PV1i.y = floatBitsToInt(-(intBitsToFloat(R124i.z)) + intBitsToFloat(PS0i)); +R124i.x = floatBitsToInt(float(R0i.w)); +PS1i = R124i.x; +// 12 +R123i.x = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R123i.x; +R126i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R1i.w = floatBitsToInt(1.0 / abs(intBitsToFloat(R2i.y))); +PS0i = R1i.w; +// 13 +PV1i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R124i.x)), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(PV0i.x)); +// 14 +backupReg0i = R127i.x; +R127i.x = int(1) - PS1i; +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +R124i.w = PS1i * backupReg0i; +PS0i = R124i.w; +// 15 +R124i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R7i.x)) + intBitsToFloat(R126i.w))); +PV1i.z = R124i.z; +R2i.x = int(intBitsToFloat(R126i.x)); +PS1i = R2i.x; +// 16 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R2i.y)))?1.0:0.0); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R2i.y))) + intBitsToFloat(PV1i.z)); +// 17 +R126i.w = ((intBitsToFloat(PV0i.x) == 0.0)?(R124i.z):(PV0i.y)); +PV1i.w = R126i.w; +// 18 +PV0i.z = floatBitsToInt(abs(intBitsToFloat(R2i.y)) + intBitsToFloat(PV1i.w)); +// 19 +R123i.y = ((-(intBitsToFloat(R126i.w)) > 0.0)?(PV0i.z):(R126i.w)); +PV1i.y = R123i.y; +// 20 +R123i.x = ((-(intBitsToFloat(R124i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.x = R123i.x; +// 21 +R123i.w = ((intBitsToFloat(R2i.y) == 0.0)?(R124i.x):(PV0i.x)); +PV1i.w = R123i.w; +// 22 +PS0i = int(intBitsToFloat(PV1i.w)); +// 23 +PS1i = R127i.x * PS0i; +// 24 +PV0i.z = PS1i + R124i.w; +// 25 +PS1i = R2i.w * PV0i.z; +// 26 +R7i.y = PS1i + R126i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000; +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080; +// 1 +PS1i = floatBitsToInt(float(PV0i.z)); +// 2 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(R125i.y)); +// 3 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 5 +PV1i.x = 0 - PS0i; +R127i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 6 +PV0i.x = 0 - PS1i; +PV0i.w = max(R125i.y, PV1i.x); +// 7 +PV1i.z = max(R127i.x, PV0i.x); +R125i.y = PV0i.w * R2i.x; +PS1i = R125i.y; +// 8 +PS0i = PV1i.z * R2i.x; +// 9 +PV1i.z = R0i.w + PS0i; +// 10 +PS0i = R4i.w * PV1i.z; +// 11 +PV1i.x = PS0i + R7i.y; +// 12 +PV0i.w = R125i.y + PV1i.x; +// 13 +R124i.z = floatBitsToInt(float(PV0i.w)); +PS1i = R124i.z; +// 14 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), abs(intBitsToFloat(PS1i)))); +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +// 15 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +// 16 +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R7i.x)) + intBitsToFloat(R124i.w))); +PV0i.z = R126i.z; +// 17 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R2i.y)))?1.0:0.0); +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R2i.y))) + intBitsToFloat(PV0i.z)); +// 18 +R124i.w = ((intBitsToFloat(PV1i.x) == 0.0)?(R126i.z):(PV1i.y)); +PV0i.w = R124i.w; +// 19 +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.w)); +// 20 +R123i.y = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV1i.z):(R124i.w)); +PV0i.y = R123i.y; +// 21 +R123i.x = ((-(intBitsToFloat(R124i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.x = R123i.x; +// 22 +R123i.w = ((intBitsToFloat(R2i.y) == 0.0)?(R124i.z):(PV1i.x)); +PV0i.w = R123i.w; +// 23 +R124i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R124i.z; +// 24 +R125i.y = floatBitsToInt(float(PS1i)); +PS0i = R125i.y; +// 25 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R124i.x = floatBitsToInt(float(R124i.z)); +PS1i = R124i.x; +// 26 +R126i.y = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(abs(intBitsToFloat(PS1i)) * 0.25); +// 27 +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * 0.5 + intBitsToFloat(R125i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.w))); +// 28 +R127i.x = floatBitsToInt((-(intBitsToFloat(PV1i.z)) * 4.0 + intBitsToFloat(R126i.y))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 0.25); +R4i.z = ((R3i.y == 0)?(R5i.x):(R5i.y)); +// 29 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt((intBitsToFloat(PV0i.x) >= 4.0)?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xc0800000)); +R0i.y = int(uf_blockVS7[26].x); +PS1i = R0i.y; +// 30 +R126i.y = ((intBitsToFloat(PV1i.z) == 0.0)?(R127i.x):(PV1i.w)); +PV0i.y = R126i.y; +R124i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +PS0i = int(intBitsToFloat(PV1i.x)); +// 31 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + 4.0); +R2i.y = PS0i + 0x00000012; +R0i.x = int(uf_blockVS7[26].y); +PS1i = R0i.x; +// 32 +R123i.w = ((-(intBitsToFloat(R126i.y)) > 0.0)?(PV1i.x):(R126i.y)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(R124i.w)); +// 33 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R123i.z = ((-(intBitsToFloat(R124i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.z = R123i.z; +// 34 +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +PS0i = int(intBitsToFloat(PV1i.z)); +// 35 +PV1i.x = int(-1) + PS0i; +R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +R124i.z = 0xfffffffd + PS0i; +R124i.w = 0xfffffffe + PS0i; +PS1i = floatBitsToInt(float(PS0i)); +// 36 +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.x)); +// 37 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R124i.w)); +// 38 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R124i.x; +// 39 +PV1i.x = 0 - PS0i; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +R124i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R124i.w; +// 40 +PV0i.x = 0 - PS1i; +PV0i.z = max(R124i.x, PV1i.x); +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 41 +R7i.x = int(1) - PV0i.z; +PV1i.y = max(R124i.w, PV0i.x); +PV1i.z = 0 - PS0i; +PS1i = floatBitsToInt(float(R124i.z)); +// 42 +PV0i.x = max(R126i.z, PV1i.z); +R1i.y = int(1) - PV1i.y; +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.z = int(intBitsToFloat(R126i.w)); +PS0i = R126i.z; +// 43 +PV1i.y = 0 - PS0i; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w))); +R1i.w = int(1) - PV0i.x; +PS1i = floatBitsToInt(float(R126i.y)); +// 44 +R1i.x = max(R126i.z, PV1i.y); +R7i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R4i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R4i.y; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockVS7[R2i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = 0 - R4i.y; +R125i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +R124i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +R124i.w = floatBitsToInt(intBitsToFloat(R7i.y) + -(intBitsToFloat(R1i.z))); +R124i.x = R1i.w * R2i.z; +PS0i = R124i.x; +// 1 +PV1i.w = max(R4i.y, PV0i.x); +R126i.w = R1i.y * R2i.y; +PS1i = R126i.w; +// 2 +PV0i.z = int(1) - PV1i.w; +R127i.w = int(-1) + R0i.y; +PS0i = R7i.x * R2i.x; +// 3 +PV1i.y = R126i.w + PS0i; +R126i.y = PV0i.z * R2i.w; +PS1i = R126i.y; +// 4 +PV0i.x = R124i.x + PV1i.y; +R126i.z = int(intBitsToFloat(R124i.w)); +PS0i = R126i.z; +// 5 +PV1i.y = 0 - PS0i; +R2i.w = R126i.y + PV0i.x; +PS1i = floatBitsToInt(float(R125i.y)); +// 6 +R7i.x = max(R126i.z, PV1i.y); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PS0i = floatBitsToInt(float(R124i.z)); +// 7 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt(float(backupReg0i)); +PS1i = R124i.w; +// 8 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.w), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 9 +PV1i.x = 0 - PS0i; +PV1i.y = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(PV0i.z)); +R124i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R124i.z; +// 10 +R2i.x = max(R126i.z, PV1i.x); +PV0i.y = 0 - PS1i; +PS0i = int(intBitsToFloat(PV1i.y)); +// 11 +R126i.x = max(R124i.z, PV0i.y); +R125i.w = R1i.x * PS0i; +PS1i = R125i.w; +// 12 +backupReg0i = R0i.x; +PS0i = floatBitsToInt(float(backupReg0i)); +// 13 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 14 +backupReg0i = R0i.y; +PV0i.y = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt(float(backupReg0i)); +PS0i = R126i.z; +// 15 +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R125i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R125i.x; +// 16 +PS0i = floatBitsToInt(float(PS1i)); +// 17 +PV1i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt(float(R125i.x)); +PS1i = R125i.y; +// 18 +R124i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R123i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R123i.y; +R4i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.z))); +PS0i = R4i.x; +// 19 +PV1i.w = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.y)), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(PV0i.y)); +// 20 +R0i.x = int(1) - PS1i; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +R1i.x = PS1i * R127i.w; +PS0i = R1i.x; +// 21 +backupReg0i = R126i.w; +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R124i.y)) + intBitsToFloat(R124i.x))); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(float(backupReg0i)); +// 22 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.w) >= abs(intBitsToFloat(R126i.z)))?1.0:0.0); +PV0i.z = floatBitsToInt(-(abs(intBitsToFloat(R126i.z))) + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R127i.y = int(intBitsToFloat(R127i.x)); +PS0i = R127i.y; +// 23 +backupReg0i = R126i.x; +R126i.x = ((intBitsToFloat(PV0i.y) == 0.0)?(R126i.w):(PV0i.z)); +PV1i.x = R126i.x; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R124i.z = backupReg0i * PS0i; +PS1i = R124i.z; +// 24 +PV0i.w = floatBitsToInt(abs(intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.x)); +R126i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R126i.y; +// 25 +PV1i.x = 0 - PS0i; +R123i.z = ((-(intBitsToFloat(R126i.x)) > 0.0)?(PV0i.w):(R126i.x)); +PV1i.z = R123i.z; +// 26 +R123i.y = ((-(intBitsToFloat(R125i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +PV0i.w = max(R126i.y, PV1i.x); +// 27 +R123i.x = ((intBitsToFloat(R126i.z) == 0.0)?(R125i.y):(PV0i.y)); +PV1i.x = R123i.x; +PS1i = PV0i.w * R127i.y; +// 28 +R126i.w = R125i.x + PS1i; +PS0i = int(intBitsToFloat(PV1i.x)); +// 29 +backupReg0i = R0i.x; +PS1i = backupReg0i * PS0i; +// 30 +PV0i.w = PS1i + R1i.x; +R127i.y = R2i.x * R126i.w; +PS0i = R127i.y; +// 31 +PS1i = R7i.x * PV0i.w; +// 32 +PV0i.z = PS1i + R125i.w; +// 33 +PV1i.y = R127i.y + PV0i.z; +// 34 +PV0i.x = R124i.z + PV1i.y; +// 35 +R126i.w = floatBitsToInt(float(PV0i.x)); +PS1i = R126i.w; +// 36 +R125i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), abs(intBitsToFloat(PS1i)))); +// 37 +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +// 38 +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R124i.y)) + intBitsToFloat(R125i.x))); +PV0i.w = R125i.w; +// 39 +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.w) >= abs(intBitsToFloat(R126i.z)))?1.0:0.0); +PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R126i.z))) + intBitsToFloat(PV0i.w)); +// 40 +R125i.x = ((intBitsToFloat(PV1i.y) == 0.0)?(R125i.w):(PV1i.z)); +PV0i.x = R125i.x; +// 41 +PV1i.w = floatBitsToInt(abs(intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.x)); +// 42 +R123i.z = ((-(intBitsToFloat(R125i.x)) > 0.0)?(PV1i.w):(R125i.x)); +PV0i.z = R123i.z; +// 43 +R123i.y = ((-(intBitsToFloat(R126i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +PV1i.y = R123i.y; +// 44 +R123i.x = ((intBitsToFloat(R126i.z) == 0.0)?(R126i.w):(PV1i.y)); +PV0i.x = R123i.x; +// 45 +R126i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R126i.w; +// 46 +R4i.z = floatBitsToInt(float(PS1i)); +PS0i = R4i.z; +// 47 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R0i.y = floatBitsToInt(float(R126i.w)); +PS1i = R0i.y; +// 48 +R4i.x = floatBitsToInt(abs(intBitsToFloat(PS1i)) * 0.25); +R2i.z = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R6i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +// 49 +R123i.z = floatBitsToInt((intBitsToFloat(R6i.w) * 0.5 + intBitsToFloat(R4i.z))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(R4i.x))); +// 50 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * 0.25); +R124i.y = floatBitsToInt((-(intBitsToFloat(PV1i.w)) * 4.0 + intBitsToFloat(R2i.z))); +PV0i.y = R124i.y; +// 51 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xc0800000)); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) >= 4.0)?1.0:0.0); +// 52 +R126i.z = ((intBitsToFloat(PV1i.w) == 0.0)?(R124i.y):(PV1i.x)); +PV0i.z = R126i.z; +PS0i = int(intBitsToFloat(PV1i.y)); +// 53 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 4.0); +R2i.z = PS0i + 0x0000001b; +PS1i = int(uf_blockVS7[48].z); +// 54 +R123i.x = ((-(intBitsToFloat(R126i.z)) > 0.0)?(PV1i.y):(R126i.z)); +PV0i.x = R123i.x; +R1i.z = floatBitsToInt(float(PS1i)); +PS0i = R1i.z; +// 55 +R123i.w = ((-(intBitsToFloat(R0i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.w = R123i.w; +R0i.y = floatBitsToInt(float(R2i.w)); +PS1i = R0i.y; +// 56 +R4i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R4i.z; +} +if( activeMaskStackC[3] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockVS7[R2i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = 0xfffffffe + R4i.z; +PV0i.y = int(-1) + R4i.z; +R124i.z = floatBitsToInt(abs(intBitsToFloat(R1i.z))); +R125i.w = 0xfffffffd + R4i.z; +PS0i = floatBitsToInt(float(R4i.z)); +// 1 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.y)); +// 2 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(R125i.x)); +// 3 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R126i.w = floatBitsToInt((intBitsToFloat(backupReg0i) > 0.0)?1.0:0.0); +R124i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R124i.y; +// 4 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +PV0i.y = 0 - PS1i; +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(backupReg0i))?1.0:0.0); +R125i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R125i.x; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.w) + -(intBitsToFloat(PV0i.z))); +PV1i.y = 0 - PS0i; +PV1i.w = max(R124i.y, PV0i.y); +R126i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R126i.w; +// 6 +R127i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * 0.5 + intBitsToFloat(R0i.y))); +PV0i.y = int(1) - PV1i.w; +PV0i.z = max(R125i.x, PV1i.y); +PV0i.w = 0 - PS1i; +PS0i = floatBitsToInt(float(R125i.w)); +// 7 +PV1i.x = int(1) - PV0i.z; +PV1i.y = max(R126i.w, PV0i.w); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R126i.w = PV0i.y * R6i.x; +PS1i = R126i.w; +// 8 +PV0i.x = int(1) - PV1i.y; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockVS7[45].x)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +R125i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +PS0i = PV1i.x * R6i.y; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockVS7[45].y)); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +PV1i.y = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +PV1i.z = PS0i + R126i.w; +R126i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z)); +PS1i = PV0i.x * R6i.z; +// 10 +R125i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y)); +R124i.y = PS1i + PV1i.z; +PV0i.z = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +PV0i.w = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +R126i.z = int(intBitsToFloat(R125i.w)); +PS0i = R126i.z; +// 11 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockVS7[46].w) + intBitsToFloat(PV0i.z))); +PV1i.y = 0 - PS0i; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),uf_blockVS7[46].z) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R13i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(R126i.w)))); +R124i.x = floatBitsToInt(float(R2i.w)); +PS1i = R124i.x; +// 12 +PV0i.x = max(R126i.z, PV1i.y); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[44].y) + intBitsToFloat(R125i.x))); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[45].z) + intBitsToFloat(PV1i.z))); +R126i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R1i.z))); +// 13 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[45].w) + intBitsToFloat(backupReg0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R124i.x)), intBitsToFloat(PS0i))); +PV1i.w = int(1) - PV0i.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R1i.z)); +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +PS0i = PV1i.w * R6i.w; +// 15 +backupReg0i = R124i.z; +R125i.x = PS0i + R124i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R126i.w))); +PV1i.z = R124i.z; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].z); +// 16 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R1i.z)))?1.0:0.0); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R1i.z))) + intBitsToFloat(PV1i.z)); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS1i))); +PV0i.z = R125i.z; +R123i.w = ((R3i.y == 0)?(0):(int(1))); +PV0i.w = R123i.w; +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 17 +backupReg0i = R124i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PV0i.z)) + -(0.5))); +PV1i.y = (PV0i.w == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R124i.z = (PV0i.w == int(1))?int(0xFFFFFFFF):int(0x0); +R126i.w = ((intBitsToFloat(PV0i.x) == 0.0)?(backupReg0i):(PV0i.y)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 18 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i))); +R123i.y = ((PV1i.y == 0)?(R5i.x):(R5i.z)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(abs(intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w)); +R123i.w = ((PV1i.y == 0)?(R5i.y):(R5i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(R126i.z)); +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV0i.x)) + -(0.5))); +PV1i.x = R123i.x; +R123i.y = ((-(intBitsToFloat(R126i.w)) > 0.0)?(PV0i.z):(R126i.w)); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R126i.w = ((R124i.z == 0)?(PV0i.y):(R5i.y)); +R127i.y = ((R124i.z == 0)?(PV0i.w):(R5i.z)); +PS1i = R127i.y; +// 20 +backupReg0i = R124i.z; +backupReg0i = R124i.z; +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.x)) + -(intBitsToFloat(PV1i.z)))); +R123i.y = ((-(intBitsToFloat(R124i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.y = R123i.y; +R124i.z = ((backupReg0i == 0)?(R5i.x):(R5i.y)); +R6i.w = ((backupReg0i == 0)?(R5i.y):(R5i.z)); +PS0i = int(uf_blockVS7[53].z); +// 21 +R123i.w = ((intBitsToFloat(R1i.z) == 0.0)?(R124i.x):(PV0i.y)); +PV1i.w = R123i.w; +R6i.y = floatBitsToInt(float(PS0i)); +PS1i = R6i.y; +// 22 +R1i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.w)); +// 23 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(R126i.w))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(R127i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +PV1i.z = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +PV1i.w = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +PS1i = floatBitsToInt(float(PS0i)); +// 24 +PV0i.x = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.w))); +PV0i.y = R123i.y; +R6i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.w)); +R2i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.z)); +R3i.x = floatBitsToInt(float(R125i.x)); +PS0i = R3i.x; +// 25 +R6i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.x))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y))); +R1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R3i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R4i.w = floatBitsToInt(float(R125i.x)); +PS1i = R4i.w; +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(abs(intBitsToFloat(R4i.w))); +PV0i.y = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + -(intBitsToFloat(R3i.w))); +R125i.w = ((R3i.y == 0)?(0):(0x00000002)); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R6i.y))); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R4i.w)), intBitsToFloat(PS0i))); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * 0.5 + intBitsToFloat(R3i.x))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R13i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R6i.z)))); +R126i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(R6i.w)) + intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R6i.y)); +// 2 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R125i.y = (R125i.w == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[49].y) + intBitsToFloat(R2i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 3 +backupReg0i = R127i.x; +R127i.x = (R125i.w == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg0i))); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.w))); +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 4 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(R6i.y))) + intBitsToFloat(PV1i.y)); +R124i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS1i))); +PV0i.y = R124i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[50].z) + intBitsToFloat(R6i.x))); +PV0i.w = floatBitsToInt((intBitsToFloat(PV1i.y) >= abs(intBitsToFloat(R6i.y)))?1.0:0.0); +PS0i = int(intBitsToFloat(PV1i.z)); +// 5 +backupReg0i = R127i.y; +backupReg1i = R126i.w; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R125i.w)) + -(0.5))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(PV0i.y)) + -(0.5))); +R124i.z = ((intBitsToFloat(PV0i.w) == 0.0)?(backupReg0i):(PV0i.x)); +PV1i.z = R124i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[50].w) + intBitsToFloat(backupReg1i))); +PS1i = floatBitsToInt(float(PS0i)); +// 6 +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.y)),intBitsToFloat(PS1i)) + intBitsToFloat(R127i.z))); +PV0i.y = R123i.y; +R123i.z = ((R127i.x == 0)?(R5i.y):(R5i.x)); +PV0i.z = R123i.z; +R123i.w = ((R127i.x == 0)?(R5i.x):(R5i.z)); +PV0i.w = R123i.w; +R124i.y = int(uf_blockVS7[58].z); +PS0i = R124i.y; +// 7 +backupReg0i = R126i.w; +backupReg1i = R127i.y; +R123i.x = ((-(intBitsToFloat(R124i.z)) > 0.0)?(PV0i.x):(R124i.z)); +PV1i.x = R123i.x; +R127i.y = ((R125i.y == 0)?(PV0i.w):(R5i.y)); +R124i.z = ((R125i.y == 0)?(PV0i.z):(R5i.z)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)) + -(intBitsToFloat(PV0i.y)))); +R127i.w = ((R125i.y == 0)?(R5i.x):(R5i.y)); +PS1i = R127i.w; +// 8 +R127i.z = ((R125i.y == 0)?(R5i.y):(R5i.z)); +R123i.w = ((-(intBitsToFloat(R4i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.x)))):(PV1i.x)); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt(float(R124i.y)); +PS0i = R127i.x; +// 9 +PV1i.x = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS0i)))?1.0:0.0); +R123i.z = ((intBitsToFloat(R6i.y) == 0.0)?(R4i.w):(PV0i.w)); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(-(abs(intBitsToFloat(PS0i))) + 0.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 10 +R125i.y = ((intBitsToFloat(PV1i.x) == 0.0)?(0):(PV1i.w)); +PV0i.y = R125i.y; +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * 0.0); +PS0i = int(intBitsToFloat(PV1i.z)); +// 11 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R127i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x); +PS1i = floatBitsToInt(float(PS0i)); +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.z))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R124i.z))); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w)); +R123i.w = ((-(intBitsToFloat(R125i.y)) > 0.0)?(PV1i.x):(R125i.y)); +PV0i.w = R123i.w; +R124i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R124i.y; +// 13 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R13i.w)),uf_blockVS7[54].x) + -(intBitsToFloat(PV0i.z)))); +R123i.z = ((intBitsToFloat(R127i.x) == 0.0)?(0):(PV0i.w)); +PV1i.z = R123i.z; +R1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + 0.5); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 14 +R6i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +R5i.y = floatBitsToInt(intBitsToFloat(R4i.x) + 0.5); +R6i.z = floatBitsToInt(intBitsToFloat(R126i.w) + 0.5); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS1i))); +PV0i.w = R126i.w; +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 15 +R127i.x = floatBitsToInt(intBitsToFloat(R7i.w) + -(uf_blockVS7[93].x)); +R0i.y = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(PV0i.w)) + -(0.5))); +R4i.w = floatBitsToInt(intBitsToFloat(R3i.z) + 0.0); +PV1i.w = R4i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 16 +backupReg0i = R125i.y; +R124i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + -(uf_blockVS7[104].w)); +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS1i))); +PV0i.y = R125i.y; +PS0i = floatBitsToInt(float(backupReg0i)); +// 17 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y))); +PV1i.y = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV0i.y)) + -(0.5))); +R126i.w = floatBitsToInt(float(R124i.y)); +PS1i = R126i.w; +// 18 +PV0i.x = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w); +PV0i.z = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R0i.y)); +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[54].y) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R5i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R5i.z = clampFI32(R5i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 20 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[55].z) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[105].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),uf_blockVS7[55].w) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +// 21 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(R125i.x))); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R125i.z)) + -(intBitsToFloat(PV0i.y)))); +PV1i.w = R123i.w; +// 22 +R1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +R1i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.5); +PV0i.z = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R7i.w = ((intBitsToFloat(R124i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R0i.y = ((intBitsToFloat(R127i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R0i.y; +// 23 +R126i.y = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 24 +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +R3i.z = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[106].w)); +PV0i.z = R3i.z; +// 25 +R4i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R0i.z = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[107].w)); +PV1i.z = R0i.z; +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV0i.x)) + uf_blockVS7[104].x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 26 +R8i.x = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +R8i.w = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +// 27 +R5i.x = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[108].w)); +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[105].x)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS8[3].x, intBitsToFloat(R5i.z))); +R126i.y = ((intBitsToFloat(R5i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[109].w)); +PV0i.z = R126i.z; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R8i.x)) + 1.0); +R127i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R126i.w = floatBitsToInt(-(intBitsToFloat(R4i.x)) + 1.0); +PS1i = R126i.w; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R125i.y = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PV1i.w))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R126i.w))); +PS1i = floatBitsToInt(-(intBitsToFloat(R0i.y)) + 1.0); +// 4 +R125i.x = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[110].w)); +PV0i.x = R125i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.w), intBitsToFloat(PS1i))); +R127i.z = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PV1i.x)) + uf_blockVS7[106].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 5 +R124i.x = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R0i.y = ((0.0 >= intBitsToFloat(R5i.z))?int(0xFFFFFFFF):int(0x0)); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS0i)); +R126i.w = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +R7i.w = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x40a00000)); +PS1i = R7i.w; +// 6 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[107].x)); +R0i.z = 0; +PV0i.z = R0i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.w) + -(uf_blockVS7[111].w)); +R8i.y = 0; +PS0i = R8i.y; +// 7 +PV1i.x = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +R9i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R9i.y; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.x))); +R4i.w = ((R0i.y == 0)?(R9i.x):(PV0i.z)); +R2i.w = ((R0i.y == 0)?(R7i.z):(PS0i)); +PS1i = R2i.w; +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R127i.y = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +R7i.z = ((R0i.y == 0)?(R10i.y):(R7i.w)); +R6i.w = ((R0i.y == 0)?(R11i.w):(R11i.w)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +R8i.w = ((R0i.y == 0)?(R16i.z):(R16i.z)); +// 10 +R3i.y = ((R0i.y == 0)?(0):(0x3f800000)); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R127i.z))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.x)) + uf_blockVS7[108].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 11 +R123i.x = ((R0i.y == 0)?(0):(R1i.x)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +R5i.w = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +R127i.z = ((R0i.y == 0)?(0):(R1i.z)); +PS1i = R127i.z; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[109].x)); +R123i.z = ((R0i.y == 0)?(0):(R1i.w)); +PV0i.z = R123i.z; +R127i.w = ((R0i.y == 0)?(0):(R6i.x)); +R2i.x = ((R3i.y == 0)?(R1i.x):(PV1i.x)); +PS0i = R2i.x; +// 13 +R9i.x = ((R3i.y == 0)?(R1i.w):(PV0i.z)); +R126i.y = ((R0i.y == 0)?(R16i.z):(R16i.z)); +PV1i.z = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R122i.x = ((R0i.y == 0)?(0):(R8i.z)); +PS1i = R122i.x; +// 14 +backupReg0i = R125i.y; +R17i.x = ((R3i.y == 0)?(R8i.z):(PS1i)); +R125i.y = ((R0i.y == 0)?(0):(R6i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 15 +backupReg0i = R0i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R124i.y)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(PS0i)); +R123i.z = ((backupReg0i == 0)?(0):(R10i.x)); +PV1i.z = R123i.z; +// 16 +backupReg0i = R124i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[110].x)); +PV0i.x = R123i.x; +R17i.y = ((R3i.y == 0)?(R10i.x):(PV1i.z)); +R124i.z = ((R0i.y == 0)?(0):(R9i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 17 +R123i.x = ((R0i.y == 0)?(0):(R11i.y)); +PV1i.x = R123i.x; +R123i.y = ((R0i.y == 0)?(0):(R10i.w)); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R126i.w = ((R0i.y == 0)?(0):(R11i.x)); +R125i.x = ((R0i.y == 0)?(0):(R12i.x)); +PS1i = R125i.x; +// 18 +R10i.x = ((R3i.y == 0)?(R10i.w):(PV1i.y)); +R4i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R9i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R4i.y; +R17i.z = ((R3i.y == 0)?(R11i.y):(PV1i.x)); +R17i.w = ((R3i.y == 0)?(R9i.w):(R124i.z)); +R1i.x = 0; +PS0i = R1i.x; +// 19 +R123i.x = ((R0i.y == 0)?(R0i.x):(PS0i)); +PV1i.x = R123i.x; +R123i.y = ((R0i.y == 0)?(0):(R1i.y)); +PV1i.y = R123i.y; +R123i.z = ((R0i.y == 0)?(R16i.x):(PS0i)); +PV1i.z = R123i.z; +R125i.w = ((R0i.y == 0)?(PV0i.y):(PV0i.y)); +R122i.x = ((R0i.y == 0)?(0):(R9i.z)); +PS1i = R122i.x; +// 20 +R16i.x = ((R3i.y == 0)?(PV1i.x):(PV1i.z)); +R2i.y = ((R3i.y == 0)?(R1i.y):(PV1i.y)); +R123i.z = ((R0i.y == 0)?(R15i.x):(R0i.z)); +PV0i.z = R123i.z; +R124i.w = ((R0i.y == 0)?(R15i.z):(R7i.w)); +R10i.y = ((R3i.y == 0)?(R9i.z):(PS1i)); +PS0i = R10i.y; +// 21 +R15i.x = ((R3i.y == 0)?(R4i.w):(PV0i.z)); +R123i.y = ((R0i.y == 0)?(0):(R12i.y)); +PV1i.y = R123i.y; +R2i.z = ((R3i.y == 0)?(R1i.z):(R127i.z)); +R4i.w = ((R0i.y == 0)?(R15i.w):(R11i.w)); +// 22 +R10i.z = ((R3i.y == 0)?(R12i.y):(PV1i.y)); +R10i.w = ((R3i.y == 0)?(R11i.x):(R126i.w)); +// 23 +R123i.x = ((R0i.y == 0)?(0):(R5i.y)); +PV1i.x = R123i.x; +R127i.y = ((R0i.y == 0)?(0):(R12i.w)); +// 24 +R9i.y = ((R3i.y == 0)?(R5i.y):(PV1i.x)); +R9i.z = ((R3i.y == 0)?(R6i.x):(R127i.w)); +R9i.w = ((R3i.y == 0)?(R6i.z):(R125i.y)); +// 25 +R123i.x = ((R0i.y == 0)?(R16i.y):(R4i.y)); +PV1i.x = R123i.x; +// 26 +R16i.y = ((R3i.y == 0)?(R125i.w):(PV1i.x)); +R16i.z = ((R3i.y == 0)?(R8i.w):(R126i.y)); +// 27 +R123i.z = ((R0i.y == 0)?(0):(R13i.y)); +PV1i.z = R123i.z; +R125i.w = ((R0i.y == 0)?(0):(R14i.y)); +// 28 +R11i.x = ((R3i.y == 0)?(R13i.y):(PV1i.z)); +R11i.y = ((R3i.y == 0)?(R12i.w):(R127i.y)); +R11i.z = ((R3i.y == 0)?(R12i.x):(R125i.x)); +// 29 +R11i.w = ((R3i.y == 0)?(R14i.y):(R125i.w)); +// 30 +R123i.y = ((R0i.y == 0)?(R15i.y):(R8i.y)); +PV0i.y = R123i.y; +// 31 +R15i.y = ((R3i.y == 0)?(R2i.w):(PV0i.y)); +R15i.z = ((R3i.y == 0)?(R7i.z):(R124i.w)); +// 32 +R15i.w = ((R3i.y == 0)?(R6i.w):(R4i.w)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R15i.x), intBitsToFloat(R15i.y), intBitsToFloat(R15i.z), intBitsToFloat(R15i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R11i.x), intBitsToFloat(R11i.y), intBitsToFloat(R11i.z), intBitsToFloat(R11i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R9i.x), intBitsToFloat(R9i.y), intBitsToFloat(R9i.z), intBitsToFloat(R9i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R16i.x), intBitsToFloat(R16i.y), intBitsToFloat(R16i.z), intBitsToFloat(R16i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/344d8b1f7d6f2b8e_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/344d8b1f7d6f2b8e_0000000000000000_vs.txt new file mode 100644 index 00000000..3d89f76d --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/344d8b1f7d6f2b8e_0000000000000000_vs.txt @@ -0,0 +1,2391 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader 344d8b1f7d6f2b8e // guardian explosion yellow smoke vs +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +layout(binding = 13, std140) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem5; +layout(location = 5) out vec4 passParameterSem8; +layout(location = 7) out vec4 passParameterSem11; +layout(location = 8) out vec4 passParameterSem14; +layout(location = 9) out vec4 passParameterSem15; +layout(location = 10) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 6) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem4.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem9; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R4i.z = floatBitsToInt(-(intBitsToFloat(R9i.y)) + 1.0); +R2i.w = 0; +R5i.w = floatBitsToInt(1.0); +PS0i = R5i.w; +// 1 +R8i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + uf_blockVS8[2].x); +R1i.w = floatBitsToInt(-(intBitsToFloat(R9i.x)) + 1.0); +PS1i = R1i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R8i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R17i.x = 0; +R17i.y = 0; +R17i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R18i.x = 0; +PS0i = R18i.x; +// 1 +R4i.w = R5i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R4i.w = R2i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R4i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R3i.w)); +// 1 +R3i.x = floatBitsToInt(float(PS0i)); +PS1i = R3i.x; +// 2 +predResult = (intBitsToFloat(R8i.w) >= intBitsToFloat(R3i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R17i.x = 0; +R17i.y = 0; +R17i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R18i.x = 0; +PS0i = R18i.x; +// 1 +R2i.w = R5i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R2i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[10].y)); +PV0i.y = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +R126i.z = floatBitsToInt(max(intBitsToFloat(R7i.x), 0.0)); +PV0i.w = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 1 +PV1i.x = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +R127i.y = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.w))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +R15i.x = floatBitsToInt(1.0 / intBitsToFloat(R3i.x)); +PS1i = R15i.x; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.y = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.w)); +R15i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS1i)); +PV0i.w = R15i.w; +R124i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R124i.z; +// 3 +PV1i.x = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +R2i.w = 0x3f800000; +PS1i = R2i.w; +// 4 +PV0i.x = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x); +R126i.y = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(R124i.z)); +PV0i.z = floatBitsToInt(min(intBitsToFloat(R126i.z), 0.0)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.y))); +R124i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R124i.x; +// 5 +R3i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0i.w)); +PV1i.y = R127i.y; +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(-(uf_blockVS7[98].w) + uf_blockVS7[99].w); +R126i.z = floatBitsToInt(-(uf_blockVS7[98].z) + uf_blockVS7[99].z); +PS1i = R126i.z; +// 6 +R125i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(uf_blockVS7[96].w)); +PV0i.x = R125i.x; +R0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(uf_blockVS7[97].w)); +PV0i.y = R0i.y; +R125i.y = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R125i.y; +// 7 +backupReg0i = R127i.y; +backupReg0i = R127i.y; +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +R127i.y = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.w))); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[98].w)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[99].w)); +// 8 +backupReg0i = R0i.y; +R126i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(-(uf_blockVS7[98].x) + uf_blockVS7[99].x); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.z))); +R0i.z = ((intBitsToFloat(PS1i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R0i.z; +// 9 +PV1i.x = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(R127i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(R125i.y)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.z))); +PV1i.z = R125i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)) + 1.0); +PS1i = R0i.x; +// 10 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(R127i.w)); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.w))); +PV0i.y = R3i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.z))); +PS0i = R127i.z; +// 11 +backupReg0i = R0i.x; +backupReg1i = R126i.y; +PV1i.x = floatBitsToInt(uf_blockVS7[98].x + intBitsToFloat(PV0i.z)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(backupReg0i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.w))); +PV1i.w = R124i.w; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(backupReg1i))); +PS1i = R124i.y; +// 12 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.z)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(R125i.y)); +PV0i.w = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(backupReg0i))); +PS0i = R125i.w; +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(R124i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.z))); +// 14 +backupReg0i = R127i.y; +PV0i.x = floatBitsToInt(-(uf_blockVS7[97].z) + uf_blockVS7[98].z); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(R124i.x)); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(uf_blockVS7[98].z + intBitsToFloat(PV1i.w)); +// 15 +PV1i.x = floatBitsToInt(-(uf_blockVS7[98].y) + uf_blockVS7[99].y); +R126i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(R124i.x)); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].x, intBitsToFloat(R0i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R124i.w))); +PS1i = R127i.z; +// 16 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(R125i.y)); +PV0i.y = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(R127i.y)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.w)); +R127i.w = floatBitsToInt(uf_blockVS7[96].z + intBitsToFloat(R124i.y)); +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(backupReg0i))); +PS0i = R127i.y; +// 17 +backupReg0i = R0i.y; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(R124i.z)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.y))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R125i.z))); +// 18 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(R125i.w)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R125i.z))); +PV0i.z = floatBitsToInt(uf_blockVS7[97].z + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt(uf_blockVS7[98].y + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.y))); +// 19 +backupReg0i = R0i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R3i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R124i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R127i.y)); +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].y, intBitsToFloat(backupReg0i))); +PS1i = R127i.y; +// 20 +R124i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].z, intBitsToFloat(R0i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt(uf_blockVS7[13].x); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +PS0i = floatBitsToInt(uf_blockVS7[13].y); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 21 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.z)); +R3i.y = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(PV0i.w)); +R3i.z = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.y)); +// 22 +PV0i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(PV1i.x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV1i.w))); +// 23 +backupReg0i = R8i.z; +R8i.z = floatBitsToInt(uf_blockVS7[13].z); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R3i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w))); +PV0i.x = R3i.x; +PV0i.y = R3i.x; +PV0i.z = R3i.x; +PV0i.w = R3i.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R0i.y = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.z = tempi.x; +// 3 +R124i.x = floatBitsToInt(-(intBitsToFloat(R3i.x)) + uf_blockVS6[17].x); +R127i.y = floatBitsToInt(-(intBitsToFloat(R0i.y)) + uf_blockVS6[17].y); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + uf_blockVS6[17].z); +R125i.w = floatBitsToInt(intBitsToFloat(R3i.x) + -(uf_blockVS6[17].x)); +R126i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(uf_blockVS6[17].y)); +PS1i = R126i.y; +// 4 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), uf_blockVS8[3].y)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), uf_blockVS8[3].y)); +R125i.z = floatBitsToInt(intBitsToFloat(R9i.z) + -(uf_blockVS6[17].z)); +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R8i.z))); +PS1i = R124i.w; +// 6 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R125i.w)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R125i.z)),-0.0),vec4(-(intBitsToFloat(R125i.w)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R125i.z)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 7 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R125i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), uf_blockVS8[3].z)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 8 +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.z)), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R126i.y)), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), -(uf_blockVS6[1].z))); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.w)), intBitsToFloat(PS1i))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), -(uf_blockVS6[1].x))); +PS0i = R127i.w; +// 9 +backupReg0i = R124i.w; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV0i.w))); +PV1i.x = R1i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), -(uf_blockVS6[1].y))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV0i.x))); +PV1i.z = R1i.z; +R124i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].y,intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +PS1i = R4i.y; +// 10 +R124i.x = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV1i.x)); +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].z,intBitsToFloat(R126i.w)) + intBitsToFloat(R127i.w))); +R124i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].x,intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS1i)); +R127i.z = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV1i.z)); +PS0i = R127i.z; +// 11 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[3].w)); +PS1i = R125i.w; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.w),intBitsToFloat(R127i.y),intBitsToFloat(R124i.z),-0.0),vec4(intBitsToFloat(R124i.w),intBitsToFloat(R127i.y),intBitsToFloat(R124i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +PS0i = R126i.y; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.w),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.w),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 14 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +PV0i.x = R0i.x; +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +PV0i.y = R8i.y; +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +PV0i.z = R0i.z; +R127i.w = R126i.w; +R124i.w = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +PS0i = R124i.w; +// 15 +backupReg0i = R126i.y; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.y))); +R126i.y = PV0i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +// 16 +backupReg0i = R0i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.y)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS1i)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R124i.z = R125i.y; +PS0i = R124i.z; +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.z))); +R126i.z = PV0i.y; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.z))); +R125i.y = PV0i.w; +PS1i = R125i.y; +// 18 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PV1i.x))); +R125i.w = R0i.z; +R3i.y = backupReg0i; +PS0i = R3i.y; +// 19 +R6i.x = R124i.z; +R6i.y = R127i.w; +R125i.z = R126i.x; +PV1i.z = R125i.z; +R0i.w = R126i.z; +R6i.z = R125i.y; +PS1i = R6i.z; +// 20 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.z),intBitsToFloat(R127i.w),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R3i.z = PV1i.z; +PS0i = R3i.z; +// 21 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.y),intBitsToFloat(R124i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R10i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(PV0i.x)); +PS1i = R10i.x; +// 22 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R3i.y),intBitsToFloat(R125i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); +PS0i = R10i.y; +// 23 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.y = tempi.x; +R10i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV0i.x)); +PS1i = R10i.z; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +backupReg0i = R3i.y; +R4i.x = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(R10i.x)); +R3i.y = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R10i.y)); +R8i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R10i.z)); +R126i.w = backupReg0i; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R6i.x))); +PS0i = R127i.y; +// 1 +R6i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,0.0))); +PV1i.x = R6i.x; +PV1i.y = R6i.x; +PV1i.z = R6i.x; +PV1i.w = R6i.x; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R6i.y))); +PS1i = R127i.w; +// 2 +backupReg0i = R1i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.y = tempi.x; +R2i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0x358637bd)); +PS0i = R2i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R3i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R3i.y),intBitsToFloat(R8i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R3i.z))); +PS1i = R124i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R1i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R1i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.w = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R1i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R1i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = tempi.x; +R125i.z = ((intBitsToFloat(PS0i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = R125i.z; +// 6 +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R6i.z)) + intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(R125i.w))); +// 7 +PV1i.x = ((intBitsToFloat(PS0i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(R124i.x))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.z)); +PS1i = floatBitsToInt(tempResultf); +// 8 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS1i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +R3i.z = ((R125i.z == 0)?(0):(PV1i.x)); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS1i))); +PS0i = R5i.z; +// 9 +R14i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R0i.x)) + intBitsToFloat(R124i.z))); +R16i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y)) + intBitsToFloat(R127i.w))); +R23i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R0i.z)) + intBitsToFloat(R127i.y))); +// 10 +predResult = (R3i.z != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R3i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R3i.y),intBitsToFloat(R8i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockVS7[95].x)); +PS0i = R127i.x; +// 1 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), uf_blockVS7[95].x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS7[95].x)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS1i))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +// 5 +backupReg0i = R10i.x; +backupReg1i = R10i.y; +backupReg2i = R10i.z; +R10i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R1i.x)); +R5i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R4i.y)); +R126i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(R1i.z)); +R6i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R10i.x)); +R6i.y = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R10i.y)); +PS0i = R6i.y; +// 1 +R126i.x = 0x3f800000; +R0i.y = floatBitsToInt(uf_blockVS7[60].x); +R11i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R10i.z)); +PV1i.z = R11i.z; +R127i.w = 0x3f800000; +PV1i.w = R127i.w; +R0i.z = floatBitsToInt(uf_blockVS7[60].y); +PS1i = R0i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.w),intBitsToFloat(R6i.y),intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.w)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R12i.z = tempi.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.w),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R8i.y = tempi.x; +// 4 +R11i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.w),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = R11i.x; +PV0i.y = R11i.x; +PV0i.z = R11i.x; +PV0i.w = R11i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.w),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R14i.w = tempi.x; +// 6 +R1i.y = floatBitsToInt(uf_blockVS7[60].z); +PV0i.z = PV1i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R10i.w = floatBitsToInt((intBitsToFloat(R11i.x) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.w = R10i.w; +// 7 +R12i.x = floatBitsToInt((intBitsToFloat(R11i.x) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.x = R12i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R11i.x) * 0.0 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +R8i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R8i.x; +// 8 +PV0i.x = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +R12i.y = floatBitsToInt((intBitsToFloat(R12i.z) * 0.5 + intBitsToFloat(PV1i.y))); +R14i.z = floatBitsToInt((intBitsToFloat(R8i.y) * -(0.5) + intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PS1i)); +// 9 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 10 +R125i.x = floatBitsToInt(-(uf_blockVS7[69].x) + uf_blockVS7[70].x); +R1i.z = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 11 +R6i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R5i.y),intBitsToFloat(R126i.z),intBitsToFloat(R126i.x)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = tempi.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R5i.y),intBitsToFloat(R126i.z),intBitsToFloat(R126i.x)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 14 +R127i.x = floatBitsToInt(-(uf_blockVS7[69].w) + uf_blockVS7[70].w); +R123i.z = floatBitsToInt((intBitsToFloat(R127i.z) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +PV0i.w = PV1i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 15 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 16 +R2i.y = floatBitsToInt(uf_blockVS7[76].y); +R3i.z = floatBitsToInt(uf_blockVS7[76].x); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV0i.w))); +R3i.y = floatBitsToInt(uf_blockVS7[76].z); +R0i.w = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(PS0i)); +// 18 +PV0i.z = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV1i.x)); +// 19 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 20 +R5i.w = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg1i = R0i.z; +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS8[0].y)); +PV0i.w = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 1 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS8[0].z)); +PV1i.y = floatBitsToInt((uf_blockVS7[8].w > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt((0.0 > uf_blockVS7[8].w)?1.0:0.0); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[9].z) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PS1i))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].w); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 4 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[10].x) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.z))); +// 5 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +// 7 +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.x))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[68].w)); +PV0i.w = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[69].w)); +// 1 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R0i.w)) + uf_blockVS7[69].x)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R1i.z)) + uf_blockVS7[68].x)); +R126i.z = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R126i.z; +R127i.w = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R127i.w; +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.z; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), uf_blockVS7[59].x)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[70].w)); +R12i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS7[59].x)); +PS0i = R12i.w; +// 3 +R127i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV0i.z))); +R13i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockVS7[59].x)); +// 4 +backupReg0i = R127i.y; +PV0i.x = floatBitsToInt(-(uf_blockVS7[84].w) + uf_blockVS7[85].w); +R127i.y = floatBitsToInt(intBitsToFloat(R2i.z) + -(uf_blockVS7[84].w)); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(intBitsToFloat(R2i.z) + -(uf_blockVS7[85].w)); +// 5 +R126i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.z))); +R126i.z = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(-(uf_blockVS7[84].x) + uf_blockVS7[85].x); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.y)) + intBitsToFloat(R126i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PS0i = ((intBitsToFloat(R7i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[84].x, intBitsToFloat(PV0i.z))); +R2i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[70].x,intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[84].x)); +PV1i.w = R123i.w; +R0i.w = ((PS0i == 0)?(R9i.x):(R1i.w)); +PS1i = R0i.w; +// 8 +PV0i.x = ((intBitsToFloat(R7i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = ((intBitsToFloat(R7i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 9 +R1i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[85].x,intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.w))); +R0i.y = ((PV0i.x == 0)?(R9i.y):(R4i.z)); +R0i.z = ((PV0i.y == 0)?(R9i.x):(R1i.w)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), uf_blockVS8[1].x)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), uf_blockVS8[1].y)); +R16i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), uf_blockVS8[0].w)); +// 1 +R13i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockVS8[1].w)); +R14i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.y))); +R15i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), uf_blockVS8[1].z)); +PS1i = ((intBitsToFloat(R7i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 2 +PV0i.x = ((intBitsToFloat(R7i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R3i.y = ((PS1i == 0)?(R9i.y):(R4i.z)); +PV0i.z = ((intBitsToFloat(R7i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R11i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV1i.w))); +// 3 +backupReg0i = R1i.w; +R1i.x = ((PV0i.z == 0)?(R9i.y):(R4i.z)); +R1i.w = ((PV0i.x == 0)?(R9i.x):(backupReg0i)); +R10i.x = floatBitsToInt(uf_blockVS8[3].x); +PS1i = R10i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +PV0i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +PS0i = floatBitsToInt(uf_blockVS7[5].y) & int(1); +// 1 +PV1i.x = (PV0i.w == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = (PV0i.z == 0x00100000)?int(0xFFFFFFFF):int(0x0); +PV1i.z = (PV0i.x == 0x00080000)?int(0xFFFFFFFF):int(0x0); +PV1i.w = (PV0i.y == 0x00200000)?int(0xFFFFFFFF):int(0x0); +R3i.w = (int(1) != PS0i)?int(0xFFFFFFFF):int(0x0); +PS1i = R3i.w; +// 2 +R4i.x = ((PV1i.z == 0)?(R9i.x):(R0i.w)); +R1i.y = ((PV1i.w == 0)?(R9i.x):(R0i.z)); +R6i.z = ((PV1i.y == 0)?(R9i.y):(R0i.y)); +R4i.w = ((PV1i.x == 0)?(R9i.y):(R3i.y)); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +// 3 +PV1i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010; +PV1i.z = (PS0i == 0x00800000)?int(0xFFFFFFFF):int(0x0); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020; +R127i.x = int(uf_blockVS7[17].x); +PS1i = R127i.x; +// 4 +R5i.x = ((PV1i.z == 0)?(R9i.x):(R1i.w)); +PV0i.y = (PV1i.x == 0x01000000)?int(0xFFFFFFFF):int(0x0); +R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040; +R125i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080; +R127i.z = int(uf_blockVS7[17].y); +PS0i = R127i.z; +// 5 +R125i.y = int(-1) + R127i.x; +R8i.z = ((PV0i.y == 0)?(R9i.y):(R1i.x)); +PS1i = floatBitsToInt(float(R127i.y)); +// 6 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(R126i.w)); +// 7 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R126i.z)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000; +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 9 +PV1i.x = 0 - PS0i; +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +R127i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.w; +// 10 +PV0i.x = 0 - PS1i; +R126i.z = max(R126i.w, PV1i.x); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 11 +PV1i.x = 0 - PS0i; +R4i.z = max(R127i.w, PV0i.x); +PS1i = floatBitsToInt(float(R125i.w)); +// 12 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R1i.z = max(R126i.w, PV1i.x); +R126i.y = floatBitsToInt(float(R127i.x)); +PS0i = R126i.y; +// 13 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt(float(R127i.z)); +PS1i = R127i.y; +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(R15i.x) * intBitsToFloat(PV1i.w)); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 15 +PV1i.x = 0 - PS0i; +PS1i = int(intBitsToFloat(PV0i.x)); +// 16 +R127i.z = max(R126i.w, PV1i.x); +R9i.y = R126i.z * PS1i; +PS0i = R9i.y; +// 17 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 18 +PV0i.x = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS1i)); +R2i.w = floatBitsToInt(float(R127i.x)); +PS0i = R2i.w; +// 19 +R3i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R2i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R2i.z; +// 20 +PS0i = floatBitsToInt(float(PS1i)); +// 21 +PV1i.w = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PS0i)); +R9i.x = floatBitsToInt(float(R2i.z)); +PS1i = R9i.x; +// 22 +R123i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R123i.x; +R126i.z = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R5i.z = floatBitsToInt(1.0 / abs(intBitsToFloat(R2i.w))); +PS0i = R5i.z; +// 23 +PV1i.y = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R9i.x)), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(PV0i.x)); +// 24 +R2i.x = int(1) - PS1i; +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +R3i.z = PS1i * R125i.y; +PS0i = R3i.z; +// 25 +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(R126i.z))); +PV1i.y = R125i.y; +PS1i = floatBitsToInt(float(R124i.w)); +// 26 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.y) >= abs(intBitsToFloat(R2i.w)))?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(-(abs(intBitsToFloat(R2i.w))) + intBitsToFloat(PV1i.y)); +R0i.x = int(intBitsToFloat(R126i.x)); +PS0i = R0i.x; +// 27 +backupReg0i = R127i.z; +R127i.z = ((intBitsToFloat(PV0i.x) == 0.0)?(R125i.y):(PV0i.w)); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.y))); +R0i.w = backupReg0i * PS0i; +PS1i = R0i.w; +// 28 +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z)); +R1i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R1i.x; +// 29 +R0i.z = 0 - PS0i; +R1i.w = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R123i.x = ((-(intBitsToFloat(R9i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(R1i.w)))):(R1i.w)); +PV0i.x = R123i.x; +PV0i.y = max(R1i.x, R0i.z); +// 1 +R123i.z = ((intBitsToFloat(R2i.w) == 0.0)?(R9i.x):(PV0i.x)); +PV1i.z = R123i.z; +PS1i = PV0i.y * R0i.x; +// 2 +R125i.y = R2i.z + PS1i; +PS0i = int(intBitsToFloat(PV1i.z)); +// 3 +PS1i = R2i.x * PS0i; +// 4 +PV0i.y = PS1i + R3i.z; +R126i.x = R1i.z * R125i.y; +PS0i = R126i.x; +// 5 +PS1i = R4i.z * PV0i.y; +// 6 +PV0i.w = PS1i + R9i.y; +// 7 +PV1i.x = R126i.x + PV0i.w; +// 8 +PV0i.z = R0i.w + PV1i.x; +// 9 +R126i.y = floatBitsToInt(float(PV0i.z)); +PS1i = R126i.y; +// 10 +R127i.z = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), abs(intBitsToFloat(PS1i)))); +// 11 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.w))); +// 12 +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.z))); +PV0i.y = R125i.y; +// 13 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R2i.w)))?1.0:0.0); +PV1i.w = floatBitsToInt(-(abs(intBitsToFloat(R2i.w))) + intBitsToFloat(PV0i.y)); +// 14 +R127i.z = ((intBitsToFloat(PV1i.x) == 0.0)?(R125i.y):(PV1i.w)); +PV0i.z = R127i.z; +// 15 +PV1i.y = floatBitsToInt(abs(intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z)); +// 16 +R123i.w = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV1i.y):(R127i.z)); +PV0i.w = R123i.w; +// 17 +R123i.x = ((-(intBitsToFloat(R126i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.x = R123i.x; +// 18 +R123i.z = ((intBitsToFloat(R2i.w) == 0.0)?(R126i.y):(PV1i.x)); +PV0i.z = R123i.z; +// 19 +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 20 +R124i.w = floatBitsToInt(float(PS1i)); +PS0i = R124i.w; +// 21 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R127i.x = floatBitsToInt(float(R126i.y)); +PS1i = R127i.x; +// 22 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(abs(intBitsToFloat(PS1i)) * 0.25); +R126i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +// 23 +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + intBitsToFloat(R124i.w))); +PV1i.w = R123i.w; +// 24 +R126i.x = floatBitsToInt((-(intBitsToFloat(PV1i.y)) * 4.0 + intBitsToFloat(R126i.w))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * 0.25); +R4i.z = ((R3i.w == 0)?(R7i.x):(R7i.y)); +// 25 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.x) >= 4.0)?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xc0800000)); +R0i.w = int(uf_blockVS7[26].x); +PS1i = R0i.w; +// 26 +R127i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R126i.w = ((intBitsToFloat(PV1i.y) == 0.0)?(R126i.x):(PV1i.z)); +PV0i.w = R126i.w; +PS0i = int(intBitsToFloat(PV1i.x)); +// 27 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 4.0); +R2i.w = PS0i + 0x00000012; +R9i.x = int(uf_blockVS7[26].y); +PS1i = R9i.x; +// 28 +R123i.z = ((-(intBitsToFloat(R126i.w)) > 0.0)?(PV1i.x):(R126i.w)); +PV0i.z = R123i.z; +PS0i = floatBitsToInt(float(R127i.z)); +// 29 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R123i.y = ((-(intBitsToFloat(R127i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +PV1i.y = R123i.y; +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +// 30 +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PS0i = int(intBitsToFloat(PV1i.y)); +// 31 +PV1i.x = int(-1) + PS0i; +R126i.y = 0xfffffffd + PS0i; +R127i.z = 0xfffffffe + PS0i; +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +PS1i = floatBitsToInt(float(PS0i)); +// 32 +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.x)); +// 33 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(float(R127i.z)); +// 34 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R127i.x; +// 35 +PV1i.x = 0 - PS0i; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.y))); +R127i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R127i.z; +// 36 +PV0i.x = 0 - PS1i; +PV0i.y = max(R127i.x, PV1i.x); +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 37 +R3i.x = int(1) - PV0i.y; +PV1i.y = 0 - PS0i; +PV1i.w = max(R127i.z, PV0i.x); +PS1i = floatBitsToInt(float(R126i.y)); +// 38 +PV0i.x = max(R125i.y, PV1i.y); +R3i.y = int(1) - PV1i.w; +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R125i.y = int(intBitsToFloat(R126i.z)); +PS0i = R125i.y; +// 39 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w))); +R5i.z = int(1) - PV0i.x; +PV1i.w = 0 - PS0i; +PS1i = floatBitsToInt(float(R126i.w)); +// 40 +R0i.x = max(R125i.y, PV1i.w); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 41 +PV1i.x = 0 - PS0i; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.y))); +// 42 +PV0i.z = max(R126i.w, PV1i.x); +R0i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R0i.y; +// 43 +R9i.y = int(1) - PV0i.z; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(uf_blockVS7[R2i.w].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +R127i.y = int(-1) + R0i.w; +R127i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +PV0i.w = 0 - R0i.y; +R126i.w = R9i.y * R2i.w; +PS0i = R126i.w; +// 1 +R1i.x = max(R0i.y, PV0i.w); +R127i.x = R5i.z * R2i.z; +PS1i = R127i.x; +// 2 +R126i.z = R3i.y * R2i.y; +PS0i = R126i.z; +// 3 +PS1i = R3i.x * R2i.x; +// 4 +PV0i.w = R126i.z + PS1i; +PS0i = floatBitsToInt(float(R127i.z)); +// 5 +PV1i.x = R127i.x + PV0i.w; +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R126i.x)); +// 6 +backupReg0i = R0i.w; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R2i.z = R126i.w + PV1i.x; +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(float(backupReg0i)); +PS0i = R127i.z; +// 7 +R126i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.y))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PS0i))); +R125i.y = int(intBitsToFloat(PV0i.x)); +PS1i = R125i.y; +// 8 +PV0i.x = 0 - PS1i; +PV0i.w = floatBitsToInt(intBitsToFloat(R15i.x) * intBitsToFloat(PV1i.y)); +R126i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R126i.y; +// 9 +R2i.x = max(R125i.y, PV0i.x); +PV1i.w = 0 - PS0i; +PS1i = int(intBitsToFloat(PV0i.w)); +// 10 +R125i.x = max(R126i.y, PV1i.w); +R126i.z = R0i.x * PS1i; +PS0i = R126i.z; +// 11 +PS1i = floatBitsToInt(float(R9i.x)); +// 12 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 13 +backupReg0i = R0i.w; +PV1i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +R126i.y = floatBitsToInt(float(backupReg0i)); +PS1i = R126i.y; +// 14 +R125i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R124i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R124i.x; +// 15 +PS1i = floatBitsToInt(float(PS0i)); +// 16 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PS1i)); +R124i.w = floatBitsToInt(float(R124i.x)); +PS0i = R124i.w; +// 17 +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R123i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +R3i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.y))); +PS1i = R3i.x; +// 18 +PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R124i.w)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.w)); +// 19 +R9i.x = int(1) - PS0i; +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R0i.x = PS0i * R127i.y; +PS1i = R0i.x; +// 20 +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R125i.w)) + intBitsToFloat(R127i.x))); +PV0i.z = R127i.z; +PS0i = floatBitsToInt(float(R126i.x)); +// 21 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0); +R127i.w = int(intBitsToFloat(R126i.w)); +PS1i = R127i.w; +// 22 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV1i.w) == 0.0)?(R127i.z):(PV1i.y)); +PV0i.x = R125i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R127i.y = backupReg0i * PS1i; +PS0i = R127i.y; +// 23 +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.x)); +R126i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R126i.w; +// 24 +PV0i.x = 0 - PS1i; +R123i.y = ((-(intBitsToFloat(R125i.x)) > 0.0)?(PV1i.z):(R125i.x)); +PV0i.y = R123i.y; +// 25 +PV1i.z = max(R126i.w, PV0i.x); +R123i.w = ((-(intBitsToFloat(R124i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.w = R123i.w; +// 26 +R123i.x = ((intBitsToFloat(R126i.y) == 0.0)?(R124i.w):(PV1i.w)); +PV0i.x = R123i.x; +PS0i = PV1i.z * R127i.w; +// 27 +R127i.z = R124i.x + PS0i; +PS1i = int(intBitsToFloat(PV0i.x)); +// 28 +PS0i = R9i.x * PS1i; +// 29 +PV1i.z = PS0i + R0i.x; +R127i.w = R2i.x * R127i.z; +PS1i = R127i.w; +// 30 +PS0i = R1i.x * PV1i.z; +// 31 +PV1i.y = PS0i + R126i.z; +// 32 +PV0i.w = R127i.w + PV1i.y; +// 33 +PV1i.x = R127i.y + PV0i.w; +// 34 +R127i.z = floatBitsToInt(float(PV1i.x)); +PS0i = R127i.z; +// 35 +R124i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), abs(intBitsToFloat(PS0i)))); +// 36 +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +// 37 +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.x))); +PV1i.z = R126i.z; +// 38 +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0); +// 39 +R124i.x = ((intBitsToFloat(PV0i.w) == 0.0)?(R126i.z):(PV0i.y)); +PV1i.x = R124i.x; +// 40 +PV0i.z = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.x)); +// 41 +R123i.y = ((-(intBitsToFloat(R124i.x)) > 0.0)?(PV0i.z):(R124i.x)); +PV1i.y = R123i.y; +// 42 +R123i.w = ((-(intBitsToFloat(R127i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.w = R123i.w; +// 43 +R123i.x = ((intBitsToFloat(R126i.y) == 0.0)?(R127i.z):(PV0i.w)); +PV1i.x = R123i.x; +// 44 +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 45 +R126i.y = floatBitsToInt(float(PS0i)); +PS1i = R126i.y; +// 46 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R0i.w = floatBitsToInt(float(R127i.z)); +PS0i = R0i.w; +// 47 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +R2i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +// 48 +R3i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R126i.y))); +R4i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R3i.y) * 0.25); +R125i.w = floatBitsToInt((-(intBitsToFloat(R4i.z)) * 4.0 + intBitsToFloat(R2i.y))); +PV0i.w = R125i.w; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(0xc0800000)); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt((intBitsToFloat(PV0i.w) >= 4.0)?1.0:0.0); +// 2 +R126i.y = ((intBitsToFloat(PV1i.z) == 0.0)?(R125i.w):(PV1i.x)); +PV0i.y = R126i.y; +PS0i = int(intBitsToFloat(PV1i.y)); +// 3 +R2i.y = PS0i + 0x0000001b; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 4.0); +PS1i = int(uf_blockVS7[48].z); +// 4 +R123i.x = ((-(intBitsToFloat(R126i.y)) > 0.0)?(PV1i.w):(R126i.y)); +PV0i.x = R123i.x; +R0i.y = floatBitsToInt(float(PS1i)); +PS0i = R0i.y; +// 5 +R123i.z = ((-(intBitsToFloat(R0i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.z = R123i.z; +R0i.w = floatBitsToInt(float(R2i.z)); +PS1i = R0i.w; +// 6 +PS0i = int(intBitsToFloat(PV1i.z)); +// 7 +R124i.x = 0xfffffffe + PS0i; +R126i.y = floatBitsToInt(abs(intBitsToFloat(R0i.y))); +R127i.z = 0xfffffffd + PS0i; +PV1i.w = int(-1) + PS0i; +PS1i = floatBitsToInt(float(PS0i)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.w)); +// 9 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R124i.x)); +// 10 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +R125i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R125i.w; +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.y = 0 - PS0i; +R124i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R124i.x; +// 12 +PV0i.x = 0 - PS1i; +PV0i.z = max(R125i.w, PV1i.y); +R126i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R126i.z; +// 13 +R2i.x = int(1) - PV0i.z; +PV1i.y = max(R124i.x, PV0i.x); +PV1i.z = 0 - PS0i; +PS1i = floatBitsToInt(float(R127i.z)); +// 14 +R1i.x = int(1) - PV1i.y; +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = max(R126i.z, PV1i.z); +R0i.x = floatBitsToInt(float(R2i.z)); +PS0i = R0i.x; +// 15 +R3i.x = int(1) - PV0i.w; +R127i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R0i.y))); +// 16 +PV0i.y = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R0i.x)), intBitsToFloat(PS1i))); +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 17 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +PV1i.w = 0 - PS0i; +// 18 +backupReg0i = R127i.y; +PV0i.x = max(R125i.y, PV1i.w); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R126i.y)) + intBitsToFloat(backupReg0i))); +PV0i.y = R127i.y; +// 19 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R0i.y)))?1.0:0.0); +R2i.z = int(1) - PV0i.x; +PV1i.w = floatBitsToInt(-(abs(intBitsToFloat(R0i.y))) + intBitsToFloat(PV0i.y)); +// 20 +R4i.z = ((intBitsToFloat(PV1i.x) == 0.0)?(R127i.y):(PV1i.w)); +PV0i.z = R4i.z; +// 21 +R3i.y = floatBitsToInt(abs(intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.z)); +} +if( activeMaskStackC[3] == true ) { +R9i.xyzw = floatBitsToInt(uf_blockVS7[R2i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((intBitsToFloat(R0i.w) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(R0i.w))?1.0:0.0); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[45].x)); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) * 2.0); +R123i.w = ((-(intBitsToFloat(R4i.z)) > 0.0)?(R3i.y):(R4i.z)); +PV0i.w = R123i.w; +R127i.y = R2i.z * R9i.w; +PS0i = R127i.y; +// 1 +R123i.x = ((-(intBitsToFloat(R0i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), uf_blockVS7[45].y)); +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R127i.w = R3i.x * R9i.z; +PS1i = R127i.w; +// 2 +R125i.x = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y)); +R126i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R0i.w))); +R126i.z = ((intBitsToFloat(R0i.y) == 0.0)?(R0i.x):(PV1i.x)); +PV0i.w = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R124i.x = R1i.x * R9i.y; +PS0i = R124i.x; +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV1i.w = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +PS1i = R2i.x * R9i.x; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[46].z) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +PV0i.y = R124i.x + PS1i; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockVS7[46].w) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(R125i.x)))); +R125i.y = int(intBitsToFloat(R126i.z)); +PS0i = R125i.y; +// 5 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[45].z) + intBitsToFloat(PV0i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[45].w) + intBitsToFloat(PV0i.z))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[44].y) + intBitsToFloat(R127i.x))); +PV1i.w = R127i.w + PV0i.y; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R0i.y)); +// 6 +R126i.x = R127i.y + PV1i.w; +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].z); +// 7 +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R123i.y = ((R3i.w == 0)?(0):(int(1))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 8 +R125i.x = (PV1i.y == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.x = R125i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i))); +PV0i.y = R126i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(PV1i.x)) + -(0.5))); +PV0i.w = (PV1i.y == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R127i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R127i.y; +// 9 +backupReg0i = R125i.y; +R123i.x = ((PV0i.w == 0)?(R7i.x):(R7i.z)); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.z),intBitsToFloat(PV0i.y)) + -(0.5))); +R123i.z = ((PV0i.w == 0)?(R7i.y):(R7i.x)); +PV1i.z = R123i.z; +R127i.w = ((PV0i.x == 0)?(R7i.x):(R7i.y)); +PS1i = floatBitsToInt(float(backupReg0i)); +// 10 +R123i.x = ((R125i.x == 0)?(PV1i.z):(R7i.z)); +PV0i.x = R123i.x; +R123i.y = ((R125i.x == 0)?(PV1i.x):(R7i.y)); +PV0i.y = R123i.y; +R125i.z = ((R125i.x == 0)?(R7i.y):(R7i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.w))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(R127i.y)); +// 11 +backupReg0i = R124i.x; +backupReg1i = R127i.z; +R124i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(PV0i.y))); +R124i.x = floatBitsToInt(intBitsToFloat(R124i.x) * 2.0); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.z))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV0i.x))); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.w))); +PS1i = int(uf_blockVS7[53].z); +// 12 +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R125i.y)) + -(intBitsToFloat(PV1i.y)))); +PV0i.y = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +PV0i.z = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +R126i.w = floatBitsToInt(float(PS1i)); +PS0i = R126i.w; +// 13 +backupReg0i = R127i.z; +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R125i.y = floatBitsToInt(-(intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.z)); +R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R124i.x = floatBitsToInt(float(R126i.x)); +PS1i = R124i.x; +// 14 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R127i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +R126i.z = floatBitsToInt(float(R126i.x)); +PS0i = R126i.z; +// 15 +backupReg0i = R125i.z; +R126i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +R125i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y))); +R9i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R125i.y)))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.w))); +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.z)), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[49].y) + intBitsToFloat(R127i.z))); +R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[50].z) + intBitsToFloat(R127i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * 0.5 + intBitsToFloat(R124i.x))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 17 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[50].w) + intBitsToFloat(R125i.z))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(PS0i)); +R125i.w = ((R3i.w == 0)?(0):(0x00000002)); +PV1i.w = R125i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 18 +backupReg0i = R127i.x; +R127i.x = (PV1i.w == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +R6i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS1i))); +PV0i.z = R6i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R126i.x))); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 19 +PV1i.x = floatBitsToInt(-(abs(intBitsToFloat(R126i.w))) + intBitsToFloat(PV0i.w)); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PV0i.z)) + -(0.5))); +PV1i.z = floatBitsToInt((intBitsToFloat(PV0i.w) >= abs(intBitsToFloat(R126i.w)))?1.0:0.0); +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS0i))); +PV1i.w = R124i.w; +PS1i = int(intBitsToFloat(PV0i.y)); +// 20 +PV0i.x = (R125i.w == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R126i.y = ((intBitsToFloat(PV1i.z) == 0.0)?(R127i.w):(PV1i.x)); +PV0i.y = R126i.y; +R4i.z = ((R127i.x == 0)?(R7i.x):(R7i.y)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(PV1i.w)) + -(0.5))); +PS0i = floatBitsToInt(float(PS1i)); +// 21 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.y)); +R123i.y = ((PV0i.x == 0)?(R7i.y):(R7i.x)); +PV1i.y = R123i.y; +R125i.z = ((PV0i.x == 0)?(R7i.x):(R7i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.w)),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.y))); +PV1i.w = R123i.w; +R9i.y = ((R127i.x == 0)?(R7i.y):(R7i.z)); +PS1i = R9i.y; +// 22 +R123i.x = ((-(intBitsToFloat(R126i.y)) > 0.0)?(PV1i.x):(R126i.y)); +PV0i.x = R123i.x; +R1i.y = ((R127i.x == 0)?(PV1i.y):(R7i.z)); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R127i.w)) + -(intBitsToFloat(PV1i.w)))); +PS0i = int(uf_blockVS7[58].z); +// 23 +R123i.z = ((-(intBitsToFloat(R126i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.z = R123i.z; +R7i.w = ((R127i.x == 0)?(R125i.z):(R7i.y)); +R2i.x = floatBitsToInt(float(PS0i)); +PS1i = R2i.x; +// 24 +R7i.x = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +R7i.y = ((intBitsToFloat(R126i.w) == 0.0)?(R126i.z):(PV1i.z)); +R7i.z = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +R4i.x = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R4i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = floatBitsToInt(intBitsToFloat(R4i.x) * 0.0); +R126i.w = ((intBitsToFloat(R7i.x) == 0.0)?(0):(R7i.z)); +PV0i.w = R126i.w; +PS0i = int(intBitsToFloat(R7i.y)); +// 1 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R7i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 2.0); +PV1i.w = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x); +PS1i = floatBitsToInt(float(PS0i)); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.z),intBitsToFloat(PS1i)) + intBitsToFloat(R9i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.w)); +R123i.z = ((-(intBitsToFloat(R126i.w)) > 0.0)?(PV1i.x):(R126i.w)); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R1i.y))); +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +R124i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R124i.w; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = ((intBitsToFloat(R2i.x) == 0.0)?(0):(PV0i.z)); +PV1i.y = R123i.y; +R13i.z = floatBitsToInt(intBitsToFloat(R0i.w) + 0.5); +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),uf_blockVS7[54].x) + -(intBitsToFloat(PV0i.y)))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 4 +R7i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +R11i.y = floatBitsToInt(intBitsToFloat(R2i.z) + 0.5); +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS1i))); +PV0i.z = R126i.z; +R1i.w = floatBitsToInt(intBitsToFloat(R9i.x) + 0.5); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 5 +backupReg0i = R5i.w; +R127i.x = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV0i.z)) + -(0.5))); +R7i.z = floatBitsToInt(intBitsToFloat(R15i.w) + 0.0); +PV1i.z = R7i.z; +R5i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[93].x)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 6 +backupReg0i = R126i.w; +R0i.x = R15i.w; +R124i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + -(uf_blockVS7[104].w)); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS1i))); +PV0i.w = R126i.w; +PS0i = floatBitsToInt(float(backupReg0i)); +// 7 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.y = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PV0i.w)) + -(0.5))); +R126i.z = floatBitsToInt(float(R124i.w)); +PS1i = R126i.z; +// 8 +PV0i.x = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w); +PV0i.y = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 9 +R4i.x = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(PS0i)); +R4i.x = clampFI32(R4i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[54].y) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[55].z) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[105].w)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[55].w) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.y)) + intBitsToFloat(R126i.x))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.w)) + -(intBitsToFloat(PV0i.w)))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(-(uf_blockVS7[104].y) + uf_blockVS7[105].y); +// 12 +R3i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +R15i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +R126i.z = floatBitsToInt(-(uf_blockVS7[104].z) + uf_blockVS7[105].z); +PV0i.w = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +// 13 +R125i.z = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +R126i.w = floatBitsToInt(-(uf_blockVS7[105].y) + uf_blockVS7[106].y); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt(-(uf_blockVS7[105].z) + uf_blockVS7[106].z); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +// 15 +R7i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV0i.x)) + uf_blockVS7[104].z)); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV0i.w)) + uf_blockVS7[104].x)); +R9i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[104].y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +backupReg0i = R125i.z; +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); +R125i.z = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[106].w)); +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +R126i.y = floatBitsToInt(-(uf_blockVS7[106].z) + uf_blockVS7[107].z); +PS0i = R126i.y; +// 17 +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.x)) + uf_blockVS7[105].z)); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.w)) + uf_blockVS7[105].x)); +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[105].y)); +// 18 +R126i.z = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +R126i.w = floatBitsToInt(-(uf_blockVS7[106].y) + uf_blockVS7[107].y); +// 19 +backupReg0i = R124i.y; +PV1i.x = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R124i.y = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[107].w)); +R6i.z = ((intBitsToFloat(backupReg0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +// 20 +R124i.x = ((intBitsToFloat(R125i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R127i.z = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +R127i.w = floatBitsToInt(-(uf_blockVS7[107].y) + uf_blockVS7[108].y); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 21 +backupReg0i = R126i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +R126i.z = floatBitsToInt(-(uf_blockVS7[107].z) + uf_blockVS7[108].z); +PV1i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +// 22 +R127i.x = ((intBitsToFloat(R125i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.x)) + uf_blockVS7[106].z)); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.w)) + uf_blockVS7[106].x)); +R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.y)) + uf_blockVS7[106].y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 23 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +R2i.z = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[108].w)); +PV1i.z = R2i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R9i.y = floatBitsToInt(-(uf_blockVS7[108].z) + uf_blockVS7[109].z); +PS1i = R9i.y; +// 24 +R126i.x = ((intBitsToFloat(R124i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R126i.x; +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.x)) + uf_blockVS7[107].z)); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.w)) + uf_blockVS7[107].x)); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.y)) + uf_blockVS7[107].y)); +R5i.x = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R5i.x; +// 25 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R4i.z = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +R5i.w = floatBitsToInt(-(uf_blockVS7[108].y) + uf_blockVS7[109].y); +PS1i = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +// 26 +PV0i.x = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +R0i.y = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[109].w)); +PV0i.y = R0i.y; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.y))); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +PS0i = R2i.x; +// 27 +R9i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R1i.y = floatBitsToInt(-(intBitsToFloat(R124i.x)) + 1.0); +R9i.z = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +R0i.w = floatBitsToInt(-(uf_blockVS7[109].y) + uf_blockVS7[110].y); +R8i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R8i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(R8i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(R8i.z)); +R127i.z = floatBitsToInt(-(uf_blockVS7[109].z) + uf_blockVS7[110].z); +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.z) * intBitsToFloat(R8i.z)); +PS0i = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R9i.x)) + 1.0); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.x)) + uf_blockVS7[108].z)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + uf_blockVS7[108].x)); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.y)) + uf_blockVS7[108].y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS1i)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.x))); +R127i.x = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[110].w)); +PS0i = R127i.x; +// 3 +R126i.x = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.z)) + uf_blockVS7[109].z)); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + uf_blockVS7[109].x)); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[109].y)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R1i.y))); +PS1i = R127i.w; +// 4 +R124i.x = floatBitsToInt(-(intBitsToFloat(R6i.z)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R127i.z = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +R126i.w = floatBitsToInt(-(uf_blockVS7[110].y) + uf_blockVS7[111].y); +// 5 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.y))); +R124i.y = floatBitsToInt(-(uf_blockVS7[110].z) + uf_blockVS7[111].z); +PV1i.z = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.z) + -(uf_blockVS7[111].w)); +// 6 +backupReg0i = R124i.x; +backupReg0i = R124i.x; +backupReg0i = R124i.x; +R124i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(backupReg0i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].y, intBitsToFloat(backupReg0i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].z, intBitsToFloat(backupReg0i))); +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +PS0i = R126i.z; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R126i.y = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +PS1i = R126i.y; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R2i.x)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.y) * intBitsToFloat(R126i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R2i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + uf_blockVS7[110].x)); +PS0i = R126i.z; +// 9 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.y)) + uf_blockVS7[110].y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.z)) + uf_blockVS7[110].z)); +PS1i = R126i.y; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R10i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(R124i.x)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R10i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R10i.z)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R2i.x = 0; +PS0i = R2i.x; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.y))); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS13[24].x) + -(uf_blockVS13[24].y))); +R122i.x = clampFI32(R122i.x); +PS1i = R122i.x; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 13 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV0i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.y = floatBitsToInt(tempResultf); +PS1i = R126i.y; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R124i.x)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].y,intBitsToFloat(R124i.x)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].z,intBitsToFloat(R124i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS0i = R126i.z; +// 15 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[24].w, intBitsToFloat(R126i.y))); +R0i.y = PV0i.x; +R1i.z = PV0i.w; +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS0i))); +R1i.y = PV0i.z; +PS1i = R1i.y; +// 16 +R124i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(R126i.z))); +PV0i.y = floatBitsToInt(uf_blockVS13[28].y + 1.0); +R126i.z = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R6i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(R8i.x)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * 1.5); +PV1i.x = clampFI32(PV1i.x); +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),uf_blockVS13[25].w) + uf_blockVS13[25].w)); +R0i.w = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R125i.w))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 18 +R8i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R4i.x)) + 0.0)); +R10i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x41700000)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +// 19 +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(PS0i)) + uf_blockVS13[23].z)); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 20 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -0.0); +PV0i.w = clampFI32(PV0i.w); +// 21 +R6i.x = PV0i.w; +R4i.y = PV0i.w; +PV1i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3e4ccccd))); +// 22 +R2i.w = floatBitsToInt(min(intBitsToFloat(PV1i.z), 1.0)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.w = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +// 1 +R124i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R6i.w))); +R126i.y = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R6i.y))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w)); +R125i.w = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R11i.z))); +PV1i.w = R125i.w; +R122i.x = floatBitsToInt((intBitsToFloat(R0i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R122i.x = clampFI32(R122i.x); +PS1i = R122i.x; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PV1i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV1i.z)) + uf_blockVS13[27].x)); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +// 3 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), uf_blockVS13[26].w)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0x41080000)); +R122i.x = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.x))); +PS1i = R122i.x; +// 4 +backupReg0i = R4i.x; +R4i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3daaaaab)); +R123i.y = floatBitsToInt((intBitsToFloat(R124i.x) * intBitsToFloat(R124i.x) + intBitsToFloat(PS1i))); +PV0i.y = R123i.y; +R4i.z = 0; +R9i.w = ((0.0 >= intBitsToFloat(backupReg0i))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = R9i.w; +R11i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +PS0i = R11i.z; +// 5 +R1i.x = 0; +R6i.y = 0; +PV1i.y = R6i.y; +R3i.z = ((PV0i.w == 0)?(R11i.x):(PS0i)); +R3i.w = 0; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +R7i.w = ((R9i.w == 0)?(R12i.z):(PV1i.y)); +R5i.x = R14i.x; +PS0i = R5i.x; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.y = R16i.y; +PS1i = R2i.y; +// 8 +R11i.x = ((R9i.w == 0)?(R8i.y):(R3i.w)); +R5i.y = ((R9i.w == 0)?(R0i.y):(R0i.y)); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.z = R126i.z; +R0i.w = ((R9i.w == 0)?(R8i.x):(R1i.x)); +R2i.z = R23i.z; +PS0i = R2i.z; +// 9 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R3i.y = ((R9i.w == 0)?(R14i.w):(R14i.w)); +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.z = R123i.z; +R6i.w = ((R9i.w == 0)?(R18i.z):(R18i.z)); +R9i.x = ((R9i.w == 0)?(0):(0x3f800000)); +PS1i = R9i.x; +// 10 +R123i.x = ((R9i.w == 0)?(0):(R4i.y)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(0xbe593484))); +PV0i.y = R123i.y; +R123i.z = ((R9i.w == 0)?(0):(R127i.x)); +PV0i.z = R123i.z; +R123i.w = ((R9i.w == 0)?(0):(R0i.z)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 11 +R22i.x = ((R9i.x == 0)?(R0i.z):(PV0i.w)); +R22i.y = ((R9i.x == 0)?(R127i.x):(PV0i.z)); +R22i.z = ((R9i.x == 0)?(R4i.y):(PV0i.x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +// 12 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),-(intBitsToFloat(PV1i.w))) + 1.0)); +R4i.y = ((R9i.w == 0)?(0):(R2i.x)); +R0i.z = ((R9i.w == 0)?(0):(R6i.x)); +R4i.w = ((R9i.w == 0)?(0):(R2i.y)); +R2i.y = ((R9i.w == 0)?(0):(R2i.z)); +PS0i = R2i.y; +} +if( activeMaskStackC[3] == true ) { +R10i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R10i.xy)).xyz); +R8i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R4i.xz)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), intBitsToFloat(R2i.w))); +PV0i.x = R127i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(R2i.w))); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(R2i.w))); +PV0i.z = R126i.z; +R22i.w = ((R9i.x == 0)?(R2i.x):(R4i.y)); +R127i.y = ((R9i.w == 0)?(0):(R8i.z)); +PS0i = R127i.y; +// 1 +R124i.x = ((R9i.w == 0)?(0):(R8i.x)); +R123i.y = ((R9i.w == 0)?(0):(PV0i.z)); +PV1i.y = R123i.y; +R123i.z = ((R9i.w == 0)?(0):(PV0i.x)); +PV1i.z = R123i.z; +R123i.w = ((R9i.w == 0)?(0):(PV0i.y)); +PV1i.w = R123i.w; +R124i.z = ((R9i.w == 0)?(0):(R8i.y)); +PS1i = R124i.z; +// 2 +R21i.x = ((R9i.x == 0)?(R126i.y):(PV1i.w)); +R21i.y = ((R9i.x == 0)?(R127i.x):(PV1i.z)); +R21i.z = ((R9i.x == 0)?(R126i.z):(PV1i.y)); +R21i.w = ((R9i.x == 0)?(R6i.x):(R0i.z)); +R122i.x = ((R9i.w == 0)?(0):(R8i.w)); +PS0i = R122i.x; +// 3 +R20i.x = ((R9i.x == 0)?(R8i.x):(R124i.x)); +R20i.y = ((R9i.x == 0)?(R8i.y):(R124i.z)); +R20i.z = ((R9i.x == 0)?(R8i.z):(R127i.y)); +R20i.w = ((R9i.x == 0)?(R8i.w):(PS0i)); +R125i.w = ((R9i.w == 0)?(0):(R1i.w)); +PS1i = R125i.w; +// 4 +R127i.x = ((R9i.w == 0)?(0):(R5i.w)); +R125i.y = ((R9i.w == 0)?(0):(R3i.z)); +R123i.z = ((R9i.w == 0)?(0):(R15i.y)); +PV0i.z = R123i.z; +R126i.w = ((R9i.w == 0)?(0):(R5i.x)); +R122i.x = ((R9i.w == 0)?(0):(R3i.x)); +PS0i = R122i.x; +// 5 +R23i.x = ((R9i.x == 0)?(R3i.x):(PS0i)); +R23i.y = ((R9i.x == 0)?(R15i.y):(PV0i.z)); +R123i.z = ((R9i.w == 0)?(0):(R13i.z)); +PV1i.z = R123i.z; +R124i.w = ((R9i.w == 0)?(0):(R11i.y)); +R124i.z = ((R9i.w == 0)?(0):(R1i.z)); +PS1i = R124i.z; +// 6 +R19i.x = ((R9i.x == 0)?(R13i.z):(PV1i.z)); +R19i.y = ((R9i.x == 0)?(R1i.w):(R125i.w)); +R123i.z = ((R9i.w == 0)?(0):(R7i.x)); +PV0i.z = R123i.z; +R125i.w = ((R9i.w == 0)?(0):(R1i.y)); +R126i.z = ((R9i.w == 0)?(R18i.z):(R18i.z)); +PS0i = R126i.z; +// 7 +R124i.x = ((R9i.w == 0)?(R18i.y):(R0i.y)); +R127i.y = ((R9i.w == 0)?(0):(R12i.x)); +R19i.z = ((R9i.x == 0)?(R7i.x):(PV0i.z)); +R19i.w = ((R9i.x == 0)?(R11i.y):(R124i.w)); +R127i.w = ((R9i.w == 0)?(0):(R11i.w)); +PS1i = R127i.w; +// 8 +R123i.x = ((R9i.w == 0)?(0):(R0i.x)); +PV0i.x = R123i.x; +R124i.y = ((R9i.w == 0)?(0):(R0i.w)); +R123i.z = ((R9i.w == 0)?(0):(R12i.y)); +PV0i.z = R123i.z; +R124i.w = ((R9i.w == 0)?(0):(R14i.z)); +R126i.y = ((R9i.w == 0)?(0):(R15i.z)); +PS0i = R126i.y; +// 9 +R10i.x = ((R9i.x == 0)?(R0i.x):(PV0i.x)); +R10i.y = ((R9i.x == 0)?(R1i.y):(R125i.w)); +R10i.z = ((R9i.x == 0)?(R1i.z):(R124i.z)); +R125i.w = ((R9i.w == 0)?(0):(R13i.x)); +R15i.x = ((R9i.x == 0)?(R12i.y):(PV0i.z)); +PS1i = R15i.x; +// 10 +R0i.x = ((R9i.x == 0)?(R15i.z):(R126i.y)); +R15i.y = ((R9i.x == 0)?(R14i.z):(R124i.w)); +R15i.z = ((R9i.x == 0)?(R12i.x):(R127i.y)); +R123i.w = ((R9i.w == 0)?(0):(R13i.y)); +PV0i.w = R123i.w; +R124i.w = ((R9i.w == 0)?(0):(R13i.w)); +PS0i = R124i.w; +// 11 +R12i.x = ((R9i.x == 0)?(R13i.y):(PV0i.w)); +R123i.y = ((R9i.w == 0)?(R18i.x):(R1i.x)); +PV1i.y = R123i.y; +R123i.z = ((R9i.w == 0)?(0):(R10i.w)); +PV1i.z = R123i.z; +R1i.w = ((R9i.w == 0)?(0):(R16i.z)); +R122i.x = ((R9i.w == 0)?(0):(R14i.y)); +PS1i = R122i.x; +// 12 +R18i.x = ((R9i.x == 0)?(R0i.w):(PV1i.y)); +R18i.y = ((R9i.x == 0)?(R5i.y):(R124i.x)); +R18i.z = ((R9i.x == 0)?(R6i.w):(R126i.z)); +R15i.w = ((R9i.x == 0)?(R10i.w):(PV1i.z)); +R0i.y = ((R9i.x == 0)?(R14i.y):(PS1i)); +PS0i = R0i.y; +// 13 +backupReg0i = R125i.y; +R124i.x = R16i.y; +R125i.y = R23i.z; +R0i.z = ((R9i.x == 0)?(R11i.w):(R127i.w)); +R0i.w = ((R9i.x == 0)?(R13i.x):(R125i.w)); +R23i.z = ((R9i.x == 0)?(R3i.z):(backupReg0i)); +PS1i = R23i.z; +// 14 +R123i.x = ((R9i.w == 0)?(0):(R12i.w)); +PV0i.x = R123i.x; +R127i.y = ((R9i.w == 0)?(R17i.x):(R6i.y)); +PV0i.z = R14i.x; +R127i.w = ((R9i.w == 0)?(R17i.z):(R11i.z)); +R125i.x = ((R9i.w == 0)?(R17i.y):(R3i.w)); +PS0i = R125i.x; +// 15 +R13i.x = ((R9i.x == 0)?(PV0i.z):(R126i.w)); +R13i.y = ((R9i.x == 0)?(R124i.x):(R4i.w)); +R13i.z = ((R9i.x == 0)?(R125i.y):(R2i.y)); +R12i.y = ((R9i.x == 0)?(R12i.w):(PV0i.x)); +PS1i = R12i.y; +// 16 +R12i.z = ((R9i.x == 0)?(R13i.w):(R124i.w)); +R12i.w = ((R9i.x == 0)?(R16i.z):(R1i.w)); +PV0i.w = R12i.w; +R13i.w = ((R9i.x == 0)?(R127i.x):(R127i.x)); +PS0i = R13i.w; +// 17 +R17i.x = ((R9i.x == 0)?(R7i.w):(R127i.y)); +R17i.y = ((R9i.x == 0)?(R11i.x):(R125i.x)); +R17i.z = ((R9i.x == 0)?(R3i.z):(R127i.w)); +R10i.w = ((R9i.x == 0)?(R0i.w):(R124i.y)); +PS1i = R10i.w; +// 18 +R123i.z = ((R9i.w == 0)?(R17i.w):(R14i.w)); +PV0i.z = R123i.z; +// 19 +R17i.w = ((R9i.x == 0)?(R3i.y):(PV0i.z)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R12i.x), intBitsToFloat(R12i.y), intBitsToFloat(R12i.z), intBitsToFloat(R12i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R15i.x), intBitsToFloat(R15i.y), intBitsToFloat(R15i.z), intBitsToFloat(R15i.w)); +// export +passParameterSem5 = vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R13i.x), intBitsToFloat(R13i.y), intBitsToFloat(R13i.z), intBitsToFloat(R13i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/961cf134642327cc_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/961cf134642327cc_0000000000000000_vs.txt new file mode 100644 index 00000000..bb09b259 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/961cf134642327cc_0000000000000000_vs.txt @@ -0,0 +1,1849 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader 961cf134642327cc // distant cloud and fog vs +uniform ivec4 uf_remappedVS[68]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +layout(location = 11) in uvec4 attrDataSem11; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem7; +layout(location = 5) out vec4 passParameterSem8; +layout(location = 7) out vec4 passParameterSem11; +layout(location = 8) out vec4 passParameterSem14; +layout(location = 9) out vec4 passParameterSem15; +layout(location = 10) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 6) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R26i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem5.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem11; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R11i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem10; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R10i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem4; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem8; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R10i.z = floatBitsToInt(-(intBitsToFloat(R10i.y)) + 1.0); +R0i.w = 0; +R6i.w = floatBitsToInt(1.0); +PS0i = R6i.w; +// 1 +R15i.w = floatBitsToInt(-(intBitsToFloat(R5i.w)) + intBitsToFloat(uf_remappedVS[0].x)); +R22i.w = floatBitsToInt(-(intBitsToFloat(R10i.x)) + 1.0); +PS1i = R22i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R15i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R23i.x = 0; +R23i.y = 0; +R23i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].y) * intBitsToFloat(0x40a00000)); +R22i.x = 0; +PS0i = R22i.x; +// 1 +R5i.w = R6i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R5i.w = R0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R5i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R4i.w)); +// 1 +R24i.x = floatBitsToInt(float(PS0i)); +PS1i = R24i.x; +// 2 +predResult = (intBitsToFloat(R15i.w) >= intBitsToFloat(R24i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R23i.x = 0; +R23i.y = 0; +R23i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[1].y) * intBitsToFloat(0x40a00000)); +R22i.x = 0; +PS0i = R22i.x; +// 1 +R0i.w = R6i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R0i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(uf_remappedVS[2].y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(uf_remappedVS[2].z))); +PV0i.w = floatBitsToInt(max(intBitsToFloat(R8i.x), 0.0)); +// 1 +PV1i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 0.0)); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedVS[3].w))); +PS1i = R13i.z; +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV1i.z)); +PV0i.x = R0i.x; +R14i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].w) + intBitsToFloat(R15i.w)); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedVS[2].x))); +// 4 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedVS[3].y))); +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(uf_remappedVS[3].z))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedVS[3].y))); +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +R17i.x = ((intBitsToFloat(uf_remappedVS[4].x) == 1.0)?int(0xFFFFFFFF):int(0x0)); +R12i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[4].x)) + 1.0); +// 1 +predResult = (R17i.x != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(R14i.z))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +// 1 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].w), intBitsToFloat(PV0i.x))); +// 2 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].x), intBitsToFloat(PV1i.w))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].y), intBitsToFloat(PV1i.w))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].z), intBitsToFloat(PV1i.w))); +} +activeMaskStack[3] = activeMaskStack[3] == false; +activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true; +if( activeMaskStackC[4] == true ) { +// 0 +tempResultf = log2(abs(intBitsToFloat(uf_remappedVS[4].x))); +PS0i = floatBitsToInt(tempResultf); +// 1 +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f317218)); +tempResultf = log2(intBitsToFloat(uf_remappedVS[4].x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(PS1i))); +R127i.y = ((intBitsToFloat(uf_remappedVS[4].x) == 0.0)?(0xff7fffff):(PV1i.z)); +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(R12i.y)); +PS0i = R127i.z; +// 3 +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + -(1.0)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 5 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +// 6 +PV0i.y = floatBitsToInt(intBitsToFloat(R14i.z) + -(intBitsToFloat(PV1i.z))); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.y))); +// 8 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].w), intBitsToFloat(PV1i.x))); +// 9 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].x), intBitsToFloat(PV0i.w))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].y), intBitsToFloat(PV0i.w))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[5].z), intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = uf_remappedVS[6].x & 0x00020000; +R127i.y = uf_remappedVS[6].x & 0x00010000; +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R8i.z)); +R125i.w = uf_remappedVS[6].x & 0x00040000; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[7].z)); +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * 0.5); +R126i.y = R8i.z; +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[7].x) * intBitsToFloat(PS0i)); +R124i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R8i.y)); +R127i.w = floatBitsToInt(float(PV0i.x)); +PS1i = R127i.w; +// 2 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PV1i.z))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.z) > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z)))); +PV0i.z = R127i.z; +R126i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.x = floatBitsToInt(float(R127i.y)); +PS0i = R127i.x; +// 3 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(R127i.w))?1.0:0.0); +R127i.y = ((intBitsToFloat(PV0i.z) > 1.0)?int(0xFFFFFFFF):int(0x0)); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + -(intBitsToFloat(PV1i.x))); +R123i.y = ((PV1i.y == 0)?(R127i.z):(PS1i)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(R127i.x))?1.0:0.0); +R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3fc90fdb)); +PS0i = floatBitsToInt(float(R125i.w)); +// 5 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt(min(intBitsToFloat(PV0i.y), 1.0)); +R125i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R125i.w; +// 6 +R124i.x = floatBitsToInt(((R127i.y == 0)?(intBitsToFloat(R127i.w)):(-(intBitsToFloat(R127i.w))))); +R125i.y = ((R127i.y == 0)?(0):(R126i.w)); +R126i.z = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(1.0))); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R125i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R125i.x; +// 7 +backupReg0i = R126i.y; +backupReg1i = R124i.w; +R127i.x = R8i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +PV1i.y = R126i.y; +PV1i.z = 0 - R125i.w; +R124i.w = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg1i) * 0.5); +PS1i = R127i.z; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(0x3edcf805) * intBitsToFloat(PV1i.y) + 1.0)); +PV0i.x = R123i.x; +R127i.y = max(R125i.w, PV1i.z); +R123i.z = floatBitsToInt((intBitsToFloat(0x3d6ee04d) * intBitsToFloat(PV1i.y) + intBitsToFloat(0x3f43b24e))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R8i.z)); +R0i.x = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5)); +R0i.x = floatBitsToInt(intBitsToFloat(R0i.x) * 2.0); +PS0i = R0i.x; +// 9 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +R127i.x = 0 - R125i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.z)) + 1.0)); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +R127i.w = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.z)), intBitsToFloat(PV0i.x))); +R124i.z = int(intBitsToFloat(backupReg1i)); +PS1i = R124i.z; +// 10 +R126i.x = R8i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R126i.y = floatBitsToInt((intBitsToFloat(uf_remappedVS[7].x) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(R124i.w))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(R124i.w) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(uf_remappedVS[7].x))?1.0:0.0); +R124i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +R12i.z = max(R125i.x, R127i.x); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R0i.z = floatBitsToInt(intBitsToFloat(R125i.w) * 0.5); +PS1i = R0i.z; +// 12 +R125i.x = floatBitsToInt(intBitsToFloat(R126i.y) + -(intBitsToFloat(PV1i.x))); +R0i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(0.5)); +R0i.y = floatBitsToInt(intBitsToFloat(R0i.y) * 2.0); +R123i.z = ((intBitsToFloat(R126i.z) > 0.0)?(PV1i.w):(floatBitsToInt(-(intBitsToFloat(PV1i.w))))); +PV0i.z = R123i.z; +PV0i.w = 0 - R124i.z; +R127i.x = floatBitsToInt(float(R127i.y)); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +PS0i = R127i.x; +// 13 +backupReg0i = R125i.y; +backupReg1i = R125i.z; +PV1i.x = floatBitsToInt((intBitsToFloat(R125i.z) > 0.0)?1.0:0.0); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg0i))); +PV1i.y = R125i.y; +R125i.z = floatBitsToInt(floor(intBitsToFloat(R126i.x))); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(backupReg1i))?1.0:0.0); +R126i.x = max(R124i.z, PV0i.w); +PS1i = R126i.x; +// 14 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PV1i.y))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.y) > 0.0)?1.0:0.0); +R124i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +R6i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.x)), intBitsToFloat(R124i.y))); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.z) + -(0.5)); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +PS0i = R0i.w; +// 15 +R12i.x = floatBitsToInt(intBitsToFloat(R8i.y) + -(0.5)); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(R125i.z))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(R125i.z) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(float(R12i.z)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 16 +backupReg0i = R124i.z; +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.w)); +R124i.z = ((intBitsToFloat(uf_remappedVS[7].x) == 0.0)?int(0xFFFFFFFF):int(0x0)); +R7i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(backupReg0i))); +PS0i = floatBitsToInt(float(R126i.x)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 17 +PV1i.x = ((0.0 > intBitsToFloat(uf_remappedVS[7].z))?int(0xFFFFFFFF):int(0x0)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fc90fdb)); +R12i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(PV0i.x))); +R12i.w = floatBitsToInt(intBitsToFloat(R8i.x) + -(0.5)); +R13i.x = floatBitsToInt(intBitsToFloat(R8i.z) + -(0.5)); +PS1i = R13i.x; +// 18 +backupReg0i = R124i.z; +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.y) + -(intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(0x3fc90fdb)); +R124i.z = ((intBitsToFloat(uf_remappedVS[7].z) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +tempResultf = log2(intBitsToFloat(uf_remappedVS[4].x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 19 +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(R13i.z))); +PV1i.y = uf_remappedVS[8].y; +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +R123i.z = ((PV0i.w == 0)?(PV0i.x):(0x40490fdb)); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.z), intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt(1.0 / intBitsToFloat(R12i.y)); +PS1i = R125i.z; +// 20 +R16i.x = 0x3f800000; +R12i.y = ((R124i.z == 0)?(PV1i.z):(R125i.y)); +PV0i.z = uf_remappedVS[8].x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 21 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV0i.z)); +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), intBitsToFloat(PV0i.w))); +R14i.w = floatBitsToInt(intBitsToFloat(R8i.x) + 1.0); +R7i.x = floatBitsToInt(intBitsToFloat(R8i.y) + 1.0); +PS1i = R7i.x; +// 22 +backupReg0i = R14i.x; +R14i.x = floatBitsToInt(intBitsToFloat(R8i.z) + 1.0); +R7i.y = ((intBitsToFloat(R15i.w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R13i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(R125i.z)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(uf_remappedVS[9].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[9].y))); +R126i.z = ((intBitsToFloat(uf_remappedVS[10].w) == 1.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[10].w)) + 1.0); +tempResultf = log2(intBitsToFloat(uf_remappedVS[10].w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 1 +R125i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[10].y) + intBitsToFloat(PV0i.y)); +PV1i.x = R125i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(uf_remappedVS[9].z))); +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[10].x)); +PV1i.z = R125i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS0i))); +R124i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +PS1i = R124i.z; +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R7i.w))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(uf_remappedVS[11].y))); +R127i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[10].z) + intBitsToFloat(PV1i.y)); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R6i.w))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R124i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0i.x)); +R125i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R12i.z))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.w), intBitsToFloat(uf_remappedVS[11].x))); +// 4 +R125i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(R124i.z)); +R127i.z = floatBitsToInt(intBitsToFloat(PS1i) + 0.0); +R127i.w = floatBitsToInt(intBitsToFloat(R125i.y) + 0.0); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(uf_remappedVS[11].z))); +// 5 +R123i.x = ((R126i.z == 0)?(PV0i.y):(R15i.w)); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(intBitsToFloat(PS0i) + 0.0); +R126i.z = ((R17i.x == 0)?(R13i.w):(R14i.z)); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.w), intBitsToFloat(uf_remappedVS[12].x))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(uf_remappedVS[12].x))); +PS1i = R126i.y; +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PV1i.z))); +PS0i = R125i.z; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R126i.z))); +R125i.y = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV0i.y)); +PS1i = R125i.y; +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R125i.z)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R12i.y)); +R125i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV1i.w)); +PS0i = R125i.z; +// 9 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R125i.y))); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.w = R123i.w; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV0i.z))); +PS1i = R125i.y; +// 10 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R125i.z))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.w = R123i.w; +R124i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(PV1i.z)); +PS0i = R124i.x; +// 11 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983)); +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983)); +PV1i.z = R125i.z; +R124i.w = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R125i.y)); +R126i.z = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(PV0i.y)); +PS1i = R126i.z; +// 12 +backupReg0i = R7i.y; +R125i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983)); +PV0i.x = R125i.x; +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.x), intBitsToFloat(uf_remappedVS[12].x))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R24i.x), intBitsToFloat(uf_remappedVS[13].w))); +R4i.w = ((backupReg0i == 0)?(R15i.w):(0x3f800000)); +R127i.x = floatBitsToInt(cos((intBitsToFloat(PV1i.z))/0.1591549367)); +PS0i = R127i.x; +// 13 +R5i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.w),intBitsToFloat(R126i.z),intBitsToFloat(R16i.x)))); +PV1i.x = R5i.x; +PV1i.y = R5i.x; +PV1i.z = R5i.x; +PV1i.w = R5i.x; +R127i.w = floatBitsToInt(sin((intBitsToFloat(PV0i.x))/0.1591549367)); +PS1i = R127i.w; +// 14 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(sin((intBitsToFloat(R125i.z))/0.1591549367)); +PS0i = R127i.y; +// 15 +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.w))); +R125i.z = floatBitsToInt(cos((intBitsToFloat(R125i.x))/0.1591549367)); +PS1i = R125i.z; +// 16 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PV0i.x = R125i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(sin((intBitsToFloat(R126i.x))/0.1591549367)); +PS0i = R125i.y; +// 17 +backupReg0i = R126i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R125i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.z))); +R1i.w = floatBitsToInt(-(intBitsToFloat(PS0i))); +R126i.x = floatBitsToInt(cos((intBitsToFloat(backupReg0i))/0.1591549367)); +PS1i = R126i.x; +// 18 +backupReg0i = R127i.w; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R1i.y = floatBitsToInt(-(intBitsToFloat(R124i.y)) + intBitsToFloat(PV1i.z)); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.w = R127i.w; +R4i.y = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV1i.y)); +PS0i = R4i.y; +// 19 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R126i.x))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R15i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R124i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R15i.x))); +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R126i.x))); +PS1i = R14i.x; +// 20 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R15i.x))); +R9i.y = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z)); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 21 +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.w),intBitsToFloat(R126i.z),intBitsToFloat(R16i.x)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R12i.y = tempi.x; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.w))); +PS1i = R125i.z; +// 22 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R4i.x)) + intBitsToFloat(R127i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R14i.x)) + intBitsToFloat(backupReg0i))); +PV0i.y = R123i.y; +// 23 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.w),intBitsToFloat(R126i.z),intBitsToFloat(R16i.x)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.y))); +PS1i = R122i.x; +// 24 +R0i.x = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R126i.x)); +PV0i.x = R0i.x; +R0i.y = floatBitsToInt(intBitsToFloat(R12i.y) + intBitsToFloat(R125i.z)); +PV0i.y = R0i.y; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PS1i)); +PV0i.z = R2i.z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 25 +backupReg0i = R7i.y; +backupReg1i = R4i.w; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R127i.w))); +R7i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(backupReg0i)); +R0i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R126i.y)); +R4i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R126i.w)); +R3i.z = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(PS0i)); +R3i.z = clampFI32(R3i.z); +PS1i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(R0i.z)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R1i.y))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.w)) + intBitsToFloat(R3i.x))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R14i.x)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R2i.w = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV0i.x)); +// 2 +R18i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.x)) + intBitsToFloat(R127i.w))); +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x))); +R13i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R9i.y)) + intBitsToFloat(PV1i.z))); +// 3 +predResult = (intBitsToFloat(uf_remappedVS[14].y) != 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +PV0i.x = uf_remappedVS[15].w; +PV0i.y = uf_remappedVS[16].w; +// 1 +R127i.x = floatBitsToInt(-(intBitsToFloat(R0i.x)) + intBitsToFloat(PV0i.y)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(PV0i.x)); +PV1i.w = uf_remappedVS[17].w; +R126i.y = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[14].y)); +PS1i = R126i.y; +// 2 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.w)); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(R126i.y)); +PV1i.x = clampFI32(PV1i.x); +// 6 +backupReg0i = R3i.z; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[16].w) + intBitsToFloat(uf_remappedVS[15].w)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(backupReg0i)); +R1i.w = 0x3f800000; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R14i.y)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(uf_remappedVS[17].w)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_remappedVS[18].w))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(uf_remappedVS[18].z))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +// 2 +PV0i.x = ((0.0 > intBitsToFloat(PV1i.w))?int(0xFFFFFFFF):int(0x0)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[0].x), intBitsToFloat(uf_remappedVS[13].x))); +PV0i.y = R126i.y; +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3dd70a3d)); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.w)), intBitsToFloat(PV1i.w))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R127i.y)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[13].z), intBitsToFloat(uf_remappedVS[18].w))); +R0i.w = ((PV0i.x == 0)?(PS0i):(PV0i.w)); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[13].y), intBitsToFloat(uf_remappedVS[18].z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.y)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +// 6 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +// 7 +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.w = R123i.w; +// 8 +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983)); +PV0i.z = R127i.z; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.z))/0.1591549367)); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R126i.z))); +PS0i = floatBitsToInt(cos((intBitsToFloat(R127i.z))/0.1591549367)); +// 11 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS0i))); +R1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.x))/0.1591549367)); +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R126i.y))); +R2i.w = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(PV1i.x)); +// 13 +R2i.z = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.x)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R5i.x) + -(intBitsToFloat(uf_remappedVS[19].x))); +R126i.y = floatBitsToInt(intBitsToFloat(R12i.y) + -(intBitsToFloat(uf_remappedVS[19].y))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(uf_remappedVS[20].w))); +// 1 +PV1i.z = floatBitsToInt(intBitsToFloat(R9i.z) + -(intBitsToFloat(uf_remappedVS[19].z))); +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 3 +R0i.y = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R0i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(uf_remappedVS[21].x))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[12].y), intBitsToFloat(R0i.z))); +R126i.z = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[21].y))); +R0i.w = ((intBitsToFloat(backupReg0i) > intBitsToFloat(uf_remappedVS[21].x))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = R0i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[21].x)); +// 1 +backupReg0i = R1i.w; +backupReg0i = R1i.w; +R0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +R1i.w = ((PV0i.w == 0)?(backupReg0i):(backupReg0i)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[21].y)); +// 2 +R1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[20].x), intBitsToFloat(R0i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[20].z), intBitsToFloat(R0i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[20].y), intBitsToFloat(R0i.y))); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV0i.z))); +R6i.w = 0x3f800000; +PS1i = R6i.w; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV1i.y)); +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(PV0i.y)); +R0i.y = uf_remappedVS[22].x; +R126i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.x)); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.z)); +// 4 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(backupReg0i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(backupReg0i))); +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.y))); +PS0i = R127i.x; +// 5 +backupReg0i = R126i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV0i.z)); +R126i.y = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV0i.w)); +R126i.z = floatBitsToInt(intBitsToFloat(R12i.y) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.y))); +PS1i = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV0i.x)); +// 6 +R2i.x = ((R0i.w == 0)?(PV1i.x):(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV1i.w)); +R1i.z = uf_remappedVS[22].y; +PV0i.w = floatBitsToInt(intBitsToFloat(R12i.y) + intBitsToFloat(R127i.x)); +R2i.z = uf_remappedVS[22].z; +PS0i = R2i.z; +// 7 +R0i.x = uf_remappedVS[23].x; +R4i.y = ((R0i.w == 0)?(R126i.z):(PV0i.w)); +R4i.z = ((R0i.w == 0)?(R126i.y):(PV0i.y)); +R0i.w = uf_remappedVS[24].x; +R1i.x = uf_remappedVS[24].y; +PS1i = R1i.x; +// 8 +R2i.w = uf_remappedVS[24].z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R24i.x)); +// 9 +R5i.z = uf_remappedVS[25].z; +R5i.w = uf_remappedVS[25].w; +R3i.z = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +PS1i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[26].x),intBitsToFloat(uf_remappedVS[26].y),intBitsToFloat(uf_remappedVS[26].z),intBitsToFloat(uf_remappedVS[26].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R6i.z = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[27].x),intBitsToFloat(uf_remappedVS[27].y),intBitsToFloat(uf_remappedVS[27].z),intBitsToFloat(uf_remappedVS[27].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.y = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[28].x),intBitsToFloat(uf_remappedVS[28].y),intBitsToFloat(uf_remappedVS[28].z),intBitsToFloat(uf_remappedVS[28].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.w = tempi.x; +// 3 +R12i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(uf_remappedVS[29].x),intBitsToFloat(uf_remappedVS[29].y),intBitsToFloat(uf_remappedVS[29].z),intBitsToFloat(uf_remappedVS[29].w)))); +PV1i.x = R12i.x; +PV1i.y = R12i.x; +PV1i.z = R12i.x; +PV1i.w = R12i.x; +// 4 +backupReg0i = R0i.y; +R6i.x = floatBitsToInt((intBitsToFloat(R4i.w) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.x = R6i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[30].x))); +PV0i.z = PV1i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedVS[30].y))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedVS[30].z))); +PS0i = R1i.z; +// 5 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(uf_remappedVS[30].w))); +R123i.y = floatBitsToInt((intBitsToFloat(R4i.w) * 0.0 + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R7i.w = floatBitsToInt((intBitsToFloat(R4i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PV1i.w = R7i.w; +R3i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R3i.w; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +R7i.y = floatBitsToInt((intBitsToFloat(R6i.z) * 0.5 + intBitsToFloat(PV1i.y))); +R7i.z = floatBitsToInt((intBitsToFloat(R5i.y) * -(0.5) + intBitsToFloat(PV1i.y))); +// 7 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedVS[1].w)) + -(intBitsToFloat(uf_remappedVS[1].y)))); +PV1i.z = R123i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedVS[28].x),intBitsToFloat(uf_remappedVS[28].y),intBitsToFloat(uf_remappedVS[28].z),intBitsToFloat(uf_remappedVS[28].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 9 +R0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[1].z)) * intBitsToFloat(PS0i)); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R12i.y),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedVS[29].x),intBitsToFloat(uf_remappedVS[29].y),intBitsToFloat(uf_remappedVS[29].z),intBitsToFloat(uf_remappedVS[29].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 11 +PV1i.y = PV0i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +R123i.w = floatBitsToInt((intBitsToFloat(R127i.w) * 0.0 + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 12 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * 0.5 + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 13 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[1].w), intBitsToFloat(PV1i.y))); +// 15 +PV1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[1].y)) + intBitsToFloat(PV0i.x)); +// 16 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 17 +R3i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[1].z)) * intBitsToFloat(PS0i)); +// 18 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedVS[31].y))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(uf_remappedVS[31].x))); +R2i.z = ((intBitsToFloat(R8i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(uf_remappedVS[31].z))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(uf_remappedVS[32].x))); +PV0i.y = floatBitsToInt((intBitsToFloat(uf_remappedVS[33].w) > 0.0)?1.0:0.0); +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedVS[32].x))); +R10i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedVS[32].x))); +PS0i = floatBitsToInt((0.0 > intBitsToFloat(uf_remappedVS[33].w))?1.0:0.0); +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PS0i))); +PV1i.x = R127i.x; +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[32].x), intBitsToFloat(R1i.y))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[32].x), intBitsToFloat(R1i.x))); +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[32].x), intBitsToFloat(R0i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[33].w)); +// 2 +PV0i.x = uf_remappedVS[6].x & 0x00080000; +R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i)); +R127i.w = ((R2i.z == 0)?(R10i.x):(R22i.w)); +PS0i = uf_remappedVS[6].x & 0x00100000; +// 3 +PV1i.x = (PV0i.x == 0x00080000)?int(0xFFFFFFFF):int(0x0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(uf_remappedVS[34].x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R126i.z = (PS0i == 0x00100000)?int(0xFFFFFFFF):int(0x0); +PV1i.w = ((intBitsToFloat(R8i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS1i = uf_remappedVS[6].x & 0x00200000; +// 4 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +R123i.y = ((PV1i.w == 0)?(R10i.y):(R10i.z)); +PV0i.y = R123i.y; +R1i.z = ((PV1i.x == 0)?(R10i.x):(R127i.w)); +R127i.w = (PS1i == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PS0i = ((intBitsToFloat(R8i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.x))); +R1i.y = ((R126i.z == 0)?(R10i.y):(PV0i.y)); +R123i.z = ((PS0i == 0)?(R10i.x):(R22i.w)); +PV1i.z = R123i.z; +PV1i.w = uf_remappedVS[6].x & 0x00400000; +PS1i = ((intBitsToFloat(R8i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 6 +R1i.x = ((R127i.w == 0)?(R10i.x):(PV1i.z)); +R123i.y = ((PS1i == 0)?(R10i.y):(R10i.z)); +PV0i.y = R123i.y; +PV0i.z = (PV1i.w == 0x00400000)?int(0xFFFFFFFF):int(0x0); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.x))); +// 7 +R2i.z = uf_remappedVS[6].x & 0x00800000; +R1i.w = ((PV0i.z == 0)?(R10i.y):(PV0i.y)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[35].w)) + intBitsToFloat(uf_remappedVS[36].w)); +R126i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(uf_remappedVS[36].w))); +PV0i.y = R126i.y; +R126i.z = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(uf_remappedVS[35].w))); +PV0i.z = R126i.z; +// 1 +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[35].x)) + intBitsToFloat(uf_remappedVS[36].x)); +R127i.z = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R127i.z; +R127i.w = (R2i.z == 0x00800000)?int(0xFFFFFFFF):int(0x0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(PS1i)); +R126i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[36].x)) + intBitsToFloat(uf_remappedVS[37].x)); +PS0i = ((intBitsToFloat(R8i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + -(intBitsToFloat(uf_remappedVS[37].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(uf_remappedVS[35].x))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); +R123i.w = ((PS0i == 0)?(R10i.x):(R22i.w)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[35].x), intBitsToFloat(PV0i.y))); +// 4 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z)) + intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[36].w)) + intBitsToFloat(uf_remappedVS[37].w)); +R0i.z = ((R127i.w == 0)?(R10i.x):(PV1i.w)); +R127i.w = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.w = R127i.w; +PS0i = ((intBitsToFloat(R8i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PV1i.y = uf_remappedVS[6].x & 0x01000000; +R127i.z = ((PS0i == 0)?(R10i.y):(R10i.z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +PV0i.z = (PV1i.y == 0x01000000)?int(0xFFFFFFFF):int(0x0); +PV0i.w = uf_remappedVS[6].y & int(1); +// 7 +R10i.x = (int(1) != PV0i.w)?int(0xFFFFFFFF):int(0x0); +R0i.y = ((PV0i.z == 0)?(R10i.y):(R127i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(uf_remappedVS[36].x))); +PV1i.w = R123i.w; +// 8 +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R127i.y)) + intBitsToFloat(R126i.x))); +PV0i.w = R123i.w; +// 9 +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[37].x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedVS[31].w))); +PS0i = int(intBitsToFloat(uf_remappedVS[38].z)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[39].z) + intBitsToFloat(uf_remappedVS[40].x)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(uf_remappedVS[40].x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(uf_remappedVS[40].y))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[39].w) + intBitsToFloat(uf_remappedVS[40].y)); +R127i.y = floatBitsToInt(float(PS0i)); +PS1i = R127i.y; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PV0i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),intBitsToFloat(uf_remappedVS[39].x)) + -(intBitsToFloat(PV0i.w)))); +R127i.z = ((intBitsToFloat(PV0i.z) == 0.0)?(0):(PV0i.y)); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[39].y)) + intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[38].z)); +// 4 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[38].x), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)); +R126i.z = ((R10i.x == 0)?(0):(int(1))); +PV0i.z = R126i.z; +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[38].w)); +// 5 +R123i.x = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +PV1i.x = R123i.x; +R125i.y = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[38].y), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PV0i.x)) + -(0.5))); +PS1i = int(intBitsToFloat(PV0i.w)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[41].x) + intBitsToFloat(uf_remappedVS[41].z)); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[41].y) + intBitsToFloat(uf_remappedVS[41].w)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PV1i.z)) + -(0.5))); +R123i.w = ((intBitsToFloat(R127i.y) == 0.0)?(0):(PV1i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 7 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(uf_remappedVS[41].z)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(uf_remappedVS[41].w)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w))); +PV1i.w = (R126i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +PS1i = int(intBitsToFloat(PV0i.w)); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[40].w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[40].z)) + intBitsToFloat(PV1i.x))); +R123i.z = ((PV1i.w == 0)?(R8i.x):(R8i.z)); +PV0i.z = R123i.z; +R123i.w = ((PV1i.w == 0)?(R8i.y):(R8i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 9 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R125i.z)) + -(intBitsToFloat(R127i.z)))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.y))); +PV1i.y = R123i.y; +R123i.z = ((R125i.y == 0)?(PV0i.z):(R8i.y)); +PV1i.z = R123i.z; +R123i.w = ((R125i.y == 0)?(PV0i.w):(R8i.z)); +PV1i.w = R123i.w; +R127i.x = ((R125i.y == 0)?(R8i.x):(R8i.y)); +PS1i = R127i.x; +// 10 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[42].x), intBitsToFloat(PV1i.z))); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[42].y), intBitsToFloat(PV1i.w))); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +R127i.w = ((R125i.y == 0)?(R8i.y):(R8i.z)); +PS0i = int(intBitsToFloat(uf_remappedVS[43].z)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[44].z) + intBitsToFloat(uf_remappedVS[42].x)); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[44].w) + intBitsToFloat(uf_remappedVS[42].y)); +R126i.w = ((R10i.x == 0)?(0):(0x00000002)); +R127i.y = floatBitsToInt(float(PS0i)); +PS1i = R127i.y; +// 12 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y)); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PV0i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),intBitsToFloat(uf_remappedVS[44].x)) + -(intBitsToFloat(PV0i.w)))); +R127i.z = ((intBitsToFloat(PV0i.z) == 0.0)?(0):(PV0i.y)); +PV1i.z = R127i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[44].y)) + intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[43].z)); +// 14 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[43].x), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)); +R126i.z = (R126i.w == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[43].w)); +// 15 +R123i.x = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +PV1i.x = R123i.x; +R125i.y = (R126i.w == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[43].y), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PV0i.x)) + -(0.5))); +PS1i = int(intBitsToFloat(PV0i.w)); +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[45].x) + intBitsToFloat(uf_remappedVS[45].z)); +PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[45].y) + intBitsToFloat(uf_remappedVS[45].w)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(PV1i.z)) + -(0.5))); +R123i.w = ((intBitsToFloat(R127i.y) == 0.0)?(0):(PV1i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[45].w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[45].z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R127i.w = ((R125i.y == 0)?(R8i.x):(R8i.z)); +PS1i = int(intBitsToFloat(PV0i.w)); +// 18 +backupReg0i = R125i.y; +backupReg0i = R125i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[42].w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[42].z)) + intBitsToFloat(PV1i.z))); +R123i.z = ((backupReg0i == 0)?(R8i.z):(R8i.y)); +PV0i.z = R123i.z; +R123i.w = ((backupReg0i == 0)?(R8i.y):(R8i.x)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 19 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R125i.z)) + -(intBitsToFloat(R127i.y)))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.y))); +PV1i.y = R123i.y; +R123i.z = ((R126i.z == 0)?(R127i.w):(R8i.y)); +PV1i.z = R123i.z; +R127i.w = ((R126i.z == 0)?(PV0i.w):(R8i.z)); +R0i.w = ((R126i.z == 0)?(PV0i.z):(R8i.x)); +PS1i = R0i.w; +// 20 +R10i.x = ((R126i.z == 0)?(R8i.y):(R8i.z)); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y))); +R1i.z = ((R126i.z == 0)?(R8i.x):(R8i.y)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[46].x), intBitsToFloat(PV1i.z))); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) * 2.0); +PS0i = int(intBitsToFloat(uf_remappedVS[47].z)); +// 21 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[46].y), intBitsToFloat(R127i.w))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +R6i.y = floatBitsToInt(intBitsToFloat(R124i.y) + 0.5); +PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[48].z) + intBitsToFloat(uf_remappedVS[46].x)); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[48].w) + intBitsToFloat(uf_remappedVS[46].y)); +R1i.w = floatBitsToInt(float(PS0i)); +PS1i = R1i.w; +// 22 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.z)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 23 +R8i.x = ((intBitsToFloat(PV0i.w) == 0.0)?(0):(PV0i.x)); +PV1i.x = R8i.x; +R2i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),intBitsToFloat(uf_remappedVS[48].x)) + -(intBitsToFloat(PV0i.y)))); +PV1i.z = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[48].y)) + intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[47].z)); +// 24 +R3i.x = floatBitsToInt(intBitsToFloat(R125i.x) + 0.5); +R8i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[47].x), intBitsToFloat(PS1i))); +R8i.w = floatBitsToInt(abs(intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.x)); +R1i.y = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedVS[47].w)); +PS0i = R1i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[47].y), intBitsToFloat(R1i.y))); +PV0i.x = R125i.x; +R1i.y = floatBitsToInt(intBitsToFloat(R10i.y) + 0.5); +R123i.z = ((-(intBitsToFloat(R8i.x)) > 0.0)?(R8i.w):(R8i.x)); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R8i.z)) + -(0.5))); +PS0i = int(intBitsToFloat(R8i.y)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[49].y) + intBitsToFloat(uf_remappedVS[49].z)); +R123i.y = ((intBitsToFloat(R1i.w) == 0.0)?(0):(PV0i.z)); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + -(0.5))); +R6i.w = floatBitsToInt(intBitsToFloat(R1i.x) + 0.5); +PS1i = floatBitsToInt(float(PS0i)); +// 2 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[49].z),intBitsToFloat(R0i.w)) + intBitsToFloat(PV1i.x))); +R124i.y = floatBitsToInt(intBitsToFloat(R3i.y) + -(intBitsToFloat(uf_remappedVS[50].x))); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PS1i)) + intBitsToFloat(R2i.w))); +R126i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[50].x)) + intBitsToFloat(uf_remappedVS[50].y)); +PS0i = int(intBitsToFloat(PV1i.y)); +// 3 +R1i.x = floatBitsToInt(intBitsToFloat(R3i.z) + 0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedVS[51].y) + intBitsToFloat(uf_remappedVS[51].w)); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[51].x) + intBitsToFloat(uf_remappedVS[51].z)); +PS1i = floatBitsToInt(float(PS0i)); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[51].w),intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PS1i)) + intBitsToFloat(R2i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[51].z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[49].x)) + intBitsToFloat(R125i.x))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 5 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[46].z)) + intBitsToFloat(PV0i.z))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),intBitsToFloat(uf_remappedVS[46].w)) + intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.z = R123i.z; +R1i.w = floatBitsToInt(intBitsToFloat(R124i.y) * intBitsToFloat(PS0i)); +R1i.w = clampFI32(R1i.w); +R126i.z = floatBitsToInt(intBitsToFloat(R3i.y) + -(intBitsToFloat(uf_remappedVS[50].z))); +PS1i = R126i.z; +// 6 +PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[50].z)) + intBitsToFloat(uf_remappedVS[50].w)); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z))); +R125i.w = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[52].w))); +// 7 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[52].x)) + intBitsToFloat(uf_remappedVS[53].x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 8 +R125i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +PV0i.x = R125i.x; +R124i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[52].w)) + intBitsToFloat(uf_remappedVS[53].w)); +R1i.z = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[53].w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +PV0i.w = clampFI32(PV0i.w); +// 9 +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[53].x)) + intBitsToFloat(uf_remappedVS[54].x)); +R2i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PV1i.z = R2i.z; +R126i.z = floatBitsToInt(sin((intBitsToFloat(PV0i.x))/0.1591549367)); +PS1i = R126i.z; +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R127i.w))); +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV1i.z))); +R8i.z = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[54].w))); +R126i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[53].w)) + intBitsToFloat(uf_remappedVS[54].w)); +PS0i = floatBitsToInt(cos((intBitsToFloat(R125i.x))/0.1591549367)); +// 11 +R124i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[54].x)) + intBitsToFloat(uf_remappedVS[55].x)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R125i.x = floatBitsToInt(1.0 / intBitsToFloat(R124i.y)); +PS1i = R125i.x; +// 12 +backupReg0i = R126i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV1i.w)) + -(intBitsToFloat(R125i.z)))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[54].w)) + intBitsToFloat(uf_remappedVS[55].w)); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[55].w))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +// 13 +R5i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(R125i.x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 14 +R4i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(uf_remappedVS[53].x))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedVS[52].x))); +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.x) * intBitsToFloat(PS1i)); +// 15 +R124i.x = ((intBitsToFloat(R1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R127i.y = ((intBitsToFloat(R125i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(uf_remappedVS[54].x))); +R127i.w = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[56].w))); +PV1i.w = R127i.w; +R125i.w = ((intBitsToFloat(R8i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.w; +// 16 +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[55].x)) + intBitsToFloat(uf_remappedVS[56].x)); +R125i.y = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R125i.y; +R124i.z = ((intBitsToFloat(R126i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R124i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +// 17 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PV1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[55].w)) + intBitsToFloat(uf_remappedVS[56].w)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PS1i = R124i.w; +// 18 +backupReg0i = R125i.w; +R124i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)) + 1.0); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV1i.z))); +R124i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[56].x)) + intBitsToFloat(uf_remappedVS[57].x)); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 19 +PV1i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[56].w)) + intBitsToFloat(uf_remappedVS[57].w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R127i.z = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[57].w))); +PV1i.z = R127i.z; +R8i.w = 0; +// 20 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV1i.y)) + intBitsToFloat(uf_remappedVS[55].x))); +R127i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R127i.y; +R126i.w = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[58].w))); +PV0i.w = R126i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 21 +R127i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[57].x)) + intBitsToFloat(uf_remappedVS[58].x)); +R124i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R124i.y; +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PV1i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS0i)); +// 22 +PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(uf_remappedVS[59].w))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedVS[56].x))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.z))); +// 23 +R8i.x = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R8i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[57].w)) + intBitsToFloat(uf_remappedVS[58].w)); +// 24 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R124i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[58].x)) + intBitsToFloat(uf_remappedVS[59].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 25 +PV1i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[58].w)) + intBitsToFloat(uf_remappedVS[59].w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.x))); +// 26 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(uf_remappedVS[57].x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[52].x), intBitsToFloat(R124i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 27 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.w = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS0i)); +// 28 +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedVS[58].x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 29 +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.w))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(min(intBitsToFloat(uf_remappedVS[19].y), intBitsToFloat(uf_remappedVS[60].z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(R1i.z))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[19].x) + -(intBitsToFloat(R2i.x))); +R125i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[19].y) + -(intBitsToFloat(R4i.y))); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R0i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(uf_remappedVS[61].x)) + -(intBitsToFloat(uf_remappedVS[61].y)))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R124i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[19].z) + -(intBitsToFloat(R4i.z))); +PV1i.z = R124i.z; +PV1i.w = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(PV0i.x)); +// 2 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(uf_remappedVS[62].x)) + -(intBitsToFloat(uf_remappedVS[62].y)))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[60].y),intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedVS[60].x))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PV1i.z)); +// 3 +backupReg0i = R3i.z; +R123i.x = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(R125i.w) + intBitsToFloat(PS0i))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedVS[63].w))); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 4 +R126i.x = floatBitsToInt((intBitsToFloat(uf_remappedVS[64].y) * 1.0 + intBitsToFloat(R0i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[61].w), intBitsToFloat(PS1i))); +R125i.z = floatBitsToInt((intBitsToFloat(R126i.z) * intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(uf_remappedVS[64].y) + 1.0); +tempResultf = log2(intBitsToFloat(PV1i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[65].x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * 1.5); +PV1i.y = clampFI32(PV1i.y); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[65].y), intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 6 +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x41700000)); +R2i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS1i)),intBitsToFloat(uf_remappedVS[66].w)) + intBitsToFloat(uf_remappedVS[66].w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(R125i.z)); +PS0i = floatBitsToInt(tempResultf); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.z))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(uf_remappedVS[64].x),intBitsToFloat(uf_remappedVS[64].y),intBitsToFloat(uf_remappedVS[64].z),0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PS0i = R0i.y; +// 9 +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.z = R127i.z; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedVS[65].z)),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedVS[65].z))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.z = R123i.z; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -0.0); +PV1i.x = clampFI32(PV1i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(0xbe593484))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.y = floatBitsToInt(max(intBitsToFloat(PV1i.z), intBitsToFloat(0x3e4ccccd))); +R4i.z = PV1i.x; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R8i.z = PV1i.x; +PS0i = R8i.z; +// 13 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.w))) + 1.0)); +R2i.y = floatBitsToInt(min(intBitsToFloat(PV0i.y), 1.0)); +R4i.y = uf_remappedVS[1].y; +PS1i = R4i.y; +} +if( activeMaskStackC[3] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R0i.xy)).xyz); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R2i.y))); +R18i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[59].x),intBitsToFloat(R8i.x)) + intBitsToFloat(R3i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R2i.y))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R2i.y))); +// 1 +backupReg0i = R2i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(R3i.w)); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[12].w), intBitsToFloat(R5i.z))); +R2i.z = 0; +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[12].w), intBitsToFloat(R5i.w))); +R126i.y = ((0.0 >= intBitsToFloat(backupReg0i))?int(0xFFFFFFFF):int(0x0)); +PS1i = R126i.y; +// 2 +R8i.x = floatBitsToInt(intBitsToFloat(R4i.y) * intBitsToFloat(0x40a00000)); +R4i.y = 0; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.w = ((0.0 >= intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0)); +R1i.w = 0; +PS0i = R1i.w; +// 3 +R1i.x = ((R126i.y == 0)?(PV0i.w):(int(-1))); +PV1i.x = R1i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R24i.x = 0; +PS1i = R24i.x; +// 4 +R10i.x = R18i.x; +R2i.y = R13i.y; +R0i.z = R13i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R0i.w = ((PV1i.x == 0)?(R6i.z):(R4i.y)); +PS0i = R0i.w; +// 5 +R0i.x = ((R1i.x == 0)?(R5i.y):(R1i.w)); +R10i.y = ((R1i.x == 0)?(R4i.w):(R8i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(0x40200000)); +R4i.w = ((R1i.x == 0)?(R22i.z):(R22i.z)); +R13i.x = ((R1i.x == 0)?(R12i.x):(R12i.x)); +PS1i = R13i.x; +// 6 +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3daaaaab)); +R12i.y = ((R1i.x == 0)?(0):(0x3f800000)); +PV0i.y = R12i.y; +R6i.z = ((R1i.x == 0)?(R18i.y):(R18i.y)); +R123i.w = ((R1i.x == 0)?(0):(R2i.w)); +PV0i.w = R123i.w; +R126i.y = ((R1i.x == 0)?(0):(R4i.z)); +PS0i = R126i.y; +// 7 +R14i.x = ((PV0i.y == 0)?(R2i.w):(PV0i.w)); +R123i.y = ((R1i.x == 0)?(0):(R8i.w)); +PV1i.y = R123i.y; +R123i.z = ((R1i.x == 0)?(0):(R3i.y)); +PV1i.z = R123i.z; +R126i.w = ((R1i.x == 0)?(0):(R127i.z)); +R124i.y = ((R1i.x == 0)?(0):(R126i.x)); +PS1i = R124i.y; +// 8 +R123i.x = ((R1i.x == 0)?(0):(R125i.w)); +PV0i.x = R123i.x; +R14i.y = ((R12i.y == 0)?(R3i.y):(PV1i.z)); +R14i.z = ((R12i.y == 0)?(R4i.z):(R126i.y)); +R14i.w = ((R12i.y == 0)?(R8i.w):(PV1i.y)); +R122i.x = ((R1i.x == 0)?(0):(R8i.z)); +PS0i = R122i.x; +// 9 +R16i.x = ((R12i.y == 0)?(R125i.w):(PV0i.x)); +R16i.y = ((R12i.y == 0)?(R127i.z):(R126i.w)); +R16i.z = ((R12i.y == 0)?(R126i.x):(R124i.y)); +R16i.w = ((R12i.y == 0)?(R8i.z):(PS0i)); +R8i.w = uf_remappedVS[67].w; +PS1i = R8i.w; +// 10 +backupReg0i = R10i.x; +R10i.x = ((R1i.x == 0)?(0):(R10i.w)); +R3i.y = ((R1i.x == 0)?(0):(R0i.z)); +R8i.z = ((R1i.x == 0)?(0):(R2i.y)); +R5i.w = ((R1i.x == 0)?(0):(backupReg0i)); +R5i.y = ((R1i.x == 0)?(0):(R2i.z)); +PS0i = R5i.y; +} +if( activeMaskStackC[3] == true ) { +R2i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R2i.xz)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[39].y),intBitsToFloat(R0i.y)) + intBitsToFloat(R6i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[44].y),intBitsToFloat(R0i.y)) + intBitsToFloat(R1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[39].y), intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[44].y), intBitsToFloat(R3i.w))); +R122i.x = ((R1i.x == 0)?(0):(R2i.x)); +PS0i = R122i.x; +// 1 +R17i.x = ((R12i.y == 0)?(R2i.x):(PS0i)); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R8i.w)) + intBitsToFloat(R3i.x))); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(R6i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedVS[48].y), intBitsToFloat(R3i.w))); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[48].y),intBitsToFloat(R0i.y)) + intBitsToFloat(R4i.x))); +PS1i = R2i.x; +// 2 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedVS[3].x),intBitsToFloat(R8i.y)) + 0.0)); +PV0i.x = R3i.x; +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R5i.x))); +PV0i.y = R0i.y; +R123i.z = ((R1i.x == 0)?(0):(R2i.y)); +PV0i.z = R123i.z; +R123i.w = ((R1i.x == 0)?(0):(R2i.z)); +PV0i.w = R123i.w; +R122i.x = ((R1i.x == 0)?(0):(R2i.w)); +PS0i = R122i.x; +// 3 +R124i.x = ((R1i.x == 0)?(PV0i.x):(R24i.x)); +R17i.y = ((R12i.y == 0)?(R2i.y):(PV0i.z)); +R17i.z = ((R12i.y == 0)?(R2i.z):(PV0i.w)); +R17i.w = ((R12i.y == 0)?(R2i.w):(PS0i)); +R127i.z = ((R1i.x == 0)?(0):(PV0i.y)); +PS1i = R127i.z; +// 4 +R127i.x = ((R1i.x == 0)?(0):(R124i.y)); +R127i.y = ((R1i.x == 0)?(0):(R124i.z)); +R125i.z = ((R1i.x == 0)?(0):(R11i.w)); +R123i.w = ((R1i.x == 0)?(0):(R2i.x)); +PV0i.w = R123i.w; +R126i.z = ((R1i.x == 0)?(0):(R126i.y)); +PS0i = R126i.z; +// 5 +R15i.x = ((R12i.y == 0)?(R2i.x):(PV0i.w)); +R15i.y = ((R12i.y == 0)?(R0i.y):(R127i.z)); +R127i.z = ((R1i.x == 0)?(0):(R11i.z)); +R126i.w = ((R1i.x == 0)?(0):(R7i.w)); +R122i.x = ((R1i.x == 0)?(0):(R7i.y)); +PS1i = R122i.x; +// 6 +R21i.x = ((R12i.y == 0)?(R7i.y):(PS1i)); +R123i.y = ((R1i.x == 0)?(0):(R126i.x)); +PV0i.y = R123i.y; +R2i.z = ((R1i.x == 0)?(R22i.z):(R22i.z)); +R124i.w = ((R1i.x == 0)?(0):(R10i.w)); +R122i.x = ((R1i.x == 0)?(0):(R7i.z)); +PS0i = R122i.x; +// 7 +R19i.x = ((R12i.y == 0)?(R126i.x):(PV0i.y)); +R19i.y = ((R12i.y == 0)?(R124i.y):(R127i.x)); +R19i.z = ((R12i.y == 0)?(R126i.y):(R126i.z)); +R125i.w = ((R1i.x == 0)?(0):(R9i.w)); +R21i.y = ((R12i.y == 0)?(R7i.z):(PS0i)); +PS1i = R21i.y; +// 8 +R123i.x = ((R1i.x == 0)?(0):(R11i.x)); +PV0i.x = R123i.x; +R123i.y = ((R1i.x == 0)?(0):(R9i.y)); +PV0i.y = R123i.y; +R21i.z = ((R12i.y == 0)?(R7i.w):(R126i.w)); +R19i.w = ((R12i.y == 0)?(R124i.z):(R127i.y)); +R124i.z = ((R1i.x == 0)?(0):(R10i.z)); +PS0i = R124i.z; +// 9 +R20i.x = ((R12i.y == 0)?(R11i.x):(PV0i.x)); +R123i.y = ((R1i.x == 0)?(0):(R9i.z)); +PV1i.y = R123i.y; +R123i.z = ((R1i.x == 0)?(0):(R6i.x)); +PV1i.z = R123i.z; +R126i.w = R13i.z; +R25i.x = ((R12i.y == 0)?(R9i.y):(PV0i.y)); +PS1i = R25i.x; +// 10 +R123i.x = ((R1i.x == 0)?(0):(R11i.y)); +PV0i.x = R123i.x; +R25i.y = ((R12i.y == 0)?(R9i.z):(PV1i.y)); +R25i.z = ((R12i.y == 0)?(R9i.w):(R125i.w)); +R21i.w = ((R12i.y == 0)?(R6i.x):(PV1i.z)); +R25i.w = ((R12i.y == 0)?(R10i.z):(R124i.z)); +PS0i = R25i.w; +// 11 +R123i.x = ((R1i.x == 0)?(R22i.x):(R24i.x)); +PV1i.x = R123i.x; +R20i.y = ((R12i.y == 0)?(R11i.y):(PV0i.x)); +R20i.z = ((R12i.y == 0)?(R11i.z):(R127i.z)); +R20i.w = ((R12i.y == 0)?(R11i.w):(R125i.z)); +// 12 +R22i.x = ((R12i.y == 0)?(R124i.x):(PV1i.x)); +R127i.y = ((R1i.x == 0)?(0):(R12i.z)); +R127i.z = ((R1i.x == 0)?(0):(R9i.x)); +R123i.w = ((R1i.x == 0)?(R22i.y):(R18i.y)); +PV0i.w = R123i.w; +// 13 +R123i.x = ((R1i.x == 0)?(0):(R7i.x)); +PV1i.x = R123i.x; +R22i.y = ((R12i.y == 0)?(R6i.z):(PV0i.w)); +R22i.z = ((R12i.y == 0)?(R4i.w):(R2i.z)); +R125i.w = ((R1i.x == 0)?(R23i.y):(R1i.w)); +R124i.x = R13i.y; +PS1i = R124i.x; +// 14 +R26i.x = ((R12i.y == 0)?(R7i.x):(PV1i.x)); +R26i.y = ((R12i.y == 0)?(R10i.w):(R124i.w)); +R26i.z = ((R12i.y == 0)?(R12i.z):(R127i.y)); +R26i.w = ((R12i.y == 0)?(R9i.x):(R127i.z)); +PS0i = R18i.x; +// 15 +R18i.x = ((R12i.y == 0)?(PS0i):(R5i.w)); +R18i.y = ((R12i.y == 0)?(R124i.x):(R8i.z)); +R18i.z = ((R12i.y == 0)?(R126i.w):(R3i.y)); +R123i.w = ((R1i.x == 0)?(R23i.x):(R4i.y)); +PV1i.w = R123i.w; +// 16 +R23i.x = ((R12i.y == 0)?(R0i.w):(PV1i.w)); +R23i.y = ((R12i.y == 0)?(R0i.x):(R125i.w)); +R15i.z = ((R12i.y == 0)?(R2i.z):(R5i.y)); +R123i.w = ((R1i.x == 0)?(R23i.z):(R8i.x)); +PV0i.w = R123i.w; +// 17 +R123i.x = ((R1i.x == 0)?(R23i.w):(R12i.x)); +PV1i.x = R123i.x; +R23i.z = ((R12i.y == 0)?(R10i.y):(PV0i.w)); +R18i.w = ((R12i.y == 0)?(R10i.x):(R10i.x)); +PS1i = R18i.w; +// 18 +R23i.w = ((R12i.y == 0)?(R13i.x):(PV1i.x)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R26i.x), intBitsToFloat(R26i.y), intBitsToFloat(R26i.z), intBitsToFloat(R26i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R25i.x), intBitsToFloat(R25i.y), intBitsToFloat(R25i.z), intBitsToFloat(R25i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem7 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R16i.x), intBitsToFloat(R16i.y), intBitsToFloat(R16i.z), intBitsToFloat(R16i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R14i.x), intBitsToFloat(R14i.y), intBitsToFloat(R14i.z), intBitsToFloat(R14i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R15i.x), intBitsToFloat(R15i.y), intBitsToFloat(R15i.z), intBitsToFloat(R15i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/a4f029f0b16e3776_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/a4f029f0b16e3776_0000000000000000_vs.txt new file mode 100644 index 00000000..d0bdfd3b --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/a4f029f0b16e3776_0000000000000000_vs.txt @@ -0,0 +1,2259 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader a4f029f0b16e3776 +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +layout(binding = 11, std140) uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + +layout(binding = 13, std140) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem8; +layout(location = 6) out vec4 passParameterSem11; +layout(location = 7) out vec4 passParameterSem14; +layout(location = 8) out vec4 passParameterSem15; +layout(location = 9) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 5) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[3]; +bool activeMaskStackC[4]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem4.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem9; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R15i.z = floatBitsToInt(-(intBitsToFloat(R8i.y)) + 1.0); +R4i.w = 0; +R5i.w = floatBitsToInt(1.0); +PS0i = R5i.w; +// 1 +R15i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + uf_blockVS8[2].x); +R16i.w = floatBitsToInt(-(intBitsToFloat(R8i.x)) + 1.0); +PS1i = R16i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R15i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R21i.x = 0; +R21i.y = 0; +R21i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R22i.x = 0; +PS0i = R22i.x; +// 1 +R3i.w = R5i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R3i.w = R4i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R3i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R2i.w)); +// 1 +R3i.x = floatBitsToInt(float(PS0i)); +PS1i = R3i.x; +// 2 +predResult = (intBitsToFloat(R15i.w) >= intBitsToFloat(R3i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R21i.x = 0; +R21i.y = 0; +R21i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R22i.x = 0; +PS0i = R22i.x; +// 1 +R4i.w = R5i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R4i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +PV0i.y = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockVS7[10].y)); +PV0i.w = floatBitsToInt(max(intBitsToFloat(R6i.x), 0.0)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R127i.y = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +PV1i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 0.0)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R127i.w; +R10i.y = floatBitsToInt(1.0 / intBitsToFloat(R3i.x)); +PS1i = R10i.y; +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV1i.z)); +R11i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i)); +PV0i.y = R11i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +R126i.y = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +PS0i = R126i.y; +// 3 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z))); +R125i.y = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +// 4 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.z))); +R126i.z = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y); +R126i.w = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 5 +backupReg0i = R127i.x; +backupReg1i = R127i.y; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(PS0i)); +R127i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS0i)); +R126i.y = floatBitsToInt(-(uf_blockVS7[97].z) + uf_blockVS7[98].z); +PS1i = R126i.y; +// 6 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[97].w)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[96].w)); +// 7 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R127i.y))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w); +R125i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.y; +// 8 +R125i.x = ((intBitsToFloat(R126i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R125i.x; +R127i.yzw = floatBitsToInt(vec3(uf_blockVS7[96].z,uf_blockVS7[96].y,uf_blockVS7[96].x) + vec3(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.x) + -(uf_blockVS7[98].w)); +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +// 10 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i))); +PS0i = R124i.x; +// 11 +backupReg0i = R127i.w; +R127i.x = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R126i.z = floatBitsToInt(uf_blockVS7[97].z + intBitsToFloat(PV0i.y)); +R127i.w = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(PV0i.z)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PS1i = R126i.w; +// 12 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg1i = R127i.z; +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].x, intBitsToFloat(backupReg0i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.y))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].y, intBitsToFloat(backupReg0i))); +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[98].z, intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.x))); +PS0i = R127i.z; +// 13 +backupReg0i = R127i.x; +backupReg1i = R127i.y; +backupReg2i = R126i.z; +backupReg3i = R127i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.x))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV0i.y))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(-(intBitsToFloat(R125i.y)) + 1.0); +// 14 +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(PS1i))); +R2i.w = 0x3f800000; +PS0i = R2i.w; +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(uf_blockVS7[13].x); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(uf_blockVS7[13].y); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.x)); +R10i.z = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.z)); +R4i.w = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PS1i)); +PS0i = R4i.w; +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV0i.y)); +// 18 +backupReg0i = R7i.y; +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PV1i.x))); +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV1i.z))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[3].y)); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), uf_blockVS8[3].w)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), uf_blockVS8[3].z)); +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R7i.w = tempi.x; +// 2 +R12i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w))); +PV0i.x = R12i.x; +PV0i.y = R12i.x; +PV0i.z = R12i.x; +PV0i.w = R12i.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R2i.w)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.w = tempi.x; +// 4 +R0i.x = floatBitsToInt(intBitsToFloat(R7i.w) + -(uf_blockVS6[17].x)); +PV0i.x = R0i.x; +R7i.y = floatBitsToInt(intBitsToFloat(R12i.x) + -(uf_blockVS6[17].y)); +PV0i.y = R7i.y; +R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS6[17].z)); +PV0i.z = R0i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(R7i.w)) + uf_blockVS6[17].x); +R127i.y = floatBitsToInt(-(intBitsToFloat(R12i.x)) + uf_blockVS6[17].y); +PS0i = R127i.y; +// 5 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.z = floatBitsToInt(-(intBitsToFloat(R9i.w)) + uf_blockVS6[17].z); +PS1i = R125i.z; +// 6 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg1i = R0i.z; +backupReg1i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R7i.y),intBitsToFloat(backupReg1i),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R7i.y),intBitsToFloat(backupReg1i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 7 +R7i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.x)), intBitsToFloat(PS0i))); +R7i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.z)), intBitsToFloat(PS0i))); +R0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R7i.y)), intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R127i.y),intBitsToFloat(R125i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R8i.z = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R8i.z; +// 9 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 10 +backupReg0i = R125i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +PV0i.x = R127i.x; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +PV0i.z = R126i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.w = R125i.w; +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), -(uf_blockVS6[1].y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), -(uf_blockVS6[1].z))); +R11i.z = PV0i.w; +PV1i.z = R11i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), -(uf_blockVS6[1].x))); +R12i.z = PV0i.x; +PS1i = R12i.z; +// 12 +R126i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].y,intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y))); +PV0i.x = R126i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].z,intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.w))); +PV0i.y = R127i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].x,intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x))); +PV0i.z = R125i.z; +R8i.w = R126i.z; +R2i.x = PV1i.z; +PS0i = R2i.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R3i.z = R12i.z; +PS1i = R3i.z; +// 14 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 15 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PV1i.x = R9i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R2i.y; +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +PV1i.w = R3i.w; +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.w))); +R5i.w = PV1i.y; +R11i.x = PV1i.w; +PS0i = R11i.x; +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 18 +R10i.x = PV1i.y; +PV0i.x = R10i.x; +R9i.y = PV1i.x; +PV0i.y = R9i.y; +R13i.z = PV1i.w; +PV0i.z = R13i.z; +// 19 +R0i.y = PV0i.x; +R2i.z = PV0i.y; +R2i.w = PV0i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(R0i.w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(R7i.x))); +PV0i.y = R125i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(R7i.z))); +PV0i.w = R127i.w; +// 1 +backupReg0i = R0i.x; +backupReg1i = R0i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.w)); +R125i.w = R8i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R2i.x))); +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R2i.z)) + intBitsToFloat(PS1i))); +PS0i = R122i.x; +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R3i.z))); +R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R125i.w))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(R8i.z)); +PV0i.y = R126i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV0i.y))); +R14i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.y))); +R12i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV0i.y))); +// 6 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R10i.z))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R4i.w))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i))); +PV0i.z = R126i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(R125i.y)); +R0i.y = floatBitsToInt(intBitsToFloat(R12i.x) + intBitsToFloat(R126i.x)); +PS0i = R0i.y; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R11i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.z = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(R127i.w)); +PS1i = R11i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R5i.w),intBitsToFloat(R10i.x),intBitsToFloat(R12i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.w = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV1i.x)); +PS0i = R125i.w; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R13i.z),intBitsToFloat(R8i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R12i.x) + intBitsToFloat(PV0i.x)); +// 10 +R12i.x = 0x3f800000; +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R125i.w)); +PV0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV1i.x)); +R126i.x = floatBitsToInt(-(uf_blockVS6[17].x) + intBitsToFloat(R4i.w)); +PS0i = R126i.x; +// 11 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(-(uf_blockVS6[17].y) + intBitsToFloat(backupReg0i)); +PV1i.z = floatBitsToInt(-(uf_blockVS6[17].z) + intBitsToFloat(R11i.z)); +R127i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + intBitsToFloat(PV0i.z)); +R127i.x = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.w = floatBitsToInt(-(intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.x)); +PS0i = R125i.w; +// 13 +PV1i.y = floatBitsToInt((0.0 > uf_blockVS7[8].x)?1.0:0.0); +PV1i.z = floatBitsToInt((uf_blockVS7[8].x > 0.0)?1.0:0.0); +R126i.w = 0x3f800000; +R13i.z = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R13i.z; +// 14 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +PV0i.x = R126i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.y)); +// 15 +R11i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R9i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +R125i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R9i.w = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].x); +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R0i.y),intBitsToFloat(R11i.z),intBitsToFloat(R126i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = tempi.x; +R126i.z = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i)); +PS0i = R126i.z; +// 17 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(backupReg0i),intBitsToFloat(R11i.z),intBitsToFloat(R126i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[9].y) + intBitsToFloat(R126i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +PV0i.w = PV1i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +// 19 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 20 +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +// 21 +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV0i.w))); +// 22 +PV0i.y = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV1i.z)); +// 23 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 24 +R3i.w = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R5i.y) + -(uf_blockVS7[60].w)); +PV0i.z = floatBitsToInt(min(intBitsToFloat(R13i.z), uf_blockVS7[116].x)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[116].x); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(PS0i)); +R125i.z = floatBitsToInt(-(uf_blockVS7[60].y) + uf_blockVS7[61].y); +R126i.w = floatBitsToInt(-(uf_blockVS7[60].x) + uf_blockVS7[61].x); +// 2 +R126i.x = floatBitsToInt(-(uf_blockVS7[60].z) + uf_blockVS7[61].z); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(-(uf_blockVS7[60].w) + uf_blockVS7[61].w); +// 3 +R0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.w)); +R4i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.z)); +R8i.z = floatBitsToInt(intBitsToFloat(R11i.z) + intBitsToFloat(PV0i.y)); +R4i.w = ((intBitsToFloat(R127i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R5i.y) + -(uf_blockVS7[61].w)); +// 5 +R10i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R10i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + uf_blockVS7[60].z)); +R11i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.y)) + uf_blockVS7[60].y)); +R9i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.z)) + uf_blockVS7[60].x)); +// 6 +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +// 7 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PV0i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = tempi.x; +// 1 +R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R0i.x),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = R4i.x; +PV1i.y = R4i.x; +PV1i.z = R4i.x; +PV1i.w = R4i.x; +R126i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + 1.0); +PS1i = R126i.w; +// 2 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.z = tempi.x; +// 3 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.y),intBitsToFloat(R8i.z),intBitsToFloat(R12i.x)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R13i.y = tempi.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].y, intBitsToFloat(R126i.w))); +R15i.y = floatBitsToInt((intBitsToFloat(R9i.z) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].x, intBitsToFloat(R126i.w))); +PV0i.w = PV1i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +PS0i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].z, intBitsToFloat(R126i.w))); +// 5 +R123i.x = floatBitsToInt((intBitsToFloat(R9i.z) * 0.0 + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R11i.x)) + intBitsToFloat(PS0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R11i.x)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),intBitsToFloat(R11i.x)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +R14i.z = floatBitsToInt((intBitsToFloat(R9i.z) * 0.5 + intBitsToFloat(PV0i.w))); +PS1i = R14i.z; +// 6 +R13i.x = floatBitsToInt((intBitsToFloat(R0i.w) * 0.5 + intBitsToFloat(PV1i.x))); +R5i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].x,intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.w))); +R11i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].y,intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.z))); +R13i.w = floatBitsToInt((intBitsToFloat(R4i.x) * -(0.5) + intBitsToFloat(PV1i.x))); +R3i.z = floatBitsToInt(1.0 / intBitsToFloat(R15i.y)); +PS0i = R3i.z; +// 7 +PV1i.y = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(PS0i)); +R13i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].z,intBitsToFloat(R10i.x)) + intBitsToFloat(R126i.y))); +// 8 +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV0i.w = R123i.w; +// 9 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 10 +R2i.z = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +// 11 +R125i.z = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +// 12 +PV0i.y = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +// 13 +R126i.y = floatBitsToInt(-(uf_blockVS7[76].y) + uf_blockVS7[77].y); +R126i.z = floatBitsToInt(-(uf_blockVS7[76].x) + uf_blockVS7[77].x); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 14 +R127i.x = floatBitsToInt(-(uf_blockVS7[76].z) + uf_blockVS7[77].z); +PV0i.y = floatBitsToInt(-(uf_blockVS7[76].w) + uf_blockVS7[77].w); +R9i.w = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i)); +// 15 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 16 +R11i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +R9i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +R8i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R11i.z; +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +PV0i.y = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockVS8[0].x)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].y)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 1 +backupReg0i = R13i.z; +PV1i.x = floatBitsToInt((uf_blockVS7[8].z > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].z)); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R126i.w; +PS1i = floatBitsToInt((0.0 > uf_blockVS7[8].z)?1.0:0.0); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[9].z) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PS1i))); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].z); +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R125i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +PV1i.w = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[9].w) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.w))); +// 5 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +// 6 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.w))); +// 7 +R12i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[69].w)); +PV0i.w = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[68].w)); +// 1 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), uf_blockVS7[59].x)); +R126i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R126i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R9i.w)) + uf_blockVS7[68].x)); +R126i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R126i.w; +R14i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), uf_blockVS7[59].x)); +PS1i = R14i.w; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), uf_blockVS7[59].x)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R127i.w = floatBitsToInt(intBitsToFloat(R12i.x) + -(uf_blockVS7[76].w)); +PV0i.w = R127i.w; +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R11i.x)) + uf_blockVS7[76].y)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R9i.y)) + uf_blockVS7[76].x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV0i.x))); +R125i.w = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.w; +// 4 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(R8i.w)) + uf_blockVS7[76].z)); +PV0i.y = floatBitsToInt(intBitsToFloat(R12i.x) + -(uf_blockVS7[77].w)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.w = R127i.w; +// 5 +R124i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[69].x,intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].x, intBitsToFloat(PV0i.w))); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].y, intBitsToFloat(PV0i.w))); +// 6 +backupReg0i = R127i.w; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[0].w)); +PV0i.z = ((intBitsToFloat(R6i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].z, intBitsToFloat(backupReg0i))); +// 7 +PV1i.x = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R9i.y = ((PV0i.z == 0)?(R8i.x):(R16i.w)); +PV1i.z = ((intBitsToFloat(R6i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.x))); +R125i.w = ((intBitsToFloat(R6i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS1i = R125i.w; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(R126i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(R125i.z))); +PV0i.z = R123i.z; +R8i.w = ((PV1i.x == 0)?(R8i.y):(R15i.z)); +R4i.w = ((PV1i.z == 0)?(R8i.x):(R16i.w)); +PS0i = R4i.w; +// 9 +R12i.x = ((R125i.w == 0)?(R8i.y):(R15i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].z,intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].y,intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[77].x,intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +PS1i = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[1].z)); +R5i.y = ((PS1i == 0)?(R8i.x):(R16i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockVS8[1].y)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[1].x)); +PS0i = ((intBitsToFloat(R6i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 11 +R11i.x = ((PS0i == 0)?(R8i.y):(R15i.z)); +R7i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.x))); +R7i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.z))); +R11i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.w))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R10i.x = floatBitsToInt(uf_blockVS7[84].x); +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +PV0i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +// 1 +PV1i.x = (PS0i == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = (PV0i.z == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PV1i.z = (PV0i.w == 0x00100000)?int(0xFFFFFFFF):int(0x0); +PV1i.w = (PV0i.y == 0x00080000)?int(0xFFFFFFFF):int(0x0); +R126i.z = floatBitsToInt(uf_blockVS7[5].y) & int(1); +PS1i = R126i.z; +// 2 +R9i.x = ((PV1i.w == 0)?(R8i.x):(R9i.y)); +R3i.y = ((PV1i.x == 0)?(R8i.y):(R12i.x)); +R4i.z = ((PV1i.y == 0)?(R8i.x):(R4i.w)); +R7i.w = ((PV1i.z == 0)?(R8i.y):(R8i.w)); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +// 3 +PV1i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +R2i.y = (int(1) != R126i.z)?int(0xFFFFFFFF):int(0x0); +R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010; +PV1i.w = (PS0i == 0x00800000)?int(0xFFFFFFFF):int(0x0); +R12i.x = int(uf_blockVS7[17].x); +PS1i = R12i.x; +// 4 +R3i.x = ((PV1i.w == 0)?(R8i.x):(R5i.y)); +R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020; +PV0i.z = (PV1i.x == 0x01000000)?int(0xFFFFFFFF):int(0x0); +R125i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040; +R4i.w = int(uf_blockVS7[17].y); +PS0i = R4i.w; +// 5 +R2i.w = ((PV0i.z == 0)?(R8i.y):(R11i.x)); +PS1i = floatBitsToInt(float(R126i.z)); +// 6 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(R126i.y)); +// 7 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R125i.w)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R126i.y; +// 9 +PV1i.x = 0 - PS0i; +R13i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R125i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R125i.y; +// 10 +PV0i.x = 0 - PS1i; +R8i.w = max(R126i.y, PV1i.x); +// 11 +R5i.w = max(R125i.y, PV0i.x); +} +if( activeMaskStackC[3] == true ) { +// 0 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS8[1].w)); +// 1 +R124i.x = int(-1) + R12i.x; +R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000; +PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080; +R125i.y = int(intBitsToFloat(R13i.z)); +PS1i = R125i.y; +// 2 +PV0i.x = 0 - PS1i; +PS0i = floatBitsToInt(float(PV1i.z)); +// 3 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R9i.w = max(R125i.y, PV0i.x); +R125i.z = floatBitsToInt(float(R12i.x)); +PS1i = R125i.z; +// 4 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +R126i.z = floatBitsToInt(float(R4i.w)); +PS0i = R126i.z; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R10i.y) * intBitsToFloat(PV0i.y)); +R125i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R125i.y; +// 6 +PV0i.x = 0 - PS1i; +PS0i = int(intBitsToFloat(PV1i.x)); +// 7 +R127i.w = max(R125i.y, PV0i.x); +R127i.z = R8i.w * PS0i; +PS1i = R127i.z; +// 8 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.z)); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt(float(R12i.x)); +PS1i = R125i.y; +// 10 +R12i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R126i.w = int(intBitsToFloat(PV1i.x)); +PS0i = R126i.w; +// 11 +PS1i = floatBitsToInt(float(PS0i)); +// 12 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i)); +R126i.x = floatBitsToInt(float(R126i.w)); +PS0i = R126i.x; +// 13 +R123i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R125i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R8i.w = floatBitsToInt(1.0 / abs(intBitsToFloat(R125i.y))); +PS1i = R8i.w; +// 14 +PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.x)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.x)); +// 15 +R125i.x = int(1) - PS0i; +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R124i.w = PS0i * R124i.x; +PS1i = R124i.w; +// 16 +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R12i.x)) + intBitsToFloat(R125i.w))); +PV0i.z = R125i.z; +PS0i = floatBitsToInt(float(R126i.y)); +// 17 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R125i.y)))?1.0:0.0); +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R125i.y))) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R124i.x = int(intBitsToFloat(R127i.x)); +PS1i = R124i.x; +// 18 +backupReg0i = R127i.w; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +R127i.w = ((intBitsToFloat(PV1i.x) == 0.0)?(R125i.z):(PV1i.y)); +PV0i.w = R127i.w; +R126i.y = backupReg0i * PS1i; +PS0i = R126i.y; +// 19 +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.w)); +R127i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 20 +R123i.y = ((-(intBitsToFloat(R127i.w)) > 0.0)?(PV1i.z):(R127i.w)); +PV0i.y = R123i.y; +PV0i.w = 0 - PS1i; +// 21 +R123i.x = ((-(intBitsToFloat(R126i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.x = R123i.x; +PV1i.z = max(R127i.x, PV0i.w); +// 22 +R123i.w = ((intBitsToFloat(R125i.y) == 0.0)?(R126i.x):(PV1i.x)); +PV0i.w = R123i.w; +PS0i = PV1i.z * R124i.x; +// 23 +R125i.z = R126i.w + PS0i; +PS1i = int(intBitsToFloat(PV0i.w)); +// 24 +PS0i = R125i.x * PS1i; +// 25 +PV1i.z = PS0i + R124i.w; +R125i.x = R9i.w * R125i.z; +PS1i = R125i.x; +// 26 +PS0i = R5i.w * PV1i.z; +// 27 +PV1i.y = PS0i + R127i.z; +// 28 +PV0i.x = R125i.x + PV1i.y; +// 29 +PV1i.w = R126i.y + PV0i.x; +// 30 +R125i.z = floatBitsToInt(float(PV1i.w)); +PS0i = R125i.z; +// 31 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), abs(intBitsToFloat(PS0i)))); +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +// 32 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +// 33 +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R12i.x)) + intBitsToFloat(R124i.w))); +PV1i.z = R127i.z; +// 34 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R125i.y)))?1.0:0.0); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.z)); +// 35 +R124i.w = ((intBitsToFloat(PV0i.x) == 0.0)?(R127i.z):(PV0i.y)); +PV1i.w = R124i.w; +// 36 +PV0i.z = floatBitsToInt(abs(intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.w)); +// 37 +R123i.y = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV0i.z):(R124i.w)); +PV1i.y = R123i.y; +// 38 +R123i.x = ((-(intBitsToFloat(R125i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.x = R123i.x; +// 39 +R123i.w = ((intBitsToFloat(R125i.y) == 0.0)?(R125i.z):(PV0i.x)); +PV1i.w = R123i.w; +// 40 +R125i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R125i.z; +// 41 +R125i.y = floatBitsToInt(float(PS0i)); +PS1i = R125i.y; +// 42 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R12i.x = floatBitsToInt(float(R125i.z)); +PS0i = R12i.x; +// 43 +R126i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +// 44 +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R125i.y))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +// 45 +R125i.x = floatBitsToInt((-(intBitsToFloat(PV0i.z)) * 4.0 + intBitsToFloat(R126i.y))); +PV1i.x = R125i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 0.25); +R12i.z = ((R2i.y == 0)?(R6i.x):(R6i.y)); +// 46 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt((intBitsToFloat(PV1i.x) >= 4.0)?1.0:0.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0xc0800000)); +R9i.y = int(uf_blockVS7[26].x); +PS0i = R9i.y; +// 47 +R8i.y = ((intBitsToFloat(PV0i.z) == 0.0)?(R125i.x):(PV0i.w)); +R8i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R13i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R13i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R8i.y) + 4.0); +R5i.y = R13i.z + 0x00000012; +R8i.x = int(uf_blockVS7[26].y); +PS0i = R8i.x; +// 1 +R123i.w = ((-(intBitsToFloat(R8i.y)) > 0.0)?(PV0i.x):(R8i.y)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(float(R8i.w)); +// 2 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R123i.z = ((-(intBitsToFloat(R12i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.w)))):(PV1i.w)); +PV0i.z = R123i.z; +// 3 +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PS1i = int(intBitsToFloat(PV0i.z)); +// 4 +PV0i.x = int(-1) + PS1i; +R126i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +R125i.z = 0xfffffffd + PS1i; +R124i.w = 0xfffffffe + PS1i; +PS0i = floatBitsToInt(float(PS1i)); +// 5 +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.x)); +// 6 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(R124i.w)); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R125i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R125i.x; +// 8 +PV0i.x = 0 - PS1i; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +R124i.w = int(intBitsToFloat(PV1i.x)); +PS0i = R124i.w; +// 9 +PV1i.x = 0 - PS0i; +PV1i.z = max(R125i.x, PV0i.x); +R127i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R127i.z; +// 10 +R12i.x = int(1) - PV1i.z; +PV0i.y = max(R124i.w, PV1i.x); +PV0i.z = 0 - PS1i; +PS0i = floatBitsToInt(float(R125i.z)); +// 11 +PV1i.x = max(R127i.z, PV0i.z); +R8i.y = int(1) - PV0i.y; +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R127i.z = int(intBitsToFloat(R126i.w)); +PS1i = R127i.z; +// 12 +PV0i.y = 0 - PS1i; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R8i.w = int(1) - PV1i.x; +PS0i = floatBitsToInt(float(R126i.y)); +// 13 +R10i.x = max(R127i.z, PV0i.y); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 14 +PV0i.x = 0 - PS1i; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +// 15 +PV1i.w = max(R126i.y, PV0i.x); +R11i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R11i.z; +// 16 +R13i.z = int(1) - PV1i.w; +} +if( activeMaskStackC[3] == true ) { +R5i.xyzw = floatBitsToInt(uf_blockVS7[R5i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +PV0i.y = 0 - R11i.z; +R126i.z = int(-1) + R9i.y; +R124i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +R126i.y = R13i.z * R5i.w; +PS0i = R126i.y; +// 1 +R11i.x = max(R11i.z, PV0i.y); +R125i.x = R8i.w * R5i.z; +PS1i = R125i.x; +// 2 +R126i.w = R8i.y * R5i.y; +PS0i = R126i.w; +// 3 +PS1i = R12i.x * R5i.x; +// 4 +PV0i.y = R126i.w + PS1i; +PS0i = floatBitsToInt(float(R124i.w)); +// 5 +PV1i.x = R125i.x + PV0i.y; +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R126i.x)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R8i.w = R126i.y + PV1i.x; +R126i.w = floatBitsToInt(float(R9i.y)); +PS0i = R126i.w; +// 7 +R125i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +R127i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R127i.z; +// 8 +PV0i.x = 0 - PS1i; +PV0i.y = floatBitsToInt(intBitsToFloat(R10i.y) * intBitsToFloat(PV1i.z)); +R125i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R125i.z; +// 9 +R5i.x = max(R127i.z, PV0i.x); +PV1i.y = 0 - PS0i; +PS1i = int(intBitsToFloat(PV0i.y)); +// 10 +R124i.x = max(R125i.z, PV1i.y); +R124i.w = R10i.x * PS1i; +PS0i = R124i.w; +// 11 +PS1i = floatBitsToInt(float(R8i.x)); +// 12 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 13 +PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R125i.z = floatBitsToInt(float(R9i.y)); +PS1i = R125i.z; +// 14 +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R127i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R127i.x; +// 15 +PS1i = floatBitsToInt(float(PS0i)); +// 16 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(PS1i)); +R125i.y = floatBitsToInt(float(R127i.x)); +PS0i = R125i.y; +// 17 +R126i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R123i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R123i.y; +R12i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R125i.z))); +PS1i = R12i.x; +// 18 +PV0i.w = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.y)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.y)); +// 19 +R8i.x = int(1) - PS0i; +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.w))); +R10i.x = PS0i * R126i.z; +PS1i = R10i.x; +// 20 +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.z)),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.x))); +PV0i.w = R126i.w; +PS0i = floatBitsToInt(float(R125i.x)); +// 21 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.w) >= abs(intBitsToFloat(R125i.z)))?1.0:0.0); +PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R125i.z))) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R127i.y = int(intBitsToFloat(R126i.y)); +PS1i = R127i.y; +// 22 +backupReg0i = R124i.x; +R124i.x = ((intBitsToFloat(PV1i.y) == 0.0)?(R126i.w):(PV1i.z)); +PV0i.x = R124i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +R126i.z = backupReg0i * PS1i; +PS0i = R126i.z; +// 23 +PV1i.w = floatBitsToInt(abs(intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.x)); +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 24 +PV0i.x = 0 - PS1i; +R123i.z = ((-(intBitsToFloat(R124i.x)) > 0.0)?(PV1i.w):(R124i.x)); +PV0i.z = R123i.z; +// 25 +R123i.y = ((-(intBitsToFloat(R125i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +PV1i.y = R123i.y; +PV1i.w = max(R126i.y, PV0i.x); +// 26 +R123i.x = ((intBitsToFloat(R125i.z) == 0.0)?(R125i.y):(PV1i.y)); +PV0i.x = R123i.x; +PS0i = PV1i.w * R127i.y; +// 27 +R126i.w = R127i.x + PS0i; +PS1i = int(intBitsToFloat(PV0i.x)); +// 28 +PS0i = R8i.x * PS1i; +// 29 +PV1i.w = PS0i + R10i.x; +R127i.y = R5i.x * R126i.w; +PS1i = R127i.y; +// 30 +PS0i = R11i.x * PV1i.w; +// 31 +PV1i.z = PS0i + R124i.w; +// 32 +PV0i.y = R127i.y + PV1i.z; +// 33 +PV1i.x = R126i.z + PV0i.y; +// 34 +R126i.w = floatBitsToInt(float(PV1i.x)); +PS0i = R126i.w; +// 35 +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), abs(intBitsToFloat(PS0i)))); +// 36 +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +// 37 +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R124i.y)) + intBitsToFloat(R127i.x))); +PV1i.w = R124i.w; +// 38 +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.w) >= abs(intBitsToFloat(R125i.z)))?1.0:0.0); +PV0i.z = floatBitsToInt(-(abs(intBitsToFloat(R125i.z))) + intBitsToFloat(PV1i.w)); +// 39 +R127i.x = ((intBitsToFloat(PV0i.y) == 0.0)?(R124i.w):(PV0i.z)); +PV1i.x = R127i.x; +// 40 +PV0i.w = floatBitsToInt(abs(intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.x)); +// 41 +R123i.z = ((-(intBitsToFloat(R127i.x)) > 0.0)?(PV0i.w):(R127i.x)); +PV1i.z = R123i.z; +// 42 +R123i.y = ((-(intBitsToFloat(R126i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +// 43 +R123i.x = ((intBitsToFloat(R125i.z) == 0.0)?(R126i.w):(PV0i.y)); +PV1i.x = R123i.x; +// 44 +R126i.w = int(intBitsToFloat(PV1i.x)); +PS0i = R126i.w; +// 45 +R125i.z = floatBitsToInt(float(PS0i)); +PS1i = R125i.z; +// 46 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R9i.y = floatBitsToInt(float(R126i.w)); +PS0i = R9i.y; +// 47 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +R12i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +// 48 +R5i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.5 + intBitsToFloat(R125i.z))); +R5i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R5i.z) * 0.25); +R124i.y = floatBitsToInt((-(intBitsToFloat(R5i.w)) * 4.0 + intBitsToFloat(R12i.z))); +PV0i.y = R124i.y; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xc0800000)); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) >= 4.0)?1.0:0.0); +// 2 +R125i.z = ((intBitsToFloat(PV1i.w) == 0.0)?(R124i.y):(PV1i.x)); +PV0i.z = R125i.z; +PS0i = int(intBitsToFloat(PV1i.y)); +// 3 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 4.0); +R5i.z = PS0i + 0x0000001b; +PS1i = int(uf_blockVS7[48].z); +// 4 +R123i.x = ((-(intBitsToFloat(R125i.z)) > 0.0)?(PV1i.y):(R125i.z)); +PV0i.x = R123i.x; +R11i.z = floatBitsToInt(float(PS1i)); +PS0i = R11i.z; +// 5 +R123i.w = ((-(intBitsToFloat(R9i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.w = R123i.w; +R9i.y = floatBitsToInt(float(R8i.w)); +PS1i = R9i.y; +// 6 +PS0i = int(intBitsToFloat(PV1i.w)); +// 7 +R127i.x = 0xfffffffe + PS0i; +PV1i.y = int(-1) + PS0i; +R125i.z = floatBitsToInt(abs(intBitsToFloat(R11i.z))); +R126i.w = 0xfffffffd + PS0i; +PS1i = floatBitsToInt(float(PS0i)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.y)); +// 9 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.x)); +// 10 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R124i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R124i.y; +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.x))); +PV1i.y = 0 - PS0i; +R127i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 12 +PV0i.x = 0 - PS1i; +PV0i.w = max(R124i.y, PV1i.y); +R124i.w = int(intBitsToFloat(PV1i.x)); +PS0i = R124i.w; +// 13 +R5i.x = int(1) - PV0i.w; +PV1i.y = 0 - PS0i; +PV1i.z = max(R127i.x, PV0i.x); +PS1i = floatBitsToInt(float(R126i.w)); +// 14 +R11i.x = int(1) - PV1i.z; +PV0i.y = max(R124i.w, PV1i.y); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R8i.x = floatBitsToInt(float(R8i.w)); +PS0i = R8i.x; +// 15 +R12i.x = int(1) - PV0i.y; +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R11i.z))); +// 16 +PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R8i.x)), intBitsToFloat(PS1i))); +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 17 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +PV1i.y = 0 - PS0i; +// 18 +PV0i.x = max(R126i.z, PV1i.y); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R125i.z)) + intBitsToFloat(R124i.y))); +PV0i.z = R126i.z; +// 19 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R11i.z)))?1.0:0.0); +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R11i.z))) + intBitsToFloat(PV0i.z)); +R8i.w = int(1) - PV0i.x; +// 20 +R5i.w = ((intBitsToFloat(PV1i.x) == 0.0)?(R126i.z):(PV1i.y)); +PV0i.w = R5i.w; +// 21 +R12i.z = floatBitsToInt(abs(intBitsToFloat(R11i.z)) + intBitsToFloat(PV0i.w)); +} +if( activeMaskStackC[3] == true ) { +R10i.xyzw = floatBitsToInt(uf_blockVS7[R5i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(R9i.y))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(R9i.y) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockVS7[45].x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +R125i.z = R8i.w * R10i.w; +PS0i = R125i.z; +// 1 +R124i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.w)); +R123i.y = ((-(intBitsToFloat(R5i.w)) > 0.0)?(R12i.z):(R5i.w)); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), uf_blockVS7[45].y)); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) * 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +R124i.y = R12i.x * R10i.z; +PS1i = R124i.y; +// 2 +R123i.x = ((-(intBitsToFloat(R8i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R127i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.5 + intBitsToFloat(R9i.y))); +R127i.x = R11i.x * R10i.y; +PS0i = R127i.x; +// 3 +R126i.x = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV1i.z = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +R123i.w = ((intBitsToFloat(R11i.z) == 0.0)?(R8i.x):(PV0i.x)); +PV1i.w = R123i.w; +PS1i = R5i.x * R10i.x; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),uf_blockVS7[46].z) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockVS7[46].w) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +PV0i.z = R127i.x + PS1i; +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(R124i.x)))); +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 5 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[45].z) + intBitsToFloat(PV0i.x))); +PV1i.y = R124i.y + PV0i.z; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[45].w) + intBitsToFloat(PV0i.y))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[44].y) + intBitsToFloat(R126i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R11i.z)); +// 6 +R125i.x = R125i.z + PV1i.y; +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].z); +// 7 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R123i.y = ((R2i.y == 0)?(0):(int(1))); +PV1i.y = R123i.y; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 8 +R127i.x = (PV1i.y == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.x = R127i.x; +PV0i.y = (PV1i.y == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i))); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(PV1i.x)) + -(0.5))); +R127i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R127i.z; +// 9 +backupReg0i = R126i.z; +R123i.x = ((PV0i.y == 0)?(R6i.x):(R6i.z)); +PV1i.x = R123i.x; +R124i.y = ((PV0i.x == 0)?(R6i.x):(R6i.y)); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV0i.z)) + -(0.5))); +R123i.w = ((PV0i.y == 0)?(R6i.y):(R6i.x)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(float(backupReg0i)); +// 10 +R123i.x = ((R127i.x == 0)?(PV1i.w):(R6i.z)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS1i)) + intBitsToFloat(R124i.w))); +PV0i.y = R123i.y; +R123i.z = ((R127i.x == 0)?(PV1i.x):(R6i.y)); +PV0i.z = R123i.z; +R124i.w = ((R127i.x == 0)?(R6i.y):(R6i.z)); +PS0i = floatBitsToInt(float(R127i.z)); +// 11 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(PV0i.z))); +R124i.x = floatBitsToInt(intBitsToFloat(R124i.x) * 2.0); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV0i.x))); +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +PS1i = int(uf_blockVS7[53].z); +// 12 +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R126i.z)) + -(intBitsToFloat(PV1i.z)))); +PV0i.y = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +PV0i.w = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +R126i.y = floatBitsToInt(float(PS1i)); +PS0i = R126i.y; +// 13 +backupReg0i = R127i.w; +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R126i.z = floatBitsToInt(-(intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.w)); +R127i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y)); +R124i.x = floatBitsToInt(float(R125i.x)); +PS1i = R124i.x; +// 14 +backupReg0i = R124i.y; +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R124i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.w = floatBitsToInt(float(R125i.x)); +PS0i = R126i.w; +// 15 +backupReg0i = R124i.w; +R125i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R126i.z)))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R124i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.y))); +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R126i.w)), intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R124i.x))); +PV0i.y = R123i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[49].y) + intBitsToFloat(R127i.w))); +R10i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[50].z) + intBitsToFloat(R124i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.y)); +// 17 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[50].w) + intBitsToFloat(R124i.w))); +R126i.z = ((R2i.y == 0)?(0):(0x00000002)); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 18 +backupReg0i = R127i.x; +R127i.x = (PV1i.z == int(1))?int(0xFFFFFFFF):int(0x0); +R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R125i.x))); +PV0i.y = R124i.y; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +R7i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS1i))); +PV0i.w = R7i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 19 +backupReg0i = R4i.z; +PV1i.x = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV0i.y)); +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + -(0.5))); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0); +PS1i = int(intBitsToFloat(PV0i.z)); +// 20 +backupReg0i = R124i.y; +PV0i.x = (R126i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PV1i.y)) + -(0.5))); +R126i.z = ((intBitsToFloat(PV1i.w) == 0.0)?(backupReg0i):(PV1i.x)); +PV0i.z = R126i.z; +R8i.w = ((R127i.x == 0)?(R6i.x):(R6i.y)); +PS0i = floatBitsToInt(float(PS1i)); +// 21 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R124i.z))); +PV1i.y = R123i.y; +R123i.z = ((PV0i.x == 0)?(R6i.y):(R6i.x)); +PV1i.z = R123i.z; +R123i.w = ((PV0i.x == 0)?(R6i.x):(R6i.z)); +PV1i.w = R123i.w; +R11i.z = ((R127i.x == 0)?(R6i.y):(R6i.z)); +PS1i = R11i.z; +// 22 +backupReg0i = R6i.z; +R123i.x = ((-(intBitsToFloat(R126i.z)) > 0.0)?(PV1i.x):(R126i.z)); +PV0i.x = R123i.x; +R3i.y = ((R127i.x == 0)?(PV1i.w):(R6i.y)); +R6i.z = ((R127i.x == 0)?(PV1i.z):(backupReg0i)); +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.y)) + -(intBitsToFloat(PV1i.y)))); +PS0i = int(uf_blockVS7[58].z); +// 23 +R123i.w = ((-(intBitsToFloat(R126i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.w = R123i.w; +R6i.x = floatBitsToInt(float(PS0i)); +PS1i = R6i.x; +// 24 +PV0i.x = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +R123i.z = ((intBitsToFloat(R126i.y) == 0.0)?(R126i.w):(PV1i.w)); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 25 +R2i.y = ((intBitsToFloat(PV0i.x) == 0.0)?(0):(PV0i.w)); +R6i.w = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R6i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R6i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R6i.x)) + intBitsToFloat(R2i.y)); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R3i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(R6i.w))); +PV0i.w = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x); +PS0i = floatBitsToInt(float(R6i.y)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R10i.y))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R6i.z))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.w)); +R123i.w = ((-(intBitsToFloat(R2i.y)) > 0.0)?(PV0i.x):(R2i.y)); +PV1i.w = R123i.w; +R124i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R124i.y; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[54].x) + -(intBitsToFloat(PV1i.z)))); +R123i.z = ((intBitsToFloat(R6i.x) == 0.0)?(0):(PV1i.w)); +PV0i.z = R123i.z; +R10i.w = floatBitsToInt(intBitsToFloat(R9i.y) + 0.5); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 3 +R6i.xyz = floatBitsToInt(vec3(intBitsToFloat(PV0i.x),intBitsToFloat(R9i.x),intBitsToFloat(R5i.w)) + vec3(0.5,0.5,0.5)); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS0i))); +PV1i.w = R126i.w; +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 4 +backupReg0i = R11i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R3i.w) + -(uf_blockVS7[93].x)); +R11i.y = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PV1i.w)) + -(0.5))); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + 0.0); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 5 +backupReg0i = R126i.y; +R124i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(uf_blockVS7[104].w)); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS0i))); +PV1i.y = R126i.y; +PS1i = floatBitsToInt(float(backupReg0i)); +// 6 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.y))); +PV0i.y = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV1i.y)) + -(0.5))); +R126i.w = floatBitsToInt(float(R124i.y)); +PS0i = R126i.w; +// 7 +PV1i.x = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w); +PV1i.z = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R11i.y)); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[54].y) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R8i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R4i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +R4i.z = clampFI32(R4i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R11i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[55].z) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[105].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[55].w) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(R125i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R124i.z)) + -(intBitsToFloat(PV1i.y)))); +PV0i.w = R123i.w; +// 11 +R5i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R5i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PV1i.z = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R126i.w = ((intBitsToFloat(R124i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R127i.x = ((intBitsToFloat(R125i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R127i.x; +// 12 +R125i.x = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 13 +PV1i.x = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +R126i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[106].w)); +PV1i.z = R126i.z; +// 14 +R126i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R126i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[107].w)); +PV0i.z = R124i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[104].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 15 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R125i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R124i.w = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +PS1i = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +// 16 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[105].x)); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[108].w)); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PS1i))); +PS0i = R125i.y; +// 17 +backupReg0i = R126i.w; +R124i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R126i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +// 18 +R127i.x = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 19 +PV1i.x = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS0i)); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.w))); +// 20 +backupReg0i = R126i.z; +R126i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[109].w)); +PV0i.z = R126i.z; +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.y)) + uf_blockVS7[106].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 21 +R125i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R125i.x; +R9i.y = floatBitsToInt(fract(intBitsToFloat(R1i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R124i.w = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +R127i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x42c80000)); +R127i.x = clampFI32(R127i.x); +PS1i = R127i.x; +// 22 +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[107].x)); +R10i.y = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[110].w)); +PV0i.y = R10i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PS1i))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PS1i))); +PS0i = R1i.z; +// 23 +backupReg0i = R124i.x; +R124i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(R127i.x))); +// 24 +R127i.x = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 25 +PV1i.x = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS0i)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.w))); +// 26 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.w) + -(uf_blockVS7[111].w)); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.y)) + uf_blockVS7[108].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 27 +R9i.x = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R9i.x; +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R0i.w = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +// 28 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[109].x)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R126i.w))); +// 29 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +// 30 +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R8i.w)) + intBitsToFloat(PV1i.x))); +R4i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +PS0i = R4i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R4i.x; +backupReg1i = R1i.y; +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), uf_blockVS11[5].z)); +R1i.y = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(backupReg0i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),uf_blockVS13[24].x) + -(uf_blockVS13[24].y))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R11i.y)) + intBitsToFloat(backupReg1i))); +PV0i.w = R123i.w; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R11i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R2i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[24].w, intBitsToFloat(PS0i))); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.x))); +// 4 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +// 5 +R9i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),uf_blockVS13[25].w) + uf_blockVS13[25].w)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R0i.x))); +R125i.y = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R4i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R1i.y)) + uf_blockVS7[110].x)); +PV0i.w = R123i.w; +// 1 +R124i.x = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R8i.z))); +PV1i.x = R124i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R1i.w))); +PV1i.z = R123i.z; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PV1i.x)); +R1i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R9i.x)) + intBitsToFloat(PV1i.z))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(R3i.z)); +// 4 +PV0i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i))); +R1i.w = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R1i.w = clampFI32(R1i.w); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(uf_blockVS13[28].y + 1.0); +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(PS0i) * 1.5); +R126i.x = clampFI32(R126i.x); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +// 2 +backupReg0i = R0i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w)); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.w = R123i.w; +R125i.z = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R2i.z))); +PS0i = R125i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV0i.z)) + uf_blockVS13[27].x)); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x41700000)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y))); +// 4 +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS13[26].w)); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R1i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +backupReg0i = R124i.z; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0)); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS0i))); +R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0x41080000)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i)); +R2i.y = 0; +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3daaaaab)); +R0i.w = ((0.0 >= intBitsToFloat(R4i.z))?int(0xFFFFFFFF):int(0x0)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 7 +R3i.x = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R0i.y = floatBitsToInt(intBitsToFloat(PS0i) + 0.5); +R8i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3e4ccccd))); +R1i.w = 0; +R3i.z = floatBitsToInt(exp2(intBitsToFloat(R124i.z))); +PS1i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +R0i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R0i.xy)).xyz); +R2i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R2i.zy)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R3i.z; +PV0i.x = floatBitsToInt(min(intBitsToFloat(R8i.z), 1.0)); +R126i.y = 0; +R3i.z = ((R0i.w == 0)?(R3i.w):(R1i.w)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(backupReg0i)) + uf_blockVS13[23].z)); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R8i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS8[3].x,intBitsToFloat(R4i.z)) + 0.0)); +PS0i = R8i.x; +// 1 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.x))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.x))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w)); +PV1i.w = clampFI32(PV1i.w); +R1i.x = 0; +PS1i = R1i.x; +// 2 +R10i.x = R12i.y; +R125i.y = PV1i.w; +R126i.z = PV1i.w; +R124i.w = ((R0i.w == 0)?(R1i.z):(R126i.y)); +R0i.y = R14i.y; +PS0i = R0i.y; +// 3 +R125i.x = ((R0i.w == 0)?(R13i.y):(R13i.y)); +R124i.y = ((R0i.w == 0)?(R5i.w):(R3i.x)); +R0i.z = R12i.w; +R127i.w = ((R0i.w == 0)?(R22i.z):(R22i.z)); +R125i.w = ((R0i.w == 0)?(R8i.x):(R1i.x)); +PS1i = R125i.w; +// 4 +R0i.x = ((R0i.w == 0)?(0):(0x3f800000)); +PV0i.x = R0i.x; +R123i.y = ((R0i.w == 0)?(0):(R9i.x)); +PV0i.y = R123i.y; +R127i.z = ((R0i.w == 0)?(R1i.y):(R1i.y)); +R123i.w = ((R0i.w == 0)?(0):(R9i.z)); +PV0i.w = R123i.w; +R126i.x = ((R0i.w == 0)?(0):(R4i.x)); +PS0i = R126i.x; +// 5 +R18i.x = ((PV0i.x == 0)?(R9i.z):(PV0i.w)); +R18i.y = ((PV0i.x == 0)?(R9i.x):(PV0i.y)); +R123i.z = ((R0i.w == 0)?(0):(R125i.y)); +PV1i.z = R123i.z; +R123i.w = ((R0i.w == 0)?(0):(R127i.y)); +PV1i.w = R123i.w; +R124i.z = ((R0i.w == 0)?(0):(R124i.x)); +PS1i = R124i.z; +// 6 +R19i.x = ((R0i.x == 0)?(R127i.y):(PV1i.w)); +R123i.y = ((R0i.w == 0)?(0):(R125i.z)); +PV0i.y = R123i.y; +R18i.z = ((R0i.x == 0)?(R125i.y):(PV1i.z)); +R18i.w = ((R0i.x == 0)?(R4i.x):(R126i.x)); +R122i.x = ((R0i.w == 0)?(0):(R126i.z)); +PS0i = R122i.x; +// 7 +backupReg0i = R124i.x; +R124i.x = ((R0i.w == 0)?(0):(R2i.y)); +R19i.y = ((R0i.x == 0)?(backupReg0i):(R124i.z)); +R19i.z = ((R0i.x == 0)?(R125i.z):(PV0i.y)); +R19i.w = ((R0i.x == 0)?(R126i.z):(PS0i)); +R126i.x = ((R0i.w == 0)?(0):(R2i.w)); +PS1i = R126i.x; +// 8 +R127i.x = ((R0i.w == 0)?(0):(R10i.x)); +R123i.y = ((R0i.w == 0)?(0):(R2i.z)); +PV0i.y = R123i.y; +R124i.z = ((R0i.w == 0)?(0):(R0i.y)); +R123i.w = ((R0i.w == 0)?(0):(R2i.x)); +PV0i.w = R123i.w; +R127i.y = ((R0i.w == 0)?(0):(R0i.z)); +PS0i = R127i.y; +// 9 +R20i.x = ((R0i.x == 0)?(R2i.x):(PV0i.w)); +R20i.y = ((R0i.x == 0)?(R2i.y):(R124i.x)); +R20i.z = ((R0i.x == 0)?(R2i.z):(PV0i.y)); +R5i.w = ((R0i.w == 0)?(0):(R10i.w)); +R126i.z = ((R0i.w == 0)?(0):(R5i.y)); +PS1i = R126i.z; +// 10 +R123i.x = ((R0i.w == 0)?(0):(R10i.w)); +PV0i.x = R123i.x; +R125i.y = ((R0i.w == 0)?(0):(R5i.z)); +R123i.z = ((R0i.w == 0)?(0):(R6i.y)); +PV0i.z = R123i.z; +R20i.w = ((R0i.x == 0)?(R2i.w):(R126i.x)); +R2i.w = ((R0i.w == 0)?(0):(R14i.z)); +PS0i = R2i.w; +// 11 +R23i.x = ((R0i.x == 0)?(R10i.w):(PV0i.x)); +R23i.y = ((R0i.x == 0)?(R6i.y):(PV0i.z)); +R125i.z = ((R0i.w == 0)?(0):(R6i.z)); +R123i.w = ((R0i.w == 0)?(0):(R5i.x)); +PV1i.w = R123i.w; +R126i.w = ((R0i.w == 0)?(R22i.y):(R1i.y)); +PS1i = R126i.w; +// 12 +R2i.x = ((R0i.x == 0)?(R5i.x):(PV1i.w)); +R2i.y = ((R0i.x == 0)?(R5i.y):(R126i.z)); +R123i.z = ((R0i.w == 0)?(0):(R6i.x)); +PV0i.z = R123i.z; +R10i.w = ((R0i.w == 0)?(0):(R13i.w)); +R126i.z = ((R0i.w == 0)?(R22i.z):(R22i.z)); +PS0i = R126i.z; +// 13 +R126i.x = ((R0i.w == 0)?(0):(R15i.y)); +R123i.y = ((R0i.w == 0)?(0):(R11i.w)); +PV1i.y = R123i.y; +R23i.z = ((R0i.x == 0)?(R6i.x):(PV0i.z)); +R23i.w = ((R0i.x == 0)?(R6i.z):(R125i.z)); +R122i.x = ((R0i.w == 0)?(0):(R7i.z)); +PS1i = R122i.x; +// 14 +R11i.x = ((R0i.x == 0)?(R11i.w):(PV1i.y)); +R11i.y = ((R0i.x == 0)?(R7i.z):(PS1i)); +R123i.z = ((R0i.w == 0)?(R22i.x):(R1i.x)); +PV0i.z = R123i.z; +R123i.w = ((R0i.w == 0)?(0):(R7i.y)); +PV0i.w = R123i.w; +R124i.x = ((R0i.w == 0)?(0):(R14i.w)); +PS0i = R124i.x; +// 15 +R22i.x = ((R0i.x == 0)?(R125i.w):(PV0i.z)); +R22i.y = ((R0i.x == 0)?(R127i.z):(R126i.w)); +R22i.z = ((R0i.x == 0)?(R127i.w):(R126i.z)); +PV1i.w = R12i.y; +R11i.z = ((R0i.x == 0)?(R7i.y):(PV0i.w)); +PS1i = R11i.z; +// 16 +backupReg0i = R13i.y; +R9i.x = ((R0i.x == 0)?(PV1i.w):(R127i.x)); +R13i.y = ((R0i.w == 0)?(0):(R17i.y)); +R123i.z = ((R0i.w == 0)?(0):(R7i.x)); +PV0i.z = R123i.z; +R127i.w = ((R0i.w == 0)?(0):(R16i.y)); +R127i.z = ((R0i.w == 0)?(R21i.w):(backupReg0i)); +PS0i = R127i.z; +// 17 +R123i.x = ((R0i.w == 0)?(R21i.y):(R126i.y)); +PV1i.x = R123i.x; +R123i.y = ((R0i.w == 0)?(R21i.x):(R1i.w)); +PV1i.y = R123i.y; +PV1i.z = R14i.y; +R11i.w = ((R0i.x == 0)?(R7i.x):(PV0i.z)); +PS1i = R12i.w; +// 18 +R21i.x = ((R0i.x == 0)?(R3i.z):(PV1i.y)); +R9i.y = ((R0i.x == 0)?(PV1i.z):(R124i.z)); +R9i.z = ((R0i.x == 0)?(PS1i):(R127i.y)); +R123i.w = ((R0i.w == 0)?(0):(R13i.x)); +PV0i.w = R123i.w; +R21i.y = ((R0i.x == 0)?(R124i.w):(PV1i.x)); +PS0i = R21i.y; +// 19 +R10i.x = ((R0i.x == 0)?(R13i.x):(PV0i.w)); +R10i.y = ((R0i.x == 0)?(R13i.w):(R10i.w)); +R10i.z = ((R0i.x == 0)?(R14i.z):(R2i.w)); +R2i.z = ((R0i.x == 0)?(R5i.z):(R125i.y)); +PS1i = R2i.z; +// 20 +R123i.x = ((R0i.w == 0)?(R21i.z):(R3i.x)); +PV0i.x = R123i.x; +R10i.w = ((R0i.x == 0)?(R15i.y):(R126i.x)); +R9i.w = ((R0i.x == 0)?(R5i.w):(R5i.w)); +PS0i = R9i.w; +// 21 +R21i.z = ((R0i.x == 0)?(R124i.y):(PV0i.x)); +R21i.w = ((R0i.x == 0)?(R125i.x):(R127i.z)); +// 22 +R123i.y = ((R0i.w == 0)?(0):(R14i.x)); +PV0i.y = R123i.y; +// 23 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg0i = R0i.x; +R0i.x = ((backupReg0i == 0)?(R14i.x):(PV0i.y)); +R0i.y = ((backupReg0i == 0)?(R14i.w):(R124i.x)); +R0i.z = ((backupReg0i == 0)?(R16i.y):(R127i.w)); +R0i.w = ((backupReg0i == 0)?(R17i.y):(R13i.y)); +PS1i = R0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R11i.x), intBitsToFloat(R11i.y), intBitsToFloat(R11i.z), intBitsToFloat(R11i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R9i.x), intBitsToFloat(R9i.y), intBitsToFloat(R9i.z), intBitsToFloat(R9i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/b9eeedc9f6628c36_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/b9eeedc9f6628c36_0000000000000000_vs.txt new file mode 100644 index 00000000..b6c1117c --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/b9eeedc9f6628c36_0000000000000000_vs.txt @@ -0,0 +1,2465 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader b9eeedc9f6628c36 // distant cloud and fog vs +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +layout(binding = 11, std140) uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + +layout(binding = 13, std140) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +layout(binding = 14, std140) uniform uniformBlockVS14 +{ +vec4 uf_blockVS14[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +layout(location = 11) in uvec4 attrDataSem11; +layout(location = 12) in uvec4 attrDataSem12; +layout(location = 13) in uvec4 attrDataSem13; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem8; +layout(location = 6) out vec4 passParameterSem11; +layout(location = 7) out vec4 passParameterSem14; +layout(location = 8) out vec4 passParameterSem15; +layout(location = 9) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 5) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem8; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem7.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem12; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R12i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem4; +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem10; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R11i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem9; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R10i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R7i.z = floatBitsToInt(-(intBitsToFloat(R12i.y)) + 1.0); +R0i.w = 0; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +R9i.w = floatBitsToInt(-(intBitsToFloat(R7i.w)) + uf_blockVS8[2].x); +R11i.w = floatBitsToInt(-(intBitsToFloat(R12i.x)) + 1.0); +PS1i = R11i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R9i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R17i.x = 0; +R17i.y = 0; +R17i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R18i.x = 0; +PS0i = R18i.x; +// 1 +R2i.w = R1i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R2i.w = R0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R2i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R6i.w)); +// 1 +R0i.x = floatBitsToInt(float(PS0i)); +PS1i = R0i.x; +// 2 +backupReg0i = R0i.x; +predResult = (intBitsToFloat(R9i.w) >= intBitsToFloat(backupReg0i)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R17i.x = 0; +R17i.y = 0; +R17i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R18i.x = 0; +PS0i = R18i.x; +// 1 +R0i.w = R1i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R0i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +R127i.x = R1i.y; +R0i.y = R2i.x; +R0i.z = R3i.x; +R127i.w = R2i.y; +R127i.z = R3i.y; +PS0i = R127i.z; +// 1 +R126i.x = R1i.z; +R127i.y = R2i.z; +R126i.z = R3i.z; +// 2 +backupReg0i = R0i.y; +backupReg0i = R0i.y; +backupReg1i = R0i.z; +backupReg1i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.y = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R6i.y; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R126i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +PS0i = R0i.w; +// 5 +R0i.y = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R0i.y; +// 6 +predResult = (intBitsToFloat(R6i.y) > 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +R127i.y = floatBitsToInt(1.0 / intBitsToFloat(R6i.y)); +PS0i = R127i.y; +// 1 +R13i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i))); +PS1i = R15i.x; +// 2 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R127i.y))); +} +activeMaskStack[3] = activeMaskStack[3] == false; +activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true; +if( activeMaskStackC[4] == true ) { +// 0 +R13i.x = 0; +PV0i.x = R13i.x; +// 1 +R14i.x = PV0i.x; +// 2 +R15i.x = R13i.x; +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +predResult = (intBitsToFloat(R0i.w) > 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +R127i.x = floatBitsToInt(1.0 / intBitsToFloat(R0i.w)); +PS0i = R127i.x; +// 1 +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +R15i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i))); +PS1i = R15i.y; +// 2 +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R127i.x))); +} +activeMaskStack[3] = activeMaskStack[3] == false; +activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true; +if( activeMaskStackC[4] == true ) { +// 0 +R14i.y = 0; +R15i.y = 0; +PS0i = R15i.y; +// 1 +R13i.y = 0; +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +predResult = (intBitsToFloat(R0i.y) > 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +R127i.x = floatBitsToInt(1.0 / intBitsToFloat(R0i.y)); +PS0i = R127i.x; +// 1 +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +R15i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i))); +PS1i = R15i.z; +// 2 +R14i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R127i.x))); +} +activeMaskStack[3] = activeMaskStack[3] == false; +activeMaskStackC[4] = activeMaskStack[3] == true && activeMaskStackC[3] == true; +if( activeMaskStackC[4] == true ) { +// 0 +R14i.z = 0; +R15i.z = 0; +PS0i = R15i.z; +// 1 +R13i.z = 0; +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +R127i.z = floatBitsToInt(intBitsToFloat(R10i.y) + intBitsToFloat(R10i.z)); +R0i.w = 0x3f800000; +R1i.w = floatBitsToInt(uf_blockVS8[4].w); +PS0i = R1i.w; +// 1 +R126i.x = R10i.z; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R126i.y = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(R10i.y)); +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +R2i.w = floatBitsToInt(uf_blockVS8[5].w); +R3i.w = floatBitsToInt(uf_blockVS8[6].w); +PS1i = R3i.w; +// 2 +backupReg0i = R0i.w; +R6i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w)),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(backupReg0i)))); +PV0i.x = R6i.x; +PV0i.y = R6i.x; +PV0i.z = R6i.x; +PV0i.w = R6i.x; +R127i.w = floatBitsToInt(1.0 / uf_blockVS7[9].x); +PS0i = R127i.w; +// 3 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(backupReg0i)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R7i.y = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS7[10].y)); +PS1i = R127i.x; +// 4 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),intBitsToFloat(R3i.w)),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(backupReg0i)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R12i.z = tempi.x; +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00020000; +PS0i = R127i.y; +// 5 +R125i.x = floatBitsToInt(-(intBitsToFloat(R125i.z)) + 1.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(R127i.w)); +R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00010000; +R127i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00040000; +R12i.w = floatBitsToInt(1.0 / intBitsToFloat(R0i.x)); +PS1i = R12i.w; +// 6 +backupReg0i = R127i.x; +R127i.x = R10i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0); +R125i.y = floatBitsToInt(intBitsToFloat(R127i.z) * 0.5); +PV0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.y)); +R126i.w = floatBitsToInt(floor(intBitsToFloat(R126i.x))); +PS0i = floatBitsToInt(float(R127i.y)); +// 7 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R19i.z = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(R12i.w)); +PV1i.z = R19i.z; +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R126i.z)); +// 8 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R125i.x))); +PS0i = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +// 9 +backupReg0i = R126i.y; +R125i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PS0i))); +R126i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * 0.5); +R3i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.x)); +R125i.w = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(R10i.z)); +PS1i = floatBitsToInt(float(R127i.w)); +// 10 +R3i.x = floatBitsToInt(intBitsToFloat(R125i.y) + -(0.5)); +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) * 2.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R124i.w = floatBitsToInt(floor(intBitsToFloat(R127i.x))); +R127i.w = int(intBitsToFloat(R127i.y)); +PS0i = R127i.w; +// 11 +PV1i.x = 0 - PS0i; +PV1i.y = floatBitsToInt((intBitsToFloat(R126i.w) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(R126i.w))?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.y))); +R127i.y = int(intBitsToFloat(R125i.x)); +PS1i = R127i.y; +// 12 +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +R125i.y = R10i.x; +R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) * 2.0); +PV0i.z = max(R127i.w, PV1i.x); +PV0i.w = 0 - PS1i; +R125i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R125i.x; +// 13 +R126i.x = max(R127i.y, PV0i.w); +R127i.y = floatBitsToInt(intBitsToFloat(R125i.w) * 0.5); +R4i.z = floatBitsToInt(intBitsToFloat(R126i.y) + -(0.5)); +R4i.z = floatBitsToInt(intBitsToFloat(R4i.z) * 2.0); +PV1i.w = 0 - PS0i; +PS1i = floatBitsToInt(float(PV0i.z)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 14 +PV0i.x = floatBitsToInt(floor(intBitsToFloat(R125i.y))); +PV0i.y = floatBitsToInt((intBitsToFloat(R124i.w) > 0.0)?1.0:0.0); +R125i.z = max(R125i.x, PV1i.w); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(R124i.w))?1.0:0.0); +R3i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(R127i.x))); +PS0i = R3i.y; +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.x) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PV0i.x))?1.0:0.0); +R0i.w = floatBitsToInt(intBitsToFloat(R127i.y) + -(0.5)); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +PS1i = floatBitsToInt(float(R126i.x)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 16 +PV0i.x = floatBitsToInt(max(intBitsToFloat(R10i.x), 0.0)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +R2i.z = floatBitsToInt(intBitsToFloat(R10i.y) + -(0.5)); +R1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(float(R125i.z)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 17 +PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.x), 0.0)); +R4i.y = floatBitsToInt(intBitsToFloat(R10i.x) + -(0.5)); +R1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(PV0i.y))); +R2i.w = floatBitsToInt(intBitsToFloat(R10i.z) + -(0.5)); +PS1i = floatBitsToInt(uf_blockVS7[13].y); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 18 +R1i.x = floatBitsToInt(intBitsToFloat(R11i.x) + intBitsToFloat(PV1i.x)); +PV0i.y = floatBitsToInt(uf_blockVS7[13].x); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R6i.z = floatBitsToInt(intBitsToFloat(R10i.x) + 1.0); +R5i.w = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(PS1i)); +R6i.y = floatBitsToInt(intBitsToFloat(R10i.y) + 1.0); +PS0i = R6i.y; +// 19 +PV1i.x = ((intBitsToFloat(R9i.w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +R0i.y = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV0i.y)); +R3i.w = floatBitsToInt(intBitsToFloat(R10i.z) + 1.0); +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R14i.x),intBitsToFloat(R14i.y),intBitsToFloat(R14i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +R4i.w = ((PV1i.x == 0)?(R9i.w):(0x3f800000)); +PS0i = R4i.w; +// 21 +R7i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R13i.x),intBitsToFloat(R13i.y),intBitsToFloat(R13i.z),0.0))); +PV1i.x = R7i.x; +PV1i.y = R7i.x; +PV1i.z = R7i.x; +PV1i.w = R7i.x; +// 22 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(R15i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.y = tempi.x; +R13i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x358637bd)); +PS0i = R13i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +R124i.x = floatBitsToInt(-(intBitsToFloat(R12i.z)) + uf_blockVS6[17].z); +PV0i.x = R124i.x; +R1i.y = floatBitsToInt(intBitsToFloat(R6i.x) + -(uf_blockVS6[17].x)); +R5i.z = floatBitsToInt(intBitsToFloat(R7i.y) + -(uf_blockVS6[17].y)); +R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.x)) + uf_blockVS6[17].x); +PV0i.w = R125i.w; +R0i.z = floatBitsToInt(intBitsToFloat(R12i.z) + -(uf_blockVS6[17].z)); +PS0i = R0i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(R3i.z) + -(uf_blockVS7[97].w)); +PV1i.y = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +R124i.z = floatBitsToInt(intBitsToFloat(R3i.z) + -(uf_blockVS7[96].w)); +R124i.w = floatBitsToInt((-(intBitsToFloat(PV0i.w)) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 2 +R2i.x = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.w)) * intBitsToFloat(PS1i)); +R125i.z = floatBitsToInt((0.0 > -(intBitsToFloat(R125i.w)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 3 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PV0i.y))?1.0:0.0); +R127i.y = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) > 0.0)?1.0:0.0); +tempResultf = log2(uf_blockVS7[114].w); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 4 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PS1i))); +R2i.y = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(R125i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +R124i.w = ((intBitsToFloat(PV1i.y) > 1.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = R124i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 5 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.z))); +R5i.y = floatBitsToInt(((PV0i.w == 0)?(intBitsToFloat(PV0i.z)):(-(intBitsToFloat(PV0i.z))))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3fc90fdb)); +R123i.w = ((PV0i.w == 0)?(R127i.y):(PS0i)); +PV1i.w = R123i.w; +R126i.z = ((intBitsToFloat(R124i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R126i.z; +// 6 +backupReg0i = R126i.x; +R125i.x = ((R124i.w == 0)?(0):(PV1i.z)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), uf_blockVS7[115].y)); +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + 1.0); +R126i.x = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R126i.x; +// 7 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(backupReg0i)); +R125i.y = floatBitsToInt(max(intBitsToFloat(PV0i.z), -(1.0))); +PV1i.y = R125i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[114].w) + 1.0); +R5i.x = floatBitsToInt(-(intBitsToFloat(R126i.z)) + 1.0); +PS1i = R5i.x; +// 8 +backupReg0i = R127i.y; +backupReg1i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), uf_blockVS7[115].x)); +R127i.y = floatBitsToInt(uf_blockVS7[114].y + intBitsToFloat(backupReg0i)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + 1.0); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PV1i.y))); +PV0i.w = R124i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(0x3edcf805) * intBitsToFloat(PV0i.w) + 1.0)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(0x3d6ee04d) * intBitsToFloat(PV0i.w) + intBitsToFloat(0x3f43b24e))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R3i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(R5i.x))); +PS1i = R126i.z; +// 10 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + uf_blockVS7[114].x); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS7[115].z)); +R125i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.y)), intBitsToFloat(PV1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.w = R123i.w; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R3i.y))); +PS0i = R124i.w; +// 11 +PV1i.x = ((0.0 > intBitsToFloat(R124i.x))?int(0xFFFFFFFF):int(0x0)); +R124i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R126i.z)); +PV1i.z = ((uf_blockVS7[114].w == 1.0)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = ((-(intBitsToFloat(R125i.w)) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 12 +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R124i.w)); +R127i.y = ((PV1i.z == 0)?(R127i.z):(R9i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[97].x, intBitsToFloat(R2i.x))); +// 13 +R3i.x = floatBitsToInt(uf_blockVS7[114].z + intBitsToFloat(R126i.y)); +PV1i.x = R3i.x; +R123i.y = ((intBitsToFloat(R125i.y) > 0.0)?(PV0i.z):(floatBitsToInt(-(intBitsToFloat(PV0i.z))))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R1i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), uf_blockVS7[113].y)); +R124i.w = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(R124i.y)); +PS1i = R124i.w; +// 14 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.z))); +R125i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.z)); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R125i.x))); +PV0i.w = R125i.w; +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.0); +PS0i = R127i.w; +// 15 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PV0i.w))?1.0:0.0); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.y))); +R127i.z = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.w) > 0.0)?1.0:0.0); +R124i.y = ((intBitsToFloat(R124i.x) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = R124i.y; +// 16 +backupReg0i = R126i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), uf_blockVS7[113].x)); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3fc90fdb)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R124i.w))); +R124i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(backupReg0i)); +PS0i = R124i.w; +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(R126i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(R126i.w)); +R126i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R125i.y)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.z)); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.0); +PS1i = R127i.z; +// 18 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3fc90fdb)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), uf_blockVS7[113].z)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R127i.y))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV1i.y))); +PS0i = R125i.z; +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R127i.y))); +PS1i = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(PV0i.z)); +// 20 +R3i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.w)); +R123i.y = ((R0i.w == 0)?(PV1i.z):(0x40490fdb)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(uf_blockVS7[96].z + intBitsToFloat(R125i.z)); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.w = R123i.w; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R3i.z))); +PS0i = R4i.y; +// 21 +backupReg0i = R5i.x; +backupReg0i = R5i.x; +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R3i.z))); +R5i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(backupReg0i))); +R1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(backupReg0i))); +R123i.w = ((R124i.y == 0)?(PV0i.y):(R126i.y)); +PV1i.w = R123i.w; +R4i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PS1i = R4i.x; +// 22 +backupReg0i = R0i.z; +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.y)),-(intBitsToFloat(R5i.z)),-(intBitsToFloat(backupReg0i)),-0.0),vec4(-(intBitsToFloat(R1i.y)),-(intBitsToFloat(R5i.z)),-(intBitsToFloat(backupReg0i)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.y = tempi.x; +R3i.z = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV1i.w))); +PS0i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R2i.y; +R123i.x = floatBitsToInt((intBitsToFloat(R3i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(R5i.y)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[3].y)); +R125i.w = floatBitsToInt((intBitsToFloat(R3i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +PS0i = floatBitsToInt(tempResultf); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R1i.y)), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.z)), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R5i.z)), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), uf_blockVS7[13].z)); +R126i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PS1i = R126i.y; +// 2 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x))); +PV0i.x = R3i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +PV0i.y = R3i.y; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.y))); +PV0i.z = R2i.z; +R0i.w = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R1i.z)); +R126i.z = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PS0i = R126i.z; +// 3 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt(fract(intBitsToFloat(R125i.w))); +R126i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV0i.x)); +R125i.z = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(PV0i.y)); +R125i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R127i.z = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(PV0i.z)); +PS1i = R127i.z; +// 4 +backupReg0i = R0i.z; +backupReg0i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.y),intBitsToFloat(R5i.z),intBitsToFloat(backupReg0i),-0.0),vec4(intBitsToFloat(R1i.y),intBitsToFloat(R5i.z),intBitsToFloat(backupReg0i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.w = tempi.x; +R124i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3e22f983)); +PS0i = R124i.y; +// 5 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),intBitsToFloat(R127i.z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R124i.x = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(0x3e22f983)); +PS1i = R124i.x; +// 6 +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[3].y)); +R123i.z = floatBitsToInt((intBitsToFloat(R126i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.z = R123i.z; +R127i.z = floatBitsToInt(sqrt(intBitsToFloat(R124i.w))); +PS0i = R127i.z; +// 7 +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983)); +R126i.x = floatBitsToInt(cos((intBitsToFloat(R124i.y))/0.1591549367)); +PS1i = R126i.x; +// 8 +R125i.z = floatBitsToInt(sin((intBitsToFloat(R124i.x))/0.1591549367)); +PS0i = R125i.z; +// 9 +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R124i.w = floatBitsToInt(sqrt(intBitsToFloat(R127i.x))); +PS1i = R124i.w; +// 10 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 11 +R1i.w = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS0i)); +PV1i.w = R1i.w; +R127i.w = floatBitsToInt(sin((intBitsToFloat(R124i.y))/0.1591549367)); +PS1i = R127i.w; +// 12 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.w))); +PV0i.x = R5i.x; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R125i.z))); +R126i.y = floatBitsToInt(cos((intBitsToFloat(R124i.x))/0.1591549367)); +PS0i = R126i.y; +// 13 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PV1i.x = R124i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R0i.y))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R124i.w = floatBitsToInt(sin((intBitsToFloat(R127i.y))/0.1591549367)); +PS1i = R124i.w; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R127i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R125i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +R6i.w = floatBitsToInt(-(intBitsToFloat(PS1i))); +R127i.x = floatBitsToInt(cos((intBitsToFloat(R127i.y))/0.1591549367)); +PS0i = R127i.x; +// 15 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R0i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(PV0i.x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +PV1i.z = R0i.z; +R2i.w = floatBitsToInt(-(intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.y)); +PV1i.w = R2i.w; +R7i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.z)); +PS1i = R7i.w; +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R125i.w))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.x))); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PV1i.w))); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(R0i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R6i.w)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R1i.z = floatBitsToInt(-(intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R4i.x)) + intBitsToFloat(PS0i))); +PV1i.w = R123i.w; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R7i.w)) + intBitsToFloat(PV1i.w))); +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.y))); +PS0i = R16i.x; +// 19 +R8i.z = floatBitsToInt(uf_blockVS8[3].z); +R8i.w = floatBitsToInt(uf_blockVS8[3].w); +R16i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R1i.z)) + intBitsToFloat(PV0i.x))); +PS1i = R16i.z; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[97].z, intBitsToFloat(R2i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[97].y, intBitsToFloat(R2i.x))); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R2i.y)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), uf_blockVS11[2].x)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(R0i.w)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), uf_blockVS11[2].x)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockVS11[2].x)); +PS1i = R126i.y; +// 2 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS11[1].w)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV1i.x))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R8i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 4 +R0i.x = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(PS1i)); +R0i.x = clampFI32(R0i.x); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.w))); +PV0i.y = R2i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R1i.w))); +PV0i.z = R3i.z; +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R5i.w))); +// 6 +backupReg0i = R0i.y; +backupReg1i = R0i.z; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.y))); +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R6i.w)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R7i.w)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +// 9 +R1i.xyz = floatBitsToInt(vec3(intBitsToFloat(R6i.x),intBitsToFloat(R7i.y),intBitsToFloat(R12i.z)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +PV1i.x = R1i.x; +PV1i.y = R1i.y; +PV1i.z = R1i.z; +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R127i.w)); +R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R125i.y)); +// 11 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.x)); +// 12 +R0i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.y)); +// 13 +predResult = (uf_blockVS11[5].y != 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +PV0i.y = floatBitsToInt(uf_blockVS8[5].w); +PV0i.z = floatBitsToInt(uf_blockVS8[4].w); +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(R1i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(R1i.y))); +PV1i.w = floatBitsToInt(uf_blockVS8[6].w); +R127i.z = floatBitsToInt(1.0 / uf_blockVS11[5].y); +PS1i = R127i.z; +// 2 +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(R1i.z))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 5 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(R127i.z)); +PV1i.y = clampFI32(PV1i.y); +// 6 +backupReg0i = R0i.x; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(R1i.y)); +R127i.w = floatBitsToInt(uf_blockVS8[4].w + uf_blockVS8[5].w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R2i.y)); +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), uf_blockVS11[0].z)); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS11[1].z, uf_blockVS11[0].w)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS11[0].w)); +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.y))); +PV0i.y = ((0.0 > intBitsToFloat(PV1i.z))?int(0xFFFFFFFF):int(0x0)); +PV0i.z = floatBitsToInt(uf_blockVS8[6].w + intBitsToFloat(R127i.w)); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.z)), intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PV1i.z))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS8[2].x, uf_blockVS11[1].x)); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3dd70a3d)); +R0i.z = ((PV0i.y == 0)?(PS0i):(PV0i.w)); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS11[1].y, uf_blockVS11[0].z)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R127i.x)); +// 5 +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.w)); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(PV0i.x))); +// 6 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.y = R123i.y; +// 7 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +// 8 +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.w = R123i.w; +// 9 +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983)); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983)); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R9i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R9i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.y))/0.1591549367)); +// 11 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R126i.x))); +PS1i = floatBitsToInt(cos((intBitsToFloat(R127i.y))/0.1591549367)); +// 12 +R0i.y = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(sin((intBitsToFloat(R127i.z))/0.1591549367)); +// 13 +R0i.x = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.w)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R126i.w))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(R127i.w))); +// 14 +backupReg0i = R1i.y; +R1i.x = ((intBitsToFloat(PS1i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.z)); +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R9i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R9i.y),intBitsToFloat(R13i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 16 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 17 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PS0i))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(PS0i))); +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), uf_blockVS14[1].w)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].y, intBitsToFloat(PV0i.y))); +// 2 +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].z, intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].y, intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].x, intBitsToFloat(PV1i.x))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.z))); +// 4 +backupReg0i = R0i.x; +R0i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.y),intBitsToFloat(R1i.y),intBitsToFloat(backupReg0i)) + vec3(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.z))); +PV0i.x = R0i.x; +PV0i.y = R0i.y; +PV0i.z = R0i.z; +// 5 +R4i.x = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(PV0i.x)); +PV1i.x = R4i.x; +R1i.y = floatBitsToInt(-(intBitsToFloat(R7i.y)) + intBitsToFloat(PV0i.y)); +PV1i.y = R1i.y; +R3i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.z)); +PV1i.z = R3i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 7 +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +PV0i.z = ((intBitsToFloat(PS1i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 9 +R4i.z = ((PV0i.z == 0)?(0):(R1i.x)); +// 10 +predResult = (R4i.z != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R1i.y),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R1i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[95].x)); +PS0i = R127i.x; +// 1 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), uf_blockVS7[95].x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), uf_blockVS7[95].x)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +// 5 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +R0i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(R3i.x)); +R6i.y = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(R3i.y)); +R127i.z = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(R2i.z)); +R4i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R0i.x)); +R5i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R0i.y)); +PS0i = R5i.y; +// 1 +R126i.x = 0x3f800000; +R0i.y = floatBitsToInt(uf_blockVS7[60].x); +R8i.z = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(R0i.z)); +PV1i.z = R8i.z; +R127i.w = 0x3f800000; +PV1i.w = R127i.w; +R0i.z = floatBitsToInt(uf_blockVS7[60].y); +PS1i = R0i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.w)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.z = tempi.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R7i.y = tempi.x; +// 4 +R11i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = R11i.x; +PV0i.y = R11i.x; +PV0i.z = R11i.x; +PV0i.w = R11i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.w = tempi.x; +// 6 +R0i.x = floatBitsToInt(uf_blockVS7[60].z); +PV0i.y = PV1i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R12i.z = floatBitsToInt((intBitsToFloat(R11i.x) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = R12i.z; +// 7 +R127i.y = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +R11i.z = floatBitsToInt((intBitsToFloat(R11i.x) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.z = R11i.z; +R123i.w = floatBitsToInt((intBitsToFloat(R11i.x) * 0.0 + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R8i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +PS1i = R8i.x; +// 8 +R13i.x = floatBitsToInt((intBitsToFloat(R9i.z) * 0.5 + intBitsToFloat(PV1i.w))); +R9i.y = floatBitsToInt((intBitsToFloat(R7i.y) * -(0.5) + intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +// 9 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 10 +R1i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(-(uf_blockVS7[69].x) + uf_blockVS7[70].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 11 +R7i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R6i.y),intBitsToFloat(R127i.z),intBitsToFloat(R126i.x)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R6i.y),intBitsToFloat(R127i.z),intBitsToFloat(R126i.x)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 14 +PV0i.x = PV1i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +R127i.y = floatBitsToInt(-(uf_blockVS7[69].w) + uf_blockVS7[70].w); +R123i.z = floatBitsToInt((intBitsToFloat(R126i.z) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +// 15 +R126i.y = floatBitsToInt(-(uf_blockVS7[70].x) + uf_blockVS7[71].x); +R123i.w = floatBitsToInt((intBitsToFloat(R126i.z) * 0.5 + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(-(uf_blockVS7[70].w) + uf_blockVS7[71].w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 17 +R1i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 18 +PV0i.x = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV1i.w)); +R2i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +// 19 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 20 +R6i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +// 21 +R2i.x = floatBitsToInt(uf_blockVS7[76].x); +R1i.w = floatBitsToInt(uf_blockVS7[76].y); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg1i = R0i.z; +PV0i.x = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS8[0].y)); +PV0i.w = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(PS0i)); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].z)); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt((uf_blockVS7[8].w > 0.0)?1.0:0.0); +// 2 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].w)?1.0:0.0); +R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),uf_blockVS7[9].z) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +backupReg0i = R127i.w; +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].w); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(PS1i)); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),uf_blockVS7[10].x) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.x))); +// 6 +R126i.z = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV0i.w = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +// 7 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.w))); +// 8 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.z),intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[69].w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[68].w)); +// 1 +R127i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R1i.z)) + uf_blockVS7[68].x)); +R126i.z = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.x)) + uf_blockVS7[69].x)); +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[71].w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[70].w)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +// 3 +backupReg0i = R127i.x; +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R2i.z)) + uf_blockVS7[70].x)); +R127i.z = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV0i.x))); +// 4 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS7[59].x)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(PS1i))); +R14i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), uf_blockVS7[59].x)); +PS0i = R14i.z; +// 5 +backupReg0i = R127i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.y))); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS7[59].x)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.x))); +R0i.w = floatBitsToInt(uf_blockVS7[76].z); +// 6 +R125i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[85].w)); +PV0i.x = R125i.x; +PV0i.y = floatBitsToInt(-(uf_blockVS7[84].w) + uf_blockVS7[85].w); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.w))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[84].w)); +PV0i.w = R127i.w; +// 7 +R126i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R126i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(-(uf_blockVS7[84].x) + uf_blockVS7[85].x); +R126i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 8 +R1i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[71].x,intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[86].w)); +PV0i.y = R125i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +// 9 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[87].w)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.z))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[84].x)); +PV1i.z = R123i.z; +R127i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[84].x, intBitsToFloat(PS0i))); +// 10 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(-(uf_blockVS7[85].x) + uf_blockVS7[86].x); +R126i.z = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R126i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +// 11 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[85].w) + uf_blockVS7[86].w); +// 12 +backupReg0i = R127i.w; +R127i.z = floatBitsToInt(-(uf_blockVS7[86].x) + uf_blockVS7[87].x); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 13 +PV1i.x = floatBitsToInt(-(uf_blockVS7[86].w) + uf_blockVS7[87].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[85].x)); +PV0i.x = R123i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.y)) + intBitsToFloat(R126i.x))); +// 16 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV1i.x)) + uf_blockVS7[86].x)); +PV0i.z = R123i.z; +// 17 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +// 18 +R1i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[87].x,intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.z))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockVS8[0].w)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), uf_blockVS8[1].x)); +// 1 +PV1i.x = ((intBitsToFloat(R10i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS8[1].w)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[1].z)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[1].y)); +PS1i = ((intBitsToFloat(R10i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 2 +R14i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(R125i.y))); +R1i.y = ((PV1i.x == 0)?(R12i.x):(R11i.w)); +R15i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV1i.z))); +R6i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV1i.w))); +R0i.y = ((PS1i == 0)?(R12i.y):(R7i.z)); +PS0i = R0i.y; +// 3 +PV1i.x = ((intBitsToFloat(R10i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.y = ((intBitsToFloat(R10i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R2i.z = ((intBitsToFloat(R10i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = ((intBitsToFloat(R10i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R0i.x = R11i.w; +PS1i = R0i.x; +// 4 +R1i.x = ((PV1i.y == 0)?(R12i.x):(R11i.w)); +R2i.y = ((PV1i.w == 0)?(R12i.y):(R12i.y)); +R0i.z = ((PV1i.w == 0)?(R12i.x):(PS1i)); +R0i.w = ((PV1i.x == 0)?(R12i.y):(R7i.z)); +R9i.x = floatBitsToInt(uf_blockVS8[3].x); +PS0i = R9i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +// 1 +PV1i.x = (PV0i.y == 0x00080000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +PV1i.w = (PV0i.x == 0x00100000)?int(0xFFFFFFFF):int(0x0); +// 2 +R4i.x = ((PV1i.w == 0)?(R12i.y):(R0i.y)); +R0i.y = ((PV1i.x == 0)?(R12i.x):(R1i.y)); +PV0i.z = (PV1i.y == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PV0i.w = (PV1i.z == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +// 3 +PV1i.x = (PS0i == 0x00800000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +R7i.z = ((PV0i.w == 0)?(R12i.y):(R0i.w)); +R2i.w = ((PV0i.z == 0)?(R12i.x):(R1i.x)); +PS1i = floatBitsToInt(uf_blockVS7[5].y) & int(1); +// 4 +R126i.x = ((PV1i.x == 0)?(R12i.y):(R2i.y)); +PV0i.x = R126i.x; +R125i.y = (PV1i.y == 0x01000000)?int(0xFFFFFFFF):int(0x0); +R6i.z = (int(1) != PS1i)?int(0xFFFFFFFF):int(0x0); +PV0i.z = R6i.z; +R127i.w = ((PV1i.x == 0)?(R12i.x):(R0i.z)); +PV0i.w = R127i.w; +R125i.x = int(uf_blockVS7[26].x); +PS0i = R125i.x; +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R123i.z = ((R2i.z == 0)?(PV0i.w):(PV0i.w)); +PV1i.z = R123i.z; +R124i.w = ((PV0i.z == 0)?(R10i.x):(R10i.y)); +R127i.z = int(uf_blockVS7[26].y); +PS1i = R127i.z; +// 6 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +R123i.y = ((R2i.z == 0)?(R126i.x):(PV1i.x)); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +R3i.w = ((R125i.y == 0)?(R127i.w):(PV1i.z)); +PS0i = floatBitsToInt(float(PV1i.y)); +// 7 +R5i.x = ((R125i.y == 0)?(R126i.x):(PV0i.y)); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R125i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +PS1i = floatBitsToInt(float(PV0i.x)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R0i.w = int(-1) + R125i.x; +PS0i = floatBitsToInt(float(R126i.z)); +// 9 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R127i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.w; +// 10 +PV0i.x = 0 - PS1i; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 11 +PV1i.x = 0 - PS0i; +R126i.z = max(R127i.w, PV0i.x); +R127i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.w; +// 12 +PV0i.x = 0 - PS1i; +R4i.z = max(R126i.w, PV1i.x); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PS0i = floatBitsToInt(float(R125i.w)); +// 13 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R3i.z = max(R127i.w, PV0i.x); +R126i.y = floatBitsToInt(float(R125i.x)); +PS1i = R126i.y; +// 14 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(float(R127i.z)); +PS0i = R125i.y; +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(PV0i.w)); +R124i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R124i.w; +// 16 +PV0i.x = 0 - PS1i; +PS0i = int(intBitsToFloat(PV1i.x)); +// 17 +R127i.z = max(R124i.w, PV0i.x); +R12i.y = R126i.z * PS0i; +PS1i = R12i.y; +// 18 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y)); +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(PS0i)); +R1i.w = floatBitsToInt(float(R125i.x)); +PS1i = R1i.w; +// 20 +R3i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R0i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R0i.z; +// 21 +PS1i = floatBitsToInt(float(PS0i)); +// 22 +PV0i.w = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PS1i)); +R1i.x = floatBitsToInt(float(R0i.z)); +PS0i = R1i.x; +// 23 +R123i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R126i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R5i.z = floatBitsToInt(1.0 / abs(intBitsToFloat(R1i.w))); +PS1i = R5i.z; +// 24 +PV0i.y = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R1i.x)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.x)); +// 25 +backupReg0i = R0i.w; +R0i.x = int(1) - PS0i; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +R1i.z = PS0i * backupReg0i; +PS1i = R1i.z; +// 26 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(R126i.z))); +PV0i.y = R126i.y; +PS0i = floatBitsToInt(float(R126i.w)); +// 27 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R1i.w)))?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(-(abs(intBitsToFloat(R1i.w))) + intBitsToFloat(PV0i.y)); +R2i.x = int(intBitsToFloat(R126i.x)); +PS1i = R2i.x; +// 28 +R2i.z = ((intBitsToFloat(PV1i.x) == 0.0)?(R126i.y):(PV1i.w)); +PV0i.z = R2i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +R0i.w = R127i.z * PS1i; +PS0i = R0i.w; +// 29 +R2i.y = floatBitsToInt(abs(intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.z)); +R12i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R12i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = 0 - R12i.x; +R123i.w = ((-(intBitsToFloat(R2i.z)) > 0.0)?(R2i.y):(R2i.z)); +PV0i.w = R123i.w; +// 1 +R123i.x = ((-(intBitsToFloat(R1i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.x = R123i.x; +PV1i.y = max(R12i.x, PV0i.z); +// 2 +R123i.z = ((intBitsToFloat(R1i.w) == 0.0)?(R1i.x):(PV1i.x)); +PV0i.z = R123i.z; +PS0i = PV1i.y * R2i.x; +// 3 +R126i.y = R0i.z + PS0i; +PS1i = int(intBitsToFloat(PV0i.z)); +// 4 +backupReg0i = R0i.x; +PS0i = backupReg0i * PS1i; +// 5 +PV1i.y = PS0i + R1i.z; +R126i.x = R3i.z * R126i.y; +PS1i = R126i.x; +// 6 +PS0i = R4i.z * PV1i.y; +// 7 +PV1i.w = PS0i + R12i.y; +// 8 +PV0i.x = R126i.x + PV1i.w; +// 9 +PV1i.z = R0i.w + PV0i.x; +// 10 +R125i.y = floatBitsToInt(float(PV1i.z)); +PS0i = R125i.y; +// 11 +R127i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), abs(intBitsToFloat(PS0i)))); +// 12 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +// 13 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = R126i.y; +// 14 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.y) >= abs(intBitsToFloat(R1i.w)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(abs(intBitsToFloat(R1i.w))) + intBitsToFloat(PV1i.y)); +// 15 +R127i.z = ((intBitsToFloat(PV0i.x) == 0.0)?(R126i.y):(PV0i.w)); +PV1i.z = R127i.z; +// 16 +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.z)); +// 17 +R123i.w = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +PV1i.w = R123i.w; +// 18 +R123i.x = ((-(intBitsToFloat(R125i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.w)))):(PV1i.w)); +PV0i.x = R123i.x; +// 19 +R123i.z = ((intBitsToFloat(R1i.w) == 0.0)?(R125i.y):(PV0i.x)); +PV1i.z = R123i.z; +// 20 +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 21 +R126i.w = floatBitsToInt(float(PS0i)); +PS1i = R126i.w; +// 22 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R125i.x = floatBitsToInt(float(R125i.y)); +PS0i = R125i.x; +// 23 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +// 24 +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * 0.5 + intBitsToFloat(R126i.w))); +PV0i.w = R123i.w; +// 25 +R126i.x = floatBitsToInt((-(intBitsToFloat(PV0i.y)) * 4.0 + intBitsToFloat(R124i.w))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +// 26 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.x) >= 4.0)?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0xc0800000)); +// 27 +R124i.w = ((intBitsToFloat(PV0i.y) == 0.0)?(R126i.x):(PV0i.z)); +PV1i.w = R124i.w; +PS1i = int(intBitsToFloat(PV0i.x)); +// 28 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + 4.0); +R1i.w = PS1i + 0x0000001b; +PS0i = int(uf_blockVS7[48].z); +// 29 +R123i.z = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV0i.x):(R124i.w)); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt(float(PS0i)); +PS1i = R124i.w; +// 30 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +R123i.y = ((-(intBitsToFloat(R125i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +// 31 +R125i.y = ((intBitsToFloat(PV0i.z) == 0.0)?(0):(PV0i.x)); +PV1i.y = R125i.y; +PS1i = int(intBitsToFloat(PV0i.y)); +// 32 +PV0i.x = int(-1) + PS1i; +R126i.y = 0xfffffffd + PS1i; +R127i.z = 0xfffffffe + PS1i; +PV0i.w = floatBitsToInt(abs(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(float(PS1i)); +// 33 +R123i.x = ((-(intBitsToFloat(R125i.y)) > 0.0)?(PV0i.w):(R125i.y)); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.x)); +// 34 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R126i.z = ((intBitsToFloat(R124i.w) == 0.0)?(0):(PV1i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(float(R127i.z)); +// 35 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R125i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R125i.x; +// 36 +PV0i.x = 0 - PS1i; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.y))); +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 37 +PV1i.x = 0 - PS0i; +PV1i.y = max(R125i.x, PV0i.x); +R125i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R125i.y; +// 38 +R3i.x = int(1) - PV1i.y; +PV0i.y = 0 - PS1i; +PV0i.w = max(R127i.z, PV1i.x); +PS0i = floatBitsToInt(float(R126i.y)); +// 39 +PV1i.x = max(R125i.y, PV0i.y); +R2i.y = int(1) - PV0i.w; +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R3i.y = int(intBitsToFloat(R126i.z)); +PS1i = R3i.y; +// 40 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R5i.z = int(1) - PV1i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.w)); +// 41 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R124i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R124i.w; +// 42 +PV0i.x = 0 - PS1i; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R0i.w = floatBitsToInt(1.0 / uf_blockVS7[48].z); +PS0i = R0i.w; +// 43 +PV1i.z = max(R124i.w, PV0i.x); +R4i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R4i.y; +// 44 +R12i.y = int(1) - PV1i.z; +} +if( activeMaskStackC[3] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockVS7[R1i.w].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(R0i.w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), uf_blockVS7[45].y)); +R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) * 2.0); +R127i.z = ((R6i.z == 0)?(0):(int(1))); +PV0i.z = R127i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS7[45].x)); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) * 2.0); +R126i.w = R12i.y * R1i.w; +PS0i = R126i.w; +// 1 +PV1i.x = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +R126i.y = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + -(0.5))); +PV1i.w = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R125i.x = R5i.z * R1i.z; +PS1i = R125i.x; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +R126i.z = R2i.y * R1i.y; +PS0i = R126i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),uf_blockVS7[46].w) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),uf_blockVS7[46].z) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(PV0i.z)))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),uf_blockVS7[44].y) + intBitsToFloat(PV0i.x))); +PS1i = R3i.x * R1i.x; +// 4 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),uf_blockVS7[45].z) + intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),uf_blockVS7[45].w) + intBitsToFloat(PV1i.x))); +PV0i.z = (R127i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +PV0i.w = R126i.z + PS1i; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 5 +PV1i.x = R125i.x + PV0i.w; +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS0i))); +PV1i.y = R125i.y; +R123i.z = ((PV0i.z == 0)?(R10i.x):(R10i.z)); +PV1i.z = R123i.z; +R127i.w = ((PV0i.z == 0)?(R10i.y):(R10i.x)); +PS1i = floatBitsToInt(float(R3i.y)); +// 6 +backupReg0i = R126i.x; +backupReg1i = R125i.z; +R126i.x = ((R126i.y == 0)?(PV1i.z):(R10i.y)); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(PV1i.y)) + -(0.5))); +R125i.z = R126i.w + PV1i.x; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS1i)) + intBitsToFloat(backupReg1i))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(R4i.y)); +// 7 +backupReg0i = R124i.z; +R123i.x = ((R126i.y == 0)?(R127i.w):(R10i.z)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R124i.w))); +PV1i.y = R123i.y; +R124i.z = ((R126i.y == 0)?(R10i.x):(R10i.y)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.w))); +R127i.z = ((R126i.y == 0)?(R10i.y):(R10i.z)); +PS1i = R127i.z; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R124i.y)) + -(intBitsToFloat(PV1i.y)))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(R126i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV1i.x))); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) * 2.0); +PS0i = int(uf_blockVS7[53].z); +// 9 +PV1i.x = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +R1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + 0.5); +PV1i.z = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +R1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R126i.w = floatBitsToInt(float(PS0i)); +PS1i = R126i.w; +// 10 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.z)); +R126i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R126i.x = floatBitsToInt(float(R125i.z)); +PS0i = R126i.x; +// 11 +backupReg0i = R125i.z; +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R124i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.w))); +R125i.z = floatBitsToInt(float(backupReg0i)); +PS1i = R125i.z; +// 12 +backupReg0i = R127i.z; +R125i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.y))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R127i.y)))); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.w))); +// 13 +PV1i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.z)), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),uf_blockVS7[49].y) + intBitsToFloat(R126i.z))); +R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),uf_blockVS7[50].z) + intBitsToFloat(R124i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 14 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),uf_blockVS7[50].w) + intBitsToFloat(R127i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 15 +R10i.x = floatBitsToInt(intBitsToFloat(R19i.z) + 0.0); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS0i))); +PV1i.z = R124i.z; +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R127i.x)) + intBitsToFloat(R125i.x))); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 16 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(R126i.w))) + intBitsToFloat(PV1i.w)); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV1i.z)) + -(0.5))); +PV0i.z = floatBitsToInt((intBitsToFloat(PV1i.w) >= abs(intBitsToFloat(R126i.w)))?1.0:0.0); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS1i))); +PV0i.w = R127i.w; +PS0i = int(intBitsToFloat(PV1i.y)); +// 17 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockVS7[58].x)); +R126i.y = ((intBitsToFloat(PV0i.z) == 0.0)?(R124i.w):(PV0i.x)); +PV1i.y = R126i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockVS7[58].y)); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(PV0i.w)) + -(0.5))); +PS1i = floatBitsToInt(float(PS0i)); +// 18 +backupReg0i = R127i.y; +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y)); +R127i.y = floatBitsToInt(intBitsToFloat(R6i.x) + -(uf_blockVS7[93].x)); +R126i.z = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PS1i)) + intBitsToFloat(backupReg0i))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 19 +R123i.x = ((-(intBitsToFloat(R126i.y)) > 0.0)?(PV0i.x):(R126i.y)); +PV1i.x = R123i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R124i.w)) + -(intBitsToFloat(PV0i.w)))); +PV1i.z = R123i.z; +R3i.w = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[104].w)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 20 +R4i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R123i.z = ((-(intBitsToFloat(R125i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.x)))):(PV1i.x)); +PV0i.z = R123i.z; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R127i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.z)); +// 21 +R127i.x = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R123i.y = ((intBitsToFloat(R126i.w) == 0.0)?(R125i.z):(PV0i.z)); +PV1i.y = R123i.y; +R10i.w = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +R10i.w = clampFI32(R10i.w); +// 22 +PS0i = int(intBitsToFloat(PV1i.y)); +// 23 +R5i.x = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[106].w)); +R125i.z = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +R2i.w = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[105].w)); +PS1i = floatBitsToInt(float(PS0i)); +// 24 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.w))); +PV0i.x = R123i.x; +R10i.y = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 25 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.x))); +R3i.y = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +R10i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +R4i.y = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +PS1i = R4i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R4i.y; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(R10i.z)) + uf_blockVS7[104].x)); +R4i.y = floatBitsToInt(intBitsToFloat(R6i.x) + 0.5); +R125i.z = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[107].w)); +PV0i.z = R125i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R10i.y) * intBitsToFloat(backupReg0i)); +R126i.w = ((intBitsToFloat(R3i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R126i.w; +// 1 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[105].x)); +R126i.y = ((intBitsToFloat(R2i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R126i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[108].w)); +PV1i.z = R124i.z; +R125i.w = ((intBitsToFloat(R5i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R125i.w; +R125i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.y; +// 2 +R126i.x = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +PS0i = R127i.x; +// 3 +R125i.x = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.y))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 4 +PV0i.x = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.x))); +PV0i.z = floatBitsToInt(intBitsToFloat(R3i.y) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.y))); +R126i.y = floatBitsToInt(-(intBitsToFloat(R126i.w)) + 1.0); +PS0i = R126i.y; +// 5 +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV0i.z)) + uf_blockVS7[106].x)); +R126i.w = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[109].w)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 6 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R125i.x; +R125i.y = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +R7i.z = 0; +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +// 7 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.w)) + uf_blockVS7[107].x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R126i.z = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[110].w)); +PV1i.z = R126i.z; +// 8 +R127i.x = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R127i.x; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +PS0i = floatBitsToInt(intBitsToFloat(R11i.z) * intBitsToFloat(R11i.z)); +// 9 +R126i.x = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(R9i.y) * intBitsToFloat(R9i.y) + intBitsToFloat(PS0i))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 10 +backupReg0i = R125i.y; +PV0i.x = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +R125i.y = floatBitsToInt((intBitsToFloat(R13i.x) * intBitsToFloat(R13i.x) + intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.y))); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R10i.x) + -(uf_blockVS7[111].w)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[108].x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 12 +backupReg0i = R125i.y; +R10i.x = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R10i.x; +R125i.y = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +R125i.w = floatBitsToInt(tempResultf); +PS0i = R125i.w; +// 13 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[109].x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R126i.y))); +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(PS0i))); +PS1i = R126i.x; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(R125i.w))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +R125i.w = 0; +PS0i = R125i.w; +// 15 +R127i.x = floatBitsToInt(uf_blockVS6[0].y); +R126i.y = floatBitsToInt(uf_blockVS6[1].y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 16 +PV0i.x = floatBitsToInt(uf_blockVS6[2].y); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS1i)); +// 17 +backupReg0i = R124i.z; +backupReg0i = R124i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg0i)),vec4(-(intBitsToFloat(R127i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(R125i.w))))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.z = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PS1i = R122i.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R127i.z)) + uf_blockVS7[110].x)); +// 19 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R4i.w))); +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(0x3edc28f6)); +PV1i.y = clampFI32(PV1i.y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R5i.y))); +R124i.z = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R8i.z))); +PS1i = R124i.z; +// 20 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(PS1i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R10i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R5i.x = floatBitsToInt(tempResultf); +PS0i = R5i.x; +// 21 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R12i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.w))); +// 22 +R123i.y = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +// 23 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 24 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PS1i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R5i.y),intBitsToFloat(R10i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +PV1i.x = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.y = R127i.y; +// 2 +R125i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS13[37].x) + -(uf_blockVS13[37].y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS13[38].z, intBitsToFloat(R5i.x))); +R122i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PS0i = R122i.x; +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV0i.z)) + uf_blockVS13[27].x)); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 4 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS13[26].w)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R127i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[38].w),intBitsToFloat(PS1i)) + 1.0)); +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +PV1i.y = floatBitsToInt(uf_blockVS13[28].y + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS13[38].x, intBitsToFloat(PS0i))); +R125i.w = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R7i.x))); +tempResultf = log2(intBitsToFloat(PV0i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * 1.5); +PV0i.z = clampFI32(PV0i.z); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R124i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x41700000)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 8 +R5i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(R125i.x))); +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), uf_blockVS13[25].w)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.y))); +// 10 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R126i.y))) + 1.0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(R8i.x)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(PS1i)) + uf_blockVS13[23].z)); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R8i.w = 0; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +R10i.y = ((0.0 >= intBitsToFloat(R10i.w))?int(0xFFFFFFFF):int(0x0)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -0.0); +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R10i.w)) + 0.0)); +PS1i = R2i.x; +// 12 +R9i.x = PV1i.z; +R6i.y = PV1i.z; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(0x3e4ccccd))); +R1i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +PS0i = R1i.z; +// 13 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R3i.y = 0; +PV1i.y = R3i.y; +R10i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 1.0)); +R4i.w = 0; +R0i.x = 0; +PS1i = R0i.x; +// 14 +R1i.x = R16i.x; +R14i.y = R15i.y; +R0i.z = R16i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0x40200000)); +R3i.w = ((R10i.y == 0)?(R9i.z):(PV1i.y)); +PS0i = R3i.w; +// 15 +backupReg0i = R7i.y; +R8i.x = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3daaaaab)); +R7i.y = ((R10i.y == 0)?(R11i.x):(R1i.z)); +R9i.z = ((R10i.y == 0)?(backupReg0i):(R4i.w)); +R7i.w = ((R10i.y == 0)?(R5i.w):(R5i.w)); +R10i.w = ((R10i.y == 0)?(R2i.x):(R0i.x)); +PS1i = R10i.w; +} +if( activeMaskStackC[3] == true ) { +R5i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R5i.xy)).xyz); +R8i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R8i.xw)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R5i.z; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(R10i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R10i.z))); +R5i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].w, uf_blockVS14[0].z)); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R10i.z))); +R10i.z = ((R10i.y == 0)?(R12i.y):(R12i.y)); +PS0i = R10i.z; +// 1 +R5i.x = ((R10i.y == 0)?(R18i.z):(R18i.z)); +R5i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].w, uf_blockVS14[0].w)); +R6i.z = ((R10i.y == 0)?(0):(0x3f800000)); +PV1i.z = R6i.z; +R123i.w = ((R10i.y == 0)?(0):(R2i.w)); +PV1i.w = R123i.w; +R122i.x = ((R10i.y == 0)?(0):(R10i.x)); +PS1i = R122i.x; +// 2 +R20i.x = ((PV1i.z == 0)?(R2i.w):(PV1i.w)); +R20i.y = ((PV1i.z == 0)?(R10i.x):(PS1i)); +R123i.z = ((R10i.y == 0)?(0):(R6i.y)); +PV0i.z = R123i.z; +R123i.w = ((R10i.y == 0)?(0):(R7i.z)); +PV0i.w = R123i.w; +R122i.x = ((R10i.y == 0)?(0):(R126i.y)); +PS0i = R122i.x; +// 3 +R21i.x = ((R6i.z == 0)?(R126i.y):(PS0i)); +R126i.y = ((R10i.y == 0)?(0):(R125i.w)); +R20i.z = ((R6i.z == 0)?(R6i.y):(PV0i.z)); +R20i.w = ((R6i.z == 0)?(R7i.z):(PV0i.w)); +R127i.x = ((R10i.y == 0)?(0):(R9i.x)); +PS1i = R127i.x; +// 4 +R126i.x = ((R10i.y == 0)?(0):(R8i.w)); +R127i.y = ((R10i.y == 0)?(0):(R8i.z)); +R123i.z = ((R10i.y == 0)?(0):(R125i.x)); +PV0i.z = R123i.z; +R127i.w = ((R10i.y == 0)?(0):(R8i.x)); +R6i.y = ((R10i.y == 0)?(0):(R0i.z)); +PS0i = R6i.y; +// 5 +backupReg0i = R9i.x; +R9i.x = ((R10i.y == 0)?(0):(R1i.w)); +R21i.y = ((R6i.z == 0)?(R125i.x):(PV0i.z)); +PV1i.y = R21i.y; +R21i.z = ((R6i.z == 0)?(R125i.w):(R126i.y)); +R21i.w = ((R6i.z == 0)?(backupReg0i):(R127i.x)); +// 6 +R22i.x = ((R6i.z == 0)?(R8i.x):(R127i.w)); +R123i.z = ((R10i.y == 0)?(0):(R8i.y)); +PV0i.z = R123i.z; +R2i.w = ((R10i.y == 0)?(0):(R1i.x)); +R0i.y = ((R10i.y == 0)?(0):(R1i.z)); +PS0i = R0i.y; +// 7 +R22i.y = ((R6i.z == 0)?(R8i.y):(PV0i.z)); +R22i.z = ((R6i.z == 0)?(R8i.z):(R127i.y)); +R22i.w = ((R6i.z == 0)?(R8i.w):(R126i.x)); +// 8 +R8i.z = ((R10i.y == 0)?(0):(R14i.y)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[44].y, intBitsToFloat(R5i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[49].y,intBitsToFloat(R5i.z)) + intBitsToFloat(R4i.y))); +R124i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[44].y,intBitsToFloat(R5i.z)) + intBitsToFloat(R1i.y))); +PV0i.z = R124i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[49].y, intBitsToFloat(R5i.y))); +// 1 +R126i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS11[3].w,intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +R123i.y = ((R10i.y == 0)?(0):(PV0i.z)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockVS7[54].y)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockVS11[3].w) + intBitsToFloat(R1i.w))); +PV1i.w = R127i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockVS7[54].y) + intBitsToFloat(R2i.y))); +PS1i = R1i.x; +// 2 +R23i.x = ((R6i.z == 0)?(R124i.z):(PV1i.y)); +R1i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS11[3].w,intBitsToFloat(PV1i.z)) + intBitsToFloat(R0i.w))); +PV0i.y = R1i.y; +R123i.z = ((R10i.y == 0)?(0):(PV1i.w)); +PV0i.z = R123i.z; +R123i.w = ((R10i.y == 0)?(0):(PS1i)); +PV0i.w = R123i.w; +R122i.x = ((R10i.y == 0)?(0):(R127i.y)); +PS0i = R122i.x; +// 3 +R19i.x = ((R6i.z == 0)?(R1i.x):(PV0i.w)); +R23i.y = ((R6i.z == 0)?(R127i.w):(PV0i.z)); +R23i.z = ((R6i.z == 0)?(R127i.y):(PS0i)); +R123i.w = ((R10i.y == 0)?(0):(PV0i.y)); +PV1i.w = R123i.w; +R122i.x = ((R10i.y == 0)?(0):(R126i.x)); +PS1i = R122i.x; +// 4 +R123i.x = ((R10i.y == 0)?(R18i.x):(R0i.x)); +PV0i.x = R123i.x; +R19i.y = ((R6i.z == 0)?(R1i.y):(PV1i.w)); +R124i.z = ((R10i.y == 0)?(R18i.z):(R18i.z)); +R23i.w = ((R6i.z == 0)?(R126i.x):(PS1i)); +R126i.z = ((R10i.y == 0)?(R17i.w):(R5i.w)); +PS0i = R126i.z; +// 5 +R18i.x = ((R6i.z == 0)?(R10i.w):(PV0i.x)); +R123i.y = ((R10i.y == 0)?(0):(R13i.x)); +PV1i.y = R123i.y; +R127i.z = ((R10i.y == 0)?(0):(R11i.z)); +R123i.w = ((R10i.y == 0)?(R18i.y):(R12i.y)); +PV1i.w = R123i.w; +R122i.x = ((R10i.y == 0)?(0):(R14i.x)); +PS1i = R122i.x; +// 6 +backupReg0i = R14i.x; +R24i.x = ((R6i.z == 0)?(R13i.x):(PV1i.y)); +R18i.y = ((R6i.z == 0)?(R10i.z):(PV1i.w)); +R18i.z = ((R6i.z == 0)?(R5i.x):(R124i.z)); +R123i.w = ((R10i.y == 0)?(0):(R9i.y)); +PV0i.w = R123i.w; +R14i.x = ((R6i.z == 0)?(backupReg0i):(PS1i)); +PS0i = R14i.x; +// 7 +R123i.x = ((R10i.y == 0)?(0):(R6i.w)); +PV1i.x = R123i.x; +R24i.y = ((R6i.z == 0)?(R9i.y):(PV0i.w)); +R24i.z = ((R6i.z == 0)?(R11i.z):(R127i.z)); +R125i.w = ((R10i.y == 0)?(0):(R15i.x)); +PS1i = R16i.x; +// 8 +R16i.x = ((R6i.z == 0)?(PS1i):(R2i.w)); +R14i.y = ((R6i.z == 0)?(R6i.w):(PV1i.x)); +R123i.z = ((R10i.y == 0)?(0):(R12i.z)); +PV0i.z = R123i.z; +R127i.w = ((R10i.y == 0)?(0):(R11i.y)); +R122i.x = ((R10i.y == 0)?(0):(R13i.z)); +PS0i = R122i.x; +// 9 +R25i.x = ((R6i.z == 0)?(R13i.z):(PS0i)); +R123i.y = ((R10i.y == 0)?(R17i.x):(R3i.y)); +PV1i.y = R123i.y; +R123i.z = ((R10i.y == 0)?(R17i.y):(R4i.w)); +PV1i.z = R123i.z; +R24i.w = ((R6i.z == 0)?(R12i.z):(PV0i.z)); +// 10 +R17i.x = ((R6i.z == 0)?(R3i.w):(PV1i.y)); +R17i.y = ((R6i.z == 0)?(R9i.z):(PV1i.z)); +R123i.z = ((R10i.y == 0)?(0):(R14i.z)); +PV0i.z = R123i.z; +PV0i.w = R15i.y; +// 11 +R16i.y = ((R6i.z == 0)?(PV0i.w):(R8i.z)); +R25i.y = ((R6i.z == 0)?(R14i.z):(PV0i.z)); +PS1i = R25i.y; +// 12 +R126i.x = ((R10i.y == 0)?(0):(R13i.y)); +PV0i.y = R16i.z; +R123i.w = ((R10i.y == 0)?(0):(R15i.z)); +PV0i.w = R123i.w; +// 13 +R16i.z = ((R6i.z == 0)?(PV0i.y):(R6i.y)); +R14i.w = ((R6i.z == 0)?(R11i.y):(R127i.w)); +R14i.z = ((R6i.z == 0)?(R15i.z):(PV0i.w)); +PS1i = R14i.z; +// 14 +R123i.x = ((R10i.y == 0)?(R17i.z):(R1i.z)); +PV0i.x = R123i.x; +R25i.z = ((R6i.z == 0)?(R13i.y):(R126i.x)); +R25i.w = ((R6i.z == 0)?(R15i.x):(R125i.w)); +// 15 +R17i.z = ((R6i.z == 0)?(R7i.y):(PV0i.x)); +R17i.w = ((R6i.z == 0)?(R7i.w):(R126i.z)); +R16i.w = ((R6i.z == 0)?(R9i.x):(R9i.x)); +PS1i = R16i.w; +// 16 +R19i.z = ((R6i.z == 0)?(R1i.z):(R0i.y)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R25i.x), intBitsToFloat(R25i.y), intBitsToFloat(R25i.z), intBitsToFloat(R25i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R14i.x), intBitsToFloat(R14i.y), intBitsToFloat(R14i.z), intBitsToFloat(R14i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R24i.x), intBitsToFloat(R24i.y), intBitsToFloat(R24i.z), intBitsToFloat(R24i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R16i.x), intBitsToFloat(R16i.y), intBitsToFloat(R16i.z), intBitsToFloat(R16i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/ea77e7f80b23e7b7_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/ea77e7f80b23e7b7_0000000000000000_vs.txt new file mode 100644 index 00000000..69953b7c --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/ea77e7f80b23e7b7_0000000000000000_vs.txt @@ -0,0 +1,2748 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader ea77e7f80b23e7b7 +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +layout(binding = 11, std140) uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + +layout(binding = 13, std140) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +layout(location = 8) in uvec4 attrDataSem8; +layout(location = 9) in uvec4 attrDataSem9; +layout(location = 10) in uvec4 attrDataSem10; +layout(location = 11) in uvec4 attrDataSem11; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem8; +layout(location = 6) out vec4 passParameterSem11; +layout(location = 7) out vec4 passParameterSem14; +layout(location = 8) out vec4 passParameterSem15; +layout(location = 9) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 5) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R26i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem5.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem10; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R10i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem4; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem8; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R10i.z = floatBitsToInt(-(intBitsToFloat(R10i.y)) + 1.0); +R2i.w = 0; +R3i.w = floatBitsToInt(1.0); +PS0i = R3i.w; +// 1 +R15i.w = floatBitsToInt(-(intBitsToFloat(R5i.w)) + uf_blockVS8[2].x); +R10i.w = floatBitsToInt(-(intBitsToFloat(R10i.x)) + 1.0); +PS1i = R10i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R15i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R21i.x = 0; +R21i.y = 0; +R21i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R22i.x = 0; +PS0i = R22i.x; +// 1 +R5i.w = R3i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R5i.w = R2i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R5i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R4i.w)); +// 1 +R4i.x = floatBitsToInt(float(PS0i)); +PS1i = R4i.x; +// 2 +predResult = (intBitsToFloat(R15i.w) >= intBitsToFloat(R4i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R21i.x = 0; +R21i.y = 0; +R21i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R22i.x = 0; +PS0i = R22i.x; +// 1 +R2i.w = R3i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R2i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(max(intBitsToFloat(R8i.x), 0.0)); +PV0i.y = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), uf_blockVS7[10].y)); +PV0i.w = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 1 +PV1i.x = floatBitsToInt(min(intBitsToFloat(PV0i.x), 0.0)); +PV1i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.y))); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +R13i.x = floatBitsToInt(1.0 / intBitsToFloat(R4i.x)); +PS1i = R13i.x; +// 2 +backupReg0i = R9i.x; +R9i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.y)); +R16i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i)); +PV0i.w = R16i.w; +R127i.z = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +PS0i = R127i.z; +// 3 +R127i.x = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.y))); +// 4 +R125i.x = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.y))); +R125i.w = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.z)); +PV1i.y = R125i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R126i.z = floatBitsToInt(-(uf_blockVS7[97].z) + uf_blockVS7[98].z); +PS1i = R126i.z; +// 6 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(uf_blockVS7[96].w)); +PV0i.x = R126i.x; +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(uf_blockVS7[97].w)); +// 7 +PV1i.x = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt(intBitsToFloat(R125i.y) + -(uf_blockVS7[98].w)); +PS1i = R127i.z; +// 8 +R124i.x = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(PV1i.w)); +R0i.y = ((intBitsToFloat(R126i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R124i.z = floatBitsToInt(uf_blockVS7[96].z + intBitsToFloat(PV1i.y)); +R127i.w = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 9 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(-(uf_blockVS7[98].x) + uf_blockVS7[99].x); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R126i.x = floatBitsToInt(-(uf_blockVS7[98].y) + uf_blockVS7[99].y); +PS1i = R126i.x; +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt(-(uf_blockVS7[98].z) + uf_blockVS7[99].z); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(-(uf_blockVS7[98].w) + uf_blockVS7[99].w); +// 11 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(PV0i.w)); +R127i.y = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(PV0i.x)); +R125i.z = ((intBitsToFloat(backupReg0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R125i.w = floatBitsToInt(uf_blockVS7[97].z + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 12 +backupReg0i = R126i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(PS1i)); +R126i.y = ((intBitsToFloat(R127i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R126i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(intBitsToFloat(R125i.y) + -(uf_blockVS7[99].w)); +// 13 +backupReg0i = R127i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.x))); +R127i.z = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +// 14 +R126i.x = floatBitsToInt(uf_blockVS7[98].z + intBitsToFloat(PV1i.w)); +R125i.y = floatBitsToInt(uf_blockVS7[98].y + intBitsToFloat(PV1i.x)); +R126i.z = floatBitsToInt(uf_blockVS7[98].x + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +PS0i = R124i.y; +// 15 +backupReg0i = R126i.y; +R0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].x, intBitsToFloat(R127i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].y, intBitsToFloat(R127i.z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[99].z, intBitsToFloat(R127i.z))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PS1i = R125i.x; +// 16 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R124i.y))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R124i.y))); +PS0i = R127i.z; +// 17 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.y)) + 1.0); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + 1.0); +PV1i.z = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R8i.y)); +R4i.w = 0x3f800000; +R127i.x = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R8i.z)); +PS1i = R127i.x; +// 18 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(PV1i.x))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(PV1i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(PV1i.x))); +R124i.y = floatBitsToInt(intBitsToFloat(PV1i.z) * 0.5); +PS0i = R124i.y; +// 19 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * 0.5); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R8i.z)); +// 20 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R125i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * 0.5); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R125i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R125i.z)); +R124i.x = floatBitsToInt(intBitsToFloat(R124i.y) + -(0.5)); +R124i.x = floatBitsToInt(intBitsToFloat(R124i.x) * 2.0); +PS0i = R124i.x; +// 21 +backupReg0i = R127i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.x)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.x) + -(0.5)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.z)); +R2i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(0.5)); +R2i.w = floatBitsToInt(intBitsToFloat(R2i.w) * 2.0); +PS1i = R2i.w; +// 22 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV1i.y)); +R3i.w = floatBitsToInt(intBitsToFloat(R8i.x) + -(0.5)); +R4i.x = floatBitsToInt(intBitsToFloat(R8i.y) + -(0.5)); +PS0i = R4i.x; +// 23 +R5i.x = floatBitsToInt(intBitsToFloat(R8i.z) + -(0.5)); +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.y)); +PV1i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), uf_blockVS7[115].x)); +// 24 +backupReg0i = R9i.x; +backupReg1i = R9i.z; +backupReg2i = R9i.y; +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R9i.y = floatBitsToInt(intBitsToFloat(PS1i) + uf_blockVS7[114].x); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.y))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.z))); +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), uf_blockVS7[115].y)); +PS0i = R0i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R9i.z; +backupReg1i = R0i.w; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), uf_blockVS8[3].y)); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[3].w)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS8[3].z)); +// 1 +R12i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,0.0))); +PV1i.x = R12i.x; +PV1i.y = R12i.x; +PV1i.z = R12i.x; +PV1i.w = R12i.x; +PS1i = R8i.y; +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R5i.y = tempi.x; +R124i.x = floatBitsToInt(floor(intBitsToFloat(PS1i))); +PS0i = R124i.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = R127i.z; +// 4 +R2i.x = floatBitsToInt(uf_blockVS7[114].y + intBitsToFloat(R0i.x)); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(R124i.x))?1.0:0.0); +R11i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0x358637bd)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), uf_blockVS7[115].z)); +PS0i = R8i.z; +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 5 +R9i.x = floatBitsToInt(uf_blockVS7[114].z + intBitsToFloat(PV0i.w)); +R2i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(intBitsToFloat(PV0i.y))); +R127i.z = floatBitsToInt(floor(intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +// 6 +R14i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w))); +PV0i.x = R14i.x; +PV0i.y = R14i.x; +PV0i.z = R14i.x; +PV0i.w = R14i.x; +R124i.w = floatBitsToInt((intBitsToFloat(PV1i.z) > 0.0)?1.0:0.0); +PS0i = R124i.w; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R4i.w)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.y = tempi.x; +PS1i = floatBitsToInt((0.0 > intBitsToFloat(R127i.z))?1.0:0.0); +// 8 +backupReg0i = R1i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(backupReg0i),intBitsToFloat(R4i.w)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R1i.z = tempi.x; +R0i.x = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PS1i))); +PS0i = R0i.x; +// 9 +backupReg0i = R4i.x; +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockVS7[113].x)); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS7[113].y)); +PV1i.z = R8i.x; +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) * 2.0); +// 10 +PV0i.w = floatBitsToInt(floor(intBitsToFloat(PV1i.z))); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PV0i.w))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.w) > 0.0)?1.0:0.0); +// 12 +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00010000; +R127i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00020000; +R124i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00040000; +// 1 +PS1i = floatBitsToInt(float(PV0i.x)); +// 2 +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockVS7[113].z)); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(R127i.z)); +// 3 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R124i.w)); +// 4 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 5 +PV1i.x = 0 - PS0i; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +R124i.w = int(intBitsToFloat(PV0i.z)); +PS1i = R124i.w; +// 6 +PV0i.x = 0 - PS1i; +PV0i.y = max(R127i.z, PV1i.x); +R126i.w = ((uf_blockVS7[114].w == 1.0)?int(0xFFFFFFFF):int(0x0)); +R126i.y = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.y; +// 7 +PV1i.x = max(R124i.w, PV0i.x); +PV1i.y = 0 - PS0i; +PS1i = floatBitsToInt(float(PV0i.y)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 8 +R124i.x = floatBitsToInt(-(uf_blockVS7[114].w) + 1.0); +PV0i.z = max(R126i.y, PV1i.y); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(R2i.y))); +PS0i = floatBitsToInt(float(PV1i.x)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 9 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(backupReg0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(float(PV0i.z)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 10 +R126i.x = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(PV1i.x)); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(R2i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV1i.y))); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PS0i)); +R127i.z = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PV0i.z)); +R125i.w = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R4i.x)); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.y))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(PS1i)); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R0i.y)); +R124i.w = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV1i.x)); +tempResultf = log2(uf_blockVS7[114].w); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 13 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS0i))); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R126i.z)); +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(R124i.x)); +PS1i = R126i.z; +// 14 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +// 15 +PV1i.y = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +// 16 +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(R126i.z)); +// 17 +R123i.y = ((R126i.w == 0)?(PV0i.w):(R15i.w)); +PV1i.y = R123i.y; +// 18 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV1i.y))); +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.z)); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.w)); +// 20 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(uf_blockVS7[13].x); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.w = R123i.w; +// 21 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +R0i.y = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(uf_blockVS7[13].y); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 22 +R3i.x = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PS1i)); +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.w = R123i.w; +// 23 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983)); +R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983)); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3e22f983)); +PV1i.z = R127i.z; +// 24 +R125i.w = floatBitsToInt(sin((intBitsToFloat(PV1i.z))/0.1591549367)); +PS0i = R125i.w; +// 25 +R127i.y = floatBitsToInt(cos((intBitsToFloat(R127i.z))/0.1591549367)); +PS1i = R127i.y; +// 26 +R124i.x = floatBitsToInt(sin((intBitsToFloat(R126i.y))/0.1591549367)); +PS0i = R124i.x; +// 27 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS0i))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R127i.z = floatBitsToInt(cos((intBitsToFloat(R126i.y))/0.1591549367)); +PS1i = R127i.z; +// 28 +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +PV0i.y = R125i.y; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +PV0i.w = R127i.w; +R3i.w = floatBitsToInt(sin((intBitsToFloat(R126i.x))/0.1591549367)); +PS0i = R3i.w; +// 29 +R9i.x = floatBitsToInt(-(intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R126i.z))); +R126i.y = floatBitsToInt(cos((intBitsToFloat(R126i.x))/0.1591549367)); +PS1i = R126i.y; +// 30 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +R9i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.z)); +R3i.z = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y)); +R2i.w = floatBitsToInt(-(intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.w)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +PS0i = R4i.w; +// 31 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(R126i.y))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R126i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(R127i.x))); +// 32 +R2i.x = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV1i.z)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R14i.x) + -(uf_blockVS6[17].x)); +PV0i.x = R127i.x; +R125i.y = floatBitsToInt(intBitsToFloat(R11i.y) + -(uf_blockVS6[17].y)); +PV0i.y = R125i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R1i.z) + -(uf_blockVS6[17].z)); +PV0i.z = R127i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(R14i.x)) + uf_blockVS6[17].x); +R126i.y = floatBitsToInt(-(intBitsToFloat(R11i.y)) + uf_blockVS6[17].y); +PS0i = R126i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(PV0i.y)),-(intBitsToFloat(PV0i.z)),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.z = floatBitsToInt(-(intBitsToFloat(R1i.z)) + uf_blockVS6[17].z); +PS1i = R125i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R125i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R125i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.y)), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.x)), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.z)), intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(PV1i.y))); +PV0i.x = R1i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(PV1i.x))); +PV0i.y = R1i.y; +R12i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[13].z, intBitsToFloat(PV1i.w))); +PV0i.z = R12i.z; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R126i.z; +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.z)); +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +R9i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(R126i.z)); +PV0i.w = R9i.w; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R127i.w = floatBitsToInt(tempResultf); +PS0i = R127i.w; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.w))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PV0i.w))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +PS1i = R125i.y; +// 10 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R127i.w))); +PV0i.x = R124i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PV1i.x))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R0i.y))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R3i.x))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), -(uf_blockVS6[1].z))); +// 11 +R127i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].y,intBitsToFloat(PV0i.x)) + intBitsToFloat(PS0i))); +R4i.y = R126i.z; +PV1i.y = R4i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), -(uf_blockVS6[1].x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), -(uf_blockVS6[1].y))); +R2i.z = R125i.y; +PS1i = R2i.z; +// 12 +R11i.x = R124i.x; +PV0i.x = R11i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].z,intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R126i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS6[1].x,intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.w))); +PV0i.z = R125i.z; +R127i.w = PV1i.y; +R126i.x = PS1i; +PS0i = R126i.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = PV0i.x; +PS1i = R125i.w; +// 14 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R126i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R127i.w))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R127i.w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 15 +backupReg0i = R126i.y; +backupReg1i = R125i.z; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R3i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PV1i.y = R126i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R126i.x))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS0i))); +PV1i.w = R5i.w; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R125i.w))); +PS1i = R126i.w; +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV1i.x))); +R6i.w = PV1i.y; +R5i.x = PV1i.w; +PS0i = R5i.x; +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(R124i.x)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.w)),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R127i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R125i.w))); +PS1i = R7i.z; +// 18 +backupReg0i = R0i.x; +R7i.x = PV1i.y; +PV0i.x = R7i.x; +R7i.y = PV1i.x; +PV0i.y = R7i.y; +R0i.z = PV1i.w; +PV0i.z = R0i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R126i.x))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R124i.y))); +// 19 +R126i.x = PV0i.y; +PV1i.x = R126i.x; +R125i.y = PV0i.z; +PV1i.y = R125i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R9i.x)) + intBitsToFloat(PS0i))); +R127i.w = PV0i.x; +PV1i.w = R127i.w; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R124i.y))); +PS1i = R0i.y; +// 20 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(R124i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.z))); +PV0i.w = R123i.w; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R125i.z))); +PS0i = R127i.y; +// 21 +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w))); +PV1i.y = R123i.y; +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R5i.w)) + intBitsToFloat(PV0i.y))); +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R124i.y))); +// 22 +backupReg0i = R3i.w; +backupReg1i = R4i.x; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R5i.w)) + intBitsToFloat(PV1i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(PS1i))); +PV0i.y = R123i.y; +R4i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R126i.y)) + intBitsToFloat(R127i.y))); +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R3i.x)) + intBitsToFloat(R125i.x))); +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(backupReg1i)) + intBitsToFloat(R126i.z))); +PS0i = R4i.x; +// 23 +backupReg0i = R3i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(R125i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(R124i.z))); +PV1i.y = R123i.y; +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y))); +// 24 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R4i.w)) + intBitsToFloat(R0i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R3i.x)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(R7i.z))); +PV0i.w = R123i.w; +// 25 +backupReg0i = R0i.x; +backupReg1i = R9i.y; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R5i.w)) + intBitsToFloat(PV0i.w))); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x))); +R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PV0i.y))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PV0i.z))); +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R7i.y),intBitsToFloat(R4i.y),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R9i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = R126i.x; +PV0i.y = R126i.x; +PV0i.z = R126i.x; +PV0i.w = R126i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R0i.x))); +PS0i = R126i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.w),intBitsToFloat(R7i.x),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R9i.y),intBitsToFloat(R3i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.w)) + intBitsToFloat(R5i.w))); +PS1i = R125i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R0i.z),intBitsToFloat(R11i.x),-0.0),vec4(intBitsToFloat(R4i.x),intBitsToFloat(R9i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 3 +R0i.x = floatBitsToInt(intBitsToFloat(R14i.x) + intBitsToFloat(R126i.x)); +R0i.y = floatBitsToInt(intBitsToFloat(R11i.y) + intBitsToFloat(R127i.w)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R2i.x)) + intBitsToFloat(R126i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R4i.z)) + intBitsToFloat(R9i.z))); +PV1i.w = R123i.w; +R0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x)); +PS1i = R0i.z; +// 4 +R18i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(R125i.x))); +R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R7i.w)) + intBitsToFloat(PV1i.w))); +R14i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.z))); +// 5 +R2i.xyz = floatBitsToInt(vec3(-(intBitsToFloat(R14i.x)),-(intBitsToFloat(R11i.y)),-(intBitsToFloat(R1i.z))) + vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))); +PV1i.x = R2i.x; +PV1i.y = R2i.y; +PV1i.z = R2i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R5i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(R12i.x),intBitsToFloat(R5i.y),intBitsToFloat(R11i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +R124i.z = ((intBitsToFloat(PS1i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 9 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i))); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(PS0i))); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R5i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(R12i.x),intBitsToFloat(R5i.y),intBitsToFloat(R11i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 11 +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 12 +PV0i.x = ((intBitsToFloat(PS1i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 13 +R4i.z = ((R124i.z == 0)?(0):(PV0i.x)); +// 14 +predResult = (R4i.z != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), uf_blockVS7[95].x)); +PS0i = R127i.x; +// 1 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), uf_blockVS7[95].x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockVS7[95].x)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS1i))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +// 5 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +R0i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +R2i.x = floatBitsToInt(intBitsToFloat(R14i.x) + intBitsToFloat(R1i.x)); +PV0i.x = R2i.x; +R9i.y = floatBitsToInt(intBitsToFloat(R11i.y) + intBitsToFloat(R1i.y)); +PV0i.y = R9i.y; +R2i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R12i.z)); +PV0i.z = R2i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R0i.x)); +R126i.w = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R0i.y)); +PS0i = R126i.w; +// 1 +PV1i.x = floatBitsToInt(-(uf_blockVS6[17].x) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(-(uf_blockVS6[17].y) + intBitsToFloat(PV0i.y)); +R127i.z = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(R0i.z)); +R3i.w = 0x3f800000; +PS1i = floatBitsToInt(-(uf_blockVS6[17].z) + intBitsToFloat(PV0i.z)); +// 2 +backupReg0i = R127i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PS1i),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PS1i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg0i)); +PS0i = R127i.w; +// 3 +R127i.x = floatBitsToInt((uf_blockVS7[8].x > 0.0)?1.0:0.0); +R127i.y = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(R127i.z)); +R127i.z = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R126i.w)); +R126i.w = 0x3f800000; +PV1i.w = R126i.w; +R0i.x = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R0i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R9i.y),intBitsToFloat(R2i.z),intBitsToFloat(PV1i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.w = tempi.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R9i.w)); +// 5 +PV1i.x = floatBitsToInt((0.0 > uf_blockVS7[8].x)?1.0:0.0); +R0i.y = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +R0i.z = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R0i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].x); +// 6 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i)); +R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(PV1i.x))); +PV0i.z = R127i.z; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R9i.y),intBitsToFloat(R2i.z),intBitsToFloat(R126i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PS1i = R127i.y; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS7[9].y) + intBitsToFloat(R127i.x))); +PV0i.x = R123i.x; +PV0i.y = PV1i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R123i.w = floatBitsToInt((intBitsToFloat(R125i.w) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(R125i.w) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PS1i)); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV0i.y))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R16i.w),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.x))); +// 12 +PV0i.w = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV1i.x)); +// 13 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 14 +R5i.y = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(min(intBitsToFloat(backupReg0i), uf_blockVS7[116].x)); +R126i.z = floatBitsToInt(intBitsToFloat(R2i.w) + -(uf_blockVS7[60].w)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[116].x); +// 1 +R127i.x = floatBitsToInt(-(uf_blockVS7[60].y) + uf_blockVS7[61].y); +R127i.y = floatBitsToInt(-(uf_blockVS7[60].x) + uf_blockVS7[61].x); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +// 2 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt(-(uf_blockVS7[60].z) + uf_blockVS7[61].z); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(-(uf_blockVS7[60].w) + uf_blockVS7[61].w); +// 3 +R7i.x = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(PV0i.y)); +R7i.y = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(PV0i.x)); +R6i.z = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(PV0i.w)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS1i)); +R0i.y = ((intBitsToFloat(R126i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(intBitsToFloat(R2i.w) + -(uf_blockVS7[61].w)); +// 5 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.w)) + uf_blockVS7[60].y)); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.x)) + uf_blockVS7[60].x)); +R2i.z = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R2i.z; +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[60].z)); +// 6 +R2i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R6i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R5i.z = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R6i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.y = tempi.x; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R2i.w))); +PS1i = R126i.z; +// 2 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R6i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.w = tempi.x; +R127i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +PS0i = R127i.y; +// 3 +R11i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R6i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = R11i.x; +PV1i.y = R11i.x; +PV1i.z = R11i.x; +PV1i.w = R11i.x; +// 4 +R12i.x = floatBitsToInt((intBitsToFloat(R9i.w) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].x, intBitsToFloat(R127i.y))); +PV0i.z = PV1i.x; +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].y, intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[60].z, intBitsToFloat(R127i.y))); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R9i.w) * 0.0 + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(PS0i))); +R13i.w = floatBitsToInt((intBitsToFloat(R9i.w) * 0.5 + intBitsToFloat(PV0i.z))); +PS1i = R13i.w; +// 6 +R2i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].x,intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.y))); +R11i.y = floatBitsToInt((intBitsToFloat(R5i.z) * 0.5 + intBitsToFloat(PV1i.z))); +R11i.z = floatBitsToInt((intBitsToFloat(R6i.y) * -(0.5) + intBitsToFloat(PV1i.z))); +R0i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].y,intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x))); +R11i.w = floatBitsToInt(1.0 / intBitsToFloat(R12i.x)); +PS0i = R11i.w; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(R13i.w) * intBitsToFloat(PS0i)); +R2i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[61].z,intBitsToFloat(R2i.z)) + intBitsToFloat(R125i.w))); +// 8 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV0i.z = R123i.z; +// 9 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 10 +R9i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +// 11 +R127i.x = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +// 12 +PV0i.w = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +// 13 +R126i.x = floatBitsToInt(-(uf_blockVS7[76].x) + uf_blockVS7[77].x); +R125i.w = floatBitsToInt(-(uf_blockVS7[76].y) + uf_blockVS7[77].y); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 14 +PV0i.x = floatBitsToInt(-(uf_blockVS7[76].w) + uf_blockVS7[77].w); +R0i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt(-(uf_blockVS7[76].z) + uf_blockVS7[77].z); +// 15 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 16 +R4i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +R0i.z = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS1i)); +R3i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R2i.x; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].x)); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[0].y)); +PV0i.z = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +PV0i.w = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 1 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), uf_blockVS8[0].z)); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt((uf_blockVS7[8].z > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt((0.0 > uf_blockVS7[8].z)?1.0:0.0); +// 2 +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R126i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PS1i))); +PV0i.y = R126i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS7[9].z) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].z); +// 3 +R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +// 4 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS7[9].w) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +// 5 +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R16i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.w))); +// 6 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.y))); +// 7 +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R16i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.w))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.z) + -(uf_blockVS7[68].w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R2i.z) + -(uf_blockVS7[69].w)); +// 1 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.y)) + uf_blockVS7[68].x)); +R126i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R126i.y; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), uf_blockVS7[59].x)); +R125i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R125i.w; +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), uf_blockVS7[59].x)); +PS1i = R12i.y; +// 2 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS7[59].x)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R126i.w = floatBitsToInt(intBitsToFloat(R3i.z) + -(uf_blockVS7[76].w)); +PV0i.w = R126i.w; +// 3 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.w)) + uf_blockVS7[76].x)); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV0i.z))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R0i.z)) + uf_blockVS7[76].y)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.x))); +R127i.y = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R127i.y; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(uf_blockVS7[77].w)); +PV0i.y = R125i.y; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R4i.y)) + uf_blockVS7[76].z)); +R125i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +// 5 +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(R3i.z) + -(uf_blockVS7[78].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[69].x,intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +// 6 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].x, intBitsToFloat(R125i.w))); +R124i.z = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R124i.z; +R14i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[0].w)); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].y, intBitsToFloat(R125i.w))); +PS0i = R126i.w; +// 7 +R125i.x = floatBitsToInt(-(uf_blockVS7[77].x) + uf_blockVS7[78].x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.x))); +PV1i.z = R125i.z; +R127i.w = floatBitsToInt(-(uf_blockVS7[77].y) + uf_blockVS7[78].y); +// 8 +backupReg0i = R127i.x; +backupReg1i = R126i.y; +backupReg2i = R126i.z; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg1i))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg2i),intBitsToFloat(PV1i.z)) + intBitsToFloat(R126i.w))); +R126i.w = floatBitsToInt(-(uf_blockVS7[77].z) + uf_blockVS7[78].z); +PS0i = floatBitsToInt(-(uf_blockVS7[77].w) + uf_blockVS7[78].w); +// 9 +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[76].z, intBitsToFloat(R125i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.x) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.z))); +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.x)) + uf_blockVS7[77].x)); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[77].z)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.z)) + uf_blockVS7[77].y)); +PV1i.w = R123i.w; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(R126i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(R126i.y))); +PV0i.z = R123i.z; +PV0i.w = ((intBitsToFloat(R8i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS0i = ((intBitsToFloat(R8i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 13 +R0i.x = ((PV0i.w == 0)?(R10i.x):(R10i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[78].z,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[78].y,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[78].x,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +R2i.x = ((PS0i == 0)?(R10i.y):(R10i.z)); +PS1i = R2i.x; +// 14 +PV0i.x = ((intBitsToFloat(R8i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS8[1].z)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockVS8[1].y)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS8[1].x)); +PS0i = ((intBitsToFloat(R8i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 15 +R3i.x = ((PV0i.x == 0)?(R10i.x):(R10i.w)); +R14i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.y))); +R12i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.z))); +R12i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.w))); +R3i.z = ((PS0i == 0)?(R10i.y):(R10i.z)); +PS1i = R3i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((uf_blockVS7[8].w > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +PV0i.w = floatBitsToInt((0.0 > uf_blockVS7[8].w)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].w); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt(-(uf_blockVS7[84].x) + uf_blockVS7[85].x); +R124i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.z = R124i.z; +PV1i.w = (PV0i.y == 0x00080000)?int(0xFFFFFFFF):int(0x0); +// 2 +R5i.x = ((PV1i.w == 0)?(R10i.x):(R0i.x)); +R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS7[10].x) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +PS0i = ((intBitsToFloat(R8i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 3 +PV1i.x = floatBitsToInt(-(uf_blockVS7[84].w) + uf_blockVS7[85].w); +R127i.y = ((PS0i == 0)?(R10i.x):(R10i.w)); +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PV1i.w = (PV0i.z == 0x00100000)?int(0xFFFFFFFF):int(0x0); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +R5i.w = ((PV1i.w == 0)?(R10i.y):(R2i.x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 5 +PV1i.x = (PV0i.y == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = (PV0i.z == 0x00200000)?int(0xFFFFFFFF):int(0x0); +R124i.z = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS0i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R16i.w),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + -(uf_blockVS7[84].w)); +R2i.y = ((PV1i.x == 0)?(R10i.y):(R3i.z)); +R4i.z = ((PV1i.y == 0)?(R10i.x):(R3i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(uf_blockVS7[85].w)); +PS0i = (PS1i == 0x00800000)?int(0xFFFFFFFF):int(0x0); +// 7 +R6i.x = ((PS0i == 0)?(R10i.x):(R127i.y)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R124i.z)) + uf_blockVS7[84].x)); +R124i.z = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R124i.z; +R127i.w = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +// 8 +PV0i.x = ((intBitsToFloat(R8i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R126i.z = (PS1i == 0x01000000)?int(0xFFFFFFFF):int(0x0); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PS0i = floatBitsToInt(uf_blockVS7[5].y) & int(1); +// 9 +R123i.x = ((PV0i.x == 0)?(R10i.y):(R10i.z)); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[84].x, intBitsToFloat(PV0i.w))); +R6i.w = (int(1) != PS0i)?int(0xFFFFFFFF):int(0x0); +R3i.x = int(uf_blockVS7[17].x); +PS1i = R3i.x; +// 10 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010; +R7i.w = ((R126i.z == 0)?(R10i.y):(PV1i.x)); +R0i.w = int(uf_blockVS7[17].y); +PS0i = R0i.w; +// 11 +R10i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[85].x,intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(float(PV0i.z)); +// 12 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020; +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +// 13 +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(float(PV0i.z)); +// 14 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R127i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R127i.y; +// 15 +PV1i.x = 0 - PS0i; +R3i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +// 16 +R3i.w = max(R127i.y, PV1i.x); +} +if( activeMaskStackC[3] == true ) { +// 0 +R14i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), uf_blockVS8[1].w)); +// 1 +R127i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080; +R125i.y = int(-1) + R3i.x; +PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040; +R127i.y = int(intBitsToFloat(R3i.z)); +PS1i = R127i.y; +// 2 +PV0i.x = 0 - PS1i; +R124i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000; +PS0i = floatBitsToInt(float(PV1i.z)); +// 3 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R4i.w = max(R127i.y, PV0i.x); +PS1i = floatBitsToInt(float(R127i.x)); +// 4 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.z = floatBitsToInt(float(R3i.x)); +PS0i = R126i.z; +// 5 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R127i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R127i.y; +// 6 +PV0i.x = 0 - PS1i; +PV0i.y = floatBitsToInt(intBitsToFloat(R13i.x) * intBitsToFloat(PV1i.y)); +R126i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R126i.y; +// 7 +PV1i.x = 0 - PS0i; +R2i.w = max(R127i.y, PV0i.x); +PS1i = int(intBitsToFloat(PV0i.y)); +// 8 +R126i.w = max(R126i.y, PV1i.x); +R124i.z = R3i.w * PS1i; +PS0i = R124i.z; +// 9 +PS1i = floatBitsToInt(float(R0i.w)); +// 10 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS0i)); +R126i.y = floatBitsToInt(float(R3i.x)); +PS1i = R126i.y; +// 12 +R3i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R125i.w = int(intBitsToFloat(PV1i.x)); +PS0i = R125i.w; +// 13 +PS1i = floatBitsToInt(float(PS0i)); +// 14 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R126i.z)) + intBitsToFloat(PS1i)); +R125i.x = floatBitsToInt(float(R125i.w)); +PS0i = R125i.x; +// 15 +R123i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R127i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R0i.w = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.y))); +PS1i = R0i.w; +// 16 +PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.x)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.x)); +// 17 +R124i.x = int(1) - PS0i; +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R124i.w = PS0i * R125i.y; +PS1i = R124i.w; +// 18 +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.w))); +PV0i.z = R126i.z; +PS0i = floatBitsToInt(float(R124i.y)); +// 19 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0); +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R126i.x = int(intBitsToFloat(R127i.x)); +PS1i = R126i.x; +// 20 +backupReg0i = R126i.w; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +R126i.w = ((intBitsToFloat(PV1i.x) == 0.0)?(R126i.z):(PV1i.y)); +PV0i.w = R126i.w; +R124i.y = backupReg0i * PS1i; +PS0i = R124i.y; +// 21 +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.w)); +R127i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 22 +R123i.y = ((-(intBitsToFloat(R126i.w)) > 0.0)?(PV1i.z):(R126i.w)); +PV0i.y = R123i.y; +PV0i.w = 0 - PS1i; +// 23 +R123i.x = ((-(intBitsToFloat(R125i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.x = R123i.x; +PV1i.z = max(R127i.x, PV0i.w); +// 24 +R123i.w = ((intBitsToFloat(R126i.y) == 0.0)?(R125i.x):(PV1i.x)); +PV0i.w = R123i.w; +PS0i = PV1i.z * R126i.x; +// 25 +R126i.z = R125i.w + PS0i; +PS1i = int(intBitsToFloat(PV0i.w)); +// 26 +PS0i = R124i.x * PS1i; +// 27 +PV1i.z = PS0i + R124i.w; +R124i.x = R2i.w * R126i.z; +PS1i = R124i.x; +// 28 +PS0i = R4i.w * PV1i.z; +// 29 +PV1i.y = PS0i + R124i.z; +// 30 +PV0i.x = R124i.x + PV1i.y; +// 31 +PV1i.w = R124i.y + PV0i.x; +// 32 +R126i.z = floatBitsToInt(float(PV1i.w)); +PS0i = R126i.z; +// 33 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), abs(intBitsToFloat(PS0i)))); +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +// 34 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +// 35 +R124i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R3i.x)) + intBitsToFloat(R124i.w))); +PV1i.z = R124i.z; +// 36 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV1i.z)); +// 37 +R124i.w = ((intBitsToFloat(PV0i.x) == 0.0)?(R124i.z):(PV0i.y)); +PV1i.w = R124i.w; +// 38 +PV0i.z = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV1i.w)); +// 39 +R123i.y = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV0i.z):(R124i.w)); +PV1i.y = R123i.y; +// 40 +R123i.x = ((-(intBitsToFloat(R126i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.x = R123i.x; +// 41 +R123i.w = ((intBitsToFloat(R126i.y) == 0.0)?(R126i.z):(PV0i.x)); +PV1i.w = R123i.w; +// 42 +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 43 +R126i.y = floatBitsToInt(float(PS0i)); +PS1i = R126i.y; +// 44 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R2i.x = floatBitsToInt(float(R126i.z)); +PS0i = R2i.x; +// 45 +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +// 46 +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R126i.y))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +// 47 +R3i.x = floatBitsToInt((-(intBitsToFloat(PV0i.z)) * 4.0 + intBitsToFloat(R124i.y))); +PV1i.x = R3i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 0.25); +R0i.z = ((R6i.w == 0)?(R8i.x):(R8i.y)); +// 48 +R10i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +R3i.z = floatBitsToInt((intBitsToFloat(PV1i.x) >= 4.0)?1.0:0.0); +R0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0xc0800000)); +R0i.y = int(uf_blockVS7[26].x); +PS0i = R0i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +R124i.y = ((intBitsToFloat(R3i.z) == 0.0)?(R3i.x):(R0i.w)); +PV0i.y = R124i.y; +PS0i = int(intBitsToFloat(R10i.x)); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + 4.0); +R10i.y = PS0i + 0x00000012; +PV1i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R0i.x = int(uf_blockVS7[26].y); +PS1i = R0i.x; +// 2 +R123i.w = ((-(intBitsToFloat(R124i.y)) > 0.0)?(PV1i.x):(R124i.y)); +PV0i.w = R123i.w; +R126i.z = floatBitsToInt(float(PV1i.w)); +PS0i = R126i.z; +// 3 +R124i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R123i.z = ((-(intBitsToFloat(R2i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.z = R123i.z; +// 4 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(R126i.z))?1.0:0.0); +PS0i = int(intBitsToFloat(PV1i.z)); +// 5 +backupReg0i = R124i.y; +PV1i.x = int(-1) + PS0i; +R124i.y = 0xfffffffe + PS0i; +R126i.z = 0xfffffffd + PS0i; +R125i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(float(PS0i)); +// 6 +R126i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.x)); +// 7 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R124i.y)); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R124i.x; +// 9 +PV1i.x = 0 - PS0i; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +R124i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R124i.w; +// 10 +PV0i.x = 0 - PS1i; +PV0i.z = max(R124i.x, PV1i.x); +R124i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R124i.z; +// 11 +R2i.x = int(1) - PV0i.z; +PV1i.y = max(R124i.w, PV0i.x); +PV1i.z = 0 - PS0i; +PS1i = floatBitsToInt(float(R126i.z)); +// 12 +PV0i.x = max(R124i.z, PV1i.z); +R4i.y = int(1) - PV1i.y; +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.z = int(intBitsToFloat(R125i.w)); +PS0i = R124i.z; +// 13 +PV1i.y = 0 - PS0i; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.w))); +R0i.w = int(1) - PV0i.x; +PS1i = floatBitsToInt(float(R126i.x)); +// 14 +R3i.x = max(R124i.z, PV1i.y); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R124i.y; +// 15 +PV1i.x = 0 - PS0i; +R4i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +// 16 +PV0i.w = max(R124i.y, PV1i.x); +// 17 +R3i.z = int(1) - PV0i.w; +} +if( activeMaskStackC[3] == true ) { +R10i.xyzw = floatBitsToInt(uf_blockVS7[R10i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R124i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +R126i.y = int(-1) + R0i.y; +R124i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +R124i.y = R3i.z * R10i.w; +PS0i = R124i.y; +// 1 +R126i.x = R0i.w * R10i.z; +PS1i = R126i.x; +// 2 +R125i.w = R4i.y * R10i.y; +PS0i = R125i.w; +// 3 +PS1i = R2i.x * R10i.x; +// 4 +PV0i.y = R125i.w + PS1i; +R124i.z = int(intBitsToFloat(R4i.w)); +PS0i = R124i.z; +// 5 +PV1i.x = R126i.x + PV0i.y; +PV1i.y = 0 - PS0i; +PS1i = floatBitsToInt(float(R124i.w)); +// 6 +R10i.x = max(R124i.z, PV1i.y); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R10i.w = R124i.y + PV1i.x; +PS0i = floatBitsToInt(float(R124i.x)); +// 7 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +R124i.w = floatBitsToInt(float(backupReg0i)); +PS1i = R124i.w; +// 8 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R15i.w), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +R124i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R124i.z; +// 9 +PV1i.x = 0 - PS0i; +PV1i.y = floatBitsToInt(intBitsToFloat(R13i.x) * intBitsToFloat(PV0i.z)); +R126i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R126i.z; +// 10 +R2i.x = max(R124i.z, PV1i.x); +PV0i.y = 0 - PS1i; +PS0i = int(intBitsToFloat(PV1i.y)); +// 11 +R125i.x = max(R126i.z, PV0i.y); +R125i.w = R3i.x * PS0i; +PS1i = R125i.w; +// 12 +backupReg0i = R0i.x; +PS0i = floatBitsToInt(float(backupReg0i)); +// 13 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 14 +backupReg0i = R0i.y; +PV0i.y = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt(float(backupReg0i)); +PS0i = R126i.z; +// 15 +R127i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R127i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 16 +PS0i = floatBitsToInt(float(PS1i)); +// 17 +PV1i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PS0i)); +R124i.y = floatBitsToInt(float(R127i.x)); +PS1i = R124i.y; +// 18 +R124i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R123i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R123i.y; +R4i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.z))); +PS0i = R4i.x; +// 19 +PV1i.w = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R124i.y)), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(PV0i.y)); +// 20 +R0i.x = int(1) - PS1i; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +R3i.x = PS1i * R126i.y; +PS0i = R3i.x; +// 21 +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R127i.y)) + intBitsToFloat(R124i.x))); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(float(R127i.z)); +// 22 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.w) >= abs(intBitsToFloat(R126i.z)))?1.0:0.0); +PV0i.z = floatBitsToInt(-(abs(intBitsToFloat(R126i.z))) + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R125i.y = int(intBitsToFloat(R126i.x)); +PS0i = R125i.y; +// 23 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV0i.y) == 0.0)?(R124i.w):(PV0i.z)); +PV1i.x = R125i.x; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R127i.z = backupReg0i * PS0i; +PS1i = R127i.z; +// 24 +PV0i.w = floatBitsToInt(abs(intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.x)); +R126i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R126i.y; +// 25 +PV1i.x = 0 - PS0i; +R123i.z = ((-(intBitsToFloat(R125i.x)) > 0.0)?(PV0i.w):(R125i.x)); +PV1i.z = R123i.z; +// 26 +R123i.y = ((-(intBitsToFloat(R124i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +PV0i.w = max(R126i.y, PV1i.x); +// 27 +R123i.x = ((intBitsToFloat(R126i.z) == 0.0)?(R124i.y):(PV0i.y)); +PV1i.x = R123i.x; +PS1i = PV0i.w * R125i.y; +// 28 +R124i.w = R127i.x + PS1i; +PS0i = int(intBitsToFloat(PV1i.x)); +// 29 +backupReg0i = R0i.x; +PS1i = backupReg0i * PS0i; +// 30 +PV0i.w = PS1i + R3i.x; +R125i.y = R2i.x * R124i.w; +PS0i = R125i.y; +// 31 +PS1i = R10i.x * PV0i.w; +// 32 +PV0i.z = PS1i + R125i.w; +// 33 +PV1i.y = R125i.y + PV0i.z; +// 34 +PV0i.x = R127i.z + PV1i.y; +// 35 +R124i.w = floatBitsToInt(float(PV0i.x)); +PS1i = R124i.w; +// 36 +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), abs(intBitsToFloat(PS1i)))); +// 37 +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +// 38 +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.x))); +PV0i.w = R125i.w; +// 39 +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.w) >= abs(intBitsToFloat(R126i.z)))?1.0:0.0); +PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R126i.z))) + intBitsToFloat(PV0i.w)); +// 40 +R127i.x = ((intBitsToFloat(PV1i.y) == 0.0)?(R125i.w):(PV1i.z)); +PV0i.x = R127i.x; +// 41 +PV1i.w = floatBitsToInt(abs(intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.x)); +// 42 +R123i.z = ((-(intBitsToFloat(R127i.x)) > 0.0)?(PV1i.w):(R127i.x)); +PV0i.z = R123i.z; +// 43 +R123i.y = ((-(intBitsToFloat(R124i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +PV1i.y = R123i.y; +// 44 +R123i.x = ((intBitsToFloat(R126i.z) == 0.0)?(R124i.w):(PV1i.y)); +PV0i.x = R123i.x; +// 45 +R124i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R124i.w; +// 46 +R0i.z = floatBitsToInt(float(PS1i)); +PS0i = R0i.z; +// 47 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R0i.y = floatBitsToInt(float(R124i.w)); +PS1i = R0i.y; +// 48 +R4i.x = floatBitsToInt(abs(intBitsToFloat(PS1i)) * 0.25); +R10i.z = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R4i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.x))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R123i.z = floatBitsToInt((intBitsToFloat(R4i.w) * 0.5 + intBitsToFloat(R0i.z))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(R4i.x))); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * 0.25); +R127i.y = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * 4.0 + intBitsToFloat(R10i.z))); +PV1i.y = R127i.y; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xc0800000)); +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt((intBitsToFloat(PV1i.y) >= 4.0)?1.0:0.0); +// 3 +R126i.z = ((intBitsToFloat(PV0i.w) == 0.0)?(R127i.y):(PV0i.x)); +PV1i.z = R126i.z; +PS1i = int(intBitsToFloat(PV0i.y)); +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 4.0); +R10i.z = PS1i + 0x0000001b; +PS0i = int(uf_blockVS7[48].z); +// 5 +R123i.x = ((-(intBitsToFloat(R126i.z)) > 0.0)?(PV0i.y):(R126i.z)); +PV1i.x = R123i.x; +R2i.z = floatBitsToInt(float(PS0i)); +PS1i = R2i.z; +// 6 +R123i.w = ((-(intBitsToFloat(R0i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.x)))):(PV1i.x)); +PV0i.w = R123i.w; +R0i.y = floatBitsToInt(float(R10i.w)); +PS0i = R0i.y; +// 7 +PS1i = int(intBitsToFloat(PV0i.w)); +// 8 +R127i.x = 0xfffffffe + PS1i; +PV0i.y = int(-1) + PS1i; +R126i.z = floatBitsToInt(abs(intBitsToFloat(R2i.z))); +R124i.w = 0xfffffffd + PS1i; +PS0i = floatBitsToInt(float(PS1i)); +// 9 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.y)); +// 10 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(float(R127i.x)); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R127i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R127i.y; +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +PV0i.y = 0 - PS1i; +R127i.x = int(intBitsToFloat(PV1i.y)); +PS0i = R127i.x; +// 13 +PV1i.x = 0 - PS0i; +PV1i.w = max(R127i.y, PV0i.y); +R125i.w = int(intBitsToFloat(PV0i.x)); +PS1i = R125i.w; +// 14 +R2i.x = int(1) - PV1i.w; +PV0i.y = 0 - PS1i; +PV0i.z = max(R127i.x, PV1i.x); +PS0i = floatBitsToInt(float(R124i.w)); +// 15 +R10i.x = int(1) - PV0i.z; +PV1i.y = max(R125i.w, PV0i.y); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R0i.x = floatBitsToInt(float(R10i.w)); +PS1i = R0i.x; +// 16 +R4i.x = int(1) - PV1i.y; +R127i.y = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R2i.z))); +// 17 +PV1i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R0i.x)), intBitsToFloat(PS0i))); +R127i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R127i.z; +// 18 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +PV0i.y = 0 - PS1i; +// 19 +PV1i.x = max(R127i.z, PV0i.y); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R126i.z)) + intBitsToFloat(R127i.y))); +PV1i.z = R127i.z; +// 20 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R2i.z)))?1.0:0.0); +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R2i.z))) + intBitsToFloat(PV1i.z)); +R10i.w = int(1) - PV1i.x; +// 21 +R4i.w = ((intBitsToFloat(PV0i.x) == 0.0)?(R127i.z):(PV0i.y)); +PV1i.w = R4i.w; +// 22 +R0i.z = floatBitsToInt(abs(intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.w)); +} +if( activeMaskStackC[3] == true ) { +R3i.xyzw = floatBitsToInt(uf_blockVS7[R10i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(R0i.y))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(backupReg0i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), uf_blockVS7[45].x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0); +PV0i.w = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +R126i.z = R10i.w * R3i.w; +PS0i = R126i.z; +// 1 +R125i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.w)); +R123i.y = ((-(intBitsToFloat(R4i.w)) > 0.0)?(R0i.z):(R4i.w)); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), uf_blockVS7[45].y)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +R127i.y = R4i.x * R3i.z; +PS1i = R127i.y; +// 2 +backupReg0i = R0i.y; +R123i.x = ((-(intBitsToFloat(R0i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R124i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.5 + intBitsToFloat(backupReg0i))); +R127i.x = R10i.x * R3i.y; +PS0i = R127i.x; +// 3 +R126i.x = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV1i.z = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +R123i.w = ((intBitsToFloat(R2i.z) == 0.0)?(R0i.x):(PV0i.x)); +PV1i.w = R123i.w; +PS1i = R2i.x * R3i.x; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS7[46].z) + intBitsToFloat(PV1i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockVS7[46].w) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +PV0i.z = R127i.x + PS1i; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(R125i.x)))); +R127i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R127i.z; +// 5 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[45].z) + intBitsToFloat(PV0i.x))); +PV1i.y = R127i.y + PV0i.z; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[45].w) + intBitsToFloat(PV0i.y))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[44].y) + intBitsToFloat(R126i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R2i.z)); +// 6 +R124i.x = R126i.z + PV1i.y; +PV0i.y = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].z); +// 7 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS0i))); +PV1i.x = R126i.x; +R123i.y = ((R6i.w == 0)?(0):(int(1))); +PV1i.y = R123i.y; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 8 +R127i.x = (PV1i.y == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.x = R127i.x; +PV0i.y = (PV1i.y == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i))); +PV0i.z = R124i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV1i.x)) + -(0.5))); +R126i.z = int(intBitsToFloat(PV1i.w)); +PS0i = R126i.z; +// 9 +backupReg0i = R127i.z; +R123i.x = ((PV0i.y == 0)?(R8i.x):(R8i.z)); +PV1i.x = R123i.x; +R127i.y = ((PV0i.x == 0)?(R8i.x):(R8i.y)); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(PV0i.z)) + -(0.5))); +R123i.w = ((PV0i.y == 0)?(R8i.y):(R8i.x)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(float(backupReg0i)); +// 10 +R123i.x = ((R127i.x == 0)?(PV1i.w):(R8i.z)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.w))); +PV0i.y = R123i.y; +R123i.z = ((R127i.x == 0)?(PV1i.x):(R8i.y)); +PV0i.z = R123i.z; +R125i.w = ((R127i.x == 0)?(R8i.y):(R8i.z)); +PS0i = floatBitsToInt(float(R126i.z)); +// 11 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(PV0i.z))); +R125i.x = floatBitsToInt(intBitsToFloat(R125i.x) * 2.0); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R124i.w))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) * 2.0); +PS1i = int(uf_blockVS7[53].z); +// 12 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R127i.z)) + -(intBitsToFloat(PV1i.z)))); +PV0i.y = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +PV0i.w = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +R126i.y = floatBitsToInt(float(PS1i)); +PS0i = R126i.y; +// 13 +backupReg0i = R126i.w; +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R127i.z = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.w)); +R126i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y)); +R125i.x = floatBitsToInt(float(R124i.x)); +PS1i = R125i.x; +// 14 +backupReg0i = R127i.y; +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R124i.w = floatBitsToInt(float(R124i.x)); +PS0i = R124i.w; +// 15 +backupReg0i = R125i.w; +R124i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R127i.z)))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R125i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.y))); +// 16 +PV0i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R124i.w)), intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R125i.x))); +PV0i.y = R123i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[49].y) + intBitsToFloat(R126i.w))); +R5i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[50].z) + intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.y)); +// 17 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[50].w) + intBitsToFloat(R125i.w))); +R127i.z = ((R6i.w == 0)?(0):(0x00000002)); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 18 +backupReg0i = R127i.x; +R127i.x = (PV1i.z == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R124i.x))); +PV0i.y = R127i.y; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +R6i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS1i))); +PV0i.w = R6i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 19 +backupReg0i = R4i.z; +PV1i.x = floatBitsToInt(-(abs(intBitsToFloat(R126i.y))) + intBitsToFloat(PV0i.y)); +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS0i))); +PV1i.y = R125i.y; +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + -(0.5))); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R126i.y)))?1.0:0.0); +PS1i = int(intBitsToFloat(PV0i.z)); +// 20 +backupReg0i = R127i.y; +PV0i.x = (R127i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(PV1i.y)) + -(0.5))); +R127i.z = ((intBitsToFloat(PV1i.w) == 0.0)?(backupReg0i):(PV1i.x)); +PV0i.z = R127i.z; +R4i.w = ((R127i.x == 0)?(R8i.x):(R8i.y)); +PS0i = floatBitsToInt(float(PS1i)); +// 21 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.z)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.z))); +PV1i.y = R123i.y; +R123i.z = ((PV0i.x == 0)?(R8i.y):(R8i.x)); +PV1i.z = R123i.z; +R123i.w = ((PV0i.x == 0)?(R8i.x):(R8i.z)); +PV1i.w = R123i.w; +R2i.z = ((R127i.x == 0)?(R8i.y):(R8i.z)); +PS1i = R2i.z; +// 22 +backupReg0i = R8i.z; +R123i.x = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV1i.x):(R127i.z)); +PV0i.x = R123i.x; +R2i.y = ((R127i.x == 0)?(PV1i.w):(R8i.y)); +R8i.z = ((R127i.x == 0)?(PV1i.z):(backupReg0i)); +R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R127i.y)) + -(intBitsToFloat(PV1i.y)))); +PS0i = int(uf_blockVS7[58].z); +// 23 +R123i.w = ((-(intBitsToFloat(R124i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.w = R123i.w; +R8i.x = floatBitsToInt(float(PS0i)); +PS1i = R8i.x; +// 24 +PV0i.x = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +R123i.z = ((intBitsToFloat(R126i.y) == 0.0)?(R124i.w):(PV1i.w)); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 25 +R0i.y = ((intBitsToFloat(PV0i.x) == 0.0)?(0):(PV0i.w)); +R8i.w = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R8i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R8i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R8i.x)) + intBitsToFloat(R0i.y)); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R2i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 2.0); +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(R8i.w))); +PV0i.w = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x); +PS0i = floatBitsToInt(float(R8i.y)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R3i.y))); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R8i.z))); +R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) * 2.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.w)); +R123i.w = ((-(intBitsToFloat(R0i.y)) > 0.0)?(PV0i.x):(R0i.y)); +PV1i.w = R123i.w; +R124i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R124i.y; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R15i.w)),uf_blockVS7[54].x) + -(intBitsToFloat(PV1i.z)))); +R123i.z = ((intBitsToFloat(R8i.x) == 0.0)?(0):(PV1i.w)); +PV0i.z = R123i.z; +R6i.w = floatBitsToInt(intBitsToFloat(R10i.y) + 0.5); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 3 +R2i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R2i.y = floatBitsToInt(intBitsToFloat(R5i.x) + 0.5); +R8i.z = floatBitsToInt(intBitsToFloat(R3i.w) + 0.5); +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS0i))); +PV1i.w = R124i.w; +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 4 +R127i.x = floatBitsToInt(intBitsToFloat(R5i.y) + -(uf_blockVS7[93].x)); +R5i.y = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(PV1i.w)) + -(0.5))); +R126i.w = floatBitsToInt(intBitsToFloat(R16i.w) + 0.0); +PV0i.w = R126i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 5 +backupReg0i = R126i.y; +R125i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + -(uf_blockVS7[104].w)); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS0i))); +PV1i.y = R126i.y; +PS1i = floatBitsToInt(float(backupReg0i)); +// 6 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS1i)) + intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV1i.y)) + -(0.5))); +R124i.w = floatBitsToInt(float(R124i.y)); +PS0i = R124i.w; +// 7 +PV1i.x = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w); +PV1i.z = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R5i.y)); +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[54].y) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R4i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R4i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +R4i.z = clampFI32(R4i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[55].z) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[105].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.w),uf_blockVS7[55].w) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(R124i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R125i.z)) + -(intBitsToFloat(PV1i.y)))); +PV0i.w = R123i.w; +// 11 +R17i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R16i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PV1i.z = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R124i.w = ((intBitsToFloat(R125i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R127i.x = ((intBitsToFloat(R124i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R127i.x; +// 12 +R124i.x = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 13 +PV1i.x = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +R127i.z = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[106].w)); +PV1i.z = R127i.z; +// 14 +R126i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R126i.y; +R125i.z = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[107].w)); +PV0i.z = R125i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[104].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 15 +backupReg0i = R124i.x; +R124i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS0i)); +R125i.w = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +PS1i = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +// 16 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[105].x)); +R125i.y = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[108].w)); +PV0i.y = R125i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +PS0i = R127i.y; +// 17 +backupReg0i = R124i.w; +R125i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R125i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R124i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +// 18 +R127i.x = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 19 +PV1i.x = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.w))); +// 20 +backupReg0i = R127i.z; +R127i.z = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[109].w)); +PV0i.z = R127i.z; +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.y)) + uf_blockVS7[106].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 21 +R124i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R1i.y = floatBitsToInt(fract(intBitsToFloat(R1i.w))); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R125i.w = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +R127i.x = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x42c80000)); +R127i.x = clampFI32(R127i.x); +PS1i = R127i.x; +// 22 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[107].x)); +R0i.y = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[110].w)); +PV0i.y = R0i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PS1i))); +PS0i = R1i.z; +// 23 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R125i.x; +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R127i.x))); +// 24 +R127i.x = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 25 +PV1i.x = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.w))); +// 26 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + -(uf_blockVS7[111].w)); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV1i.y)) + uf_blockVS7[108].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 27 +R8i.x = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R8i.x; +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R9i.w = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +// 28 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[109].x)); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R124i.w))); +// 29 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.z))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +// 30 +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(PV1i.x))); +R1i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +PS0i = R1i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS11[5].z)); +R1i.y = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(backupReg0i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),uf_blockVS13[24].x) + -(uf_blockVS13[24].y))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(R5i.y)) + intBitsToFloat(R6i.y))); +PV0i.w = R123i.w; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R10i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[24].w, intBitsToFloat(PS0i))); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R5i.z)) + intBitsToFloat(PV0i.x))); +// 4 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.x))); +// 5 +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),uf_blockVS13[25].w) + uf_blockVS13[25].w)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R7i.x))); +R127i.y = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R7i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R1i.y)) + uf_blockVS7[110].x)); +PV0i.w = R123i.w; +// 1 +R125i.x = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R6i.z))); +PV1i.x = R125i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R1i.w))); +PV1i.z = R123i.z; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(PV1i.x)); +R5i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R8i.x)) + intBitsToFloat(PV1i.z))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R11i.z) * intBitsToFloat(R11i.w)); +// 4 +R11i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PS0i))); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R3i.y),intBitsToFloat(R6i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(uf_blockVS13[28].y + 1.0); +// 1 +R126i.x = floatBitsToInt(intBitsToFloat(PS0i) * 1.5); +R126i.x = clampFI32(R126i.x); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV1i.w)); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.w = R123i.w; +R124i.z = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R9i.x))); +PS0i = R124i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV0i.z)) + uf_blockVS13[27].x)); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x41700000)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y))); +// 4 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), uf_blockVS13[26].w)); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R123i.z = floatBitsToInt((intBitsToFloat(R11i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +backupReg0i = R125i.z; +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0)); +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS1i)); +R3i.y = 0; +R3i.z = ((0.0 >= intBitsToFloat(R4i.z))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x41080000)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 7 +R3i.x = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3daaaaab)); +R9i.y = floatBitsToInt(intBitsToFloat(PS0i) + 0.5); +R5i.z = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3e4ccccd))); +R1i.w = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R6i.z = floatBitsToInt(exp2(intBitsToFloat(R125i.z))); +PS1i = R6i.z; +} +if( activeMaskStackC[3] == true ) { +R9i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R9i.xy)).xyz); +R0i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R3i.xy)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R6i.z; +PV0i.x = floatBitsToInt(min(intBitsToFloat(R5i.z), 1.0)); +R127i.y = 0; +R6i.z = 0; +R123i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(backupReg0i)) + uf_blockVS13[23].z)); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R3i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS8[3].x,intBitsToFloat(R4i.z)) + 0.0)); +PS0i = R3i.x; +// 1 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV0i.x))); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.x))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.w)); +PV1i.w = clampFI32(PV1i.w); +R4i.x = 0; +PS1i = R4i.x; +// 2 +R5i.x = R18i.x; +R125i.y = PV1i.w; +R126i.z = PV1i.w; +R9i.w = ((R3i.z == 0)?(R3i.w):(R127i.y)); +R3i.y = R15i.y; +PS0i = R3i.y; +// 3 +R15i.x = ((R3i.z == 0)?(R11i.x):(R11i.x)); +R4i.y = ((R3i.z == 0)?(R5i.w):(R1i.w)); +R4i.z = R14i.z; +R3i.w = ((R3i.z == 0)?(R5i.y):(R5i.y)); +R10i.y = ((R3i.z == 0)?(R22i.z):(R22i.z)); +PS1i = R10i.y; +// 4 +R9i.x = ((R3i.z == 0)?(0):(R0i.y)); +R1i.y = ((R3i.z == 0)?(0):(R0i.w)); +R10i.z = ((R3i.z == 0)?(R1i.z):(R6i.z)); +R5i.w = ((R3i.z == 0)?(R3i.x):(R4i.x)); +PV0i.w = R5i.w; +R127i.w = ((R3i.z == 0)?(0):(R8i.x)); +PS0i = R127i.w; +// 5 +R126i.x = ((R3i.z == 0)?(0):(R2i.z)); +R126i.y = ((R3i.z == 0)?(0):(R1i.x)); +R125i.z = ((R3i.z == 0)?(0):(R125i.y)); +R10i.w = ((R3i.z == 0)?(0):(PV0i.w)); +R125i.x = ((R3i.z == 0)?(0):(R9i.y)); +PS1i = R125i.x; +// 6 +R16i.x = ((R3i.z == 0)?(0):(R3i.y)); +R124i.y = ((R3i.z == 0)?(0):(R6i.w)); +R127i.z = ((R3i.z == 0)?(0):(R124i.z)); +R124i.w = ((R3i.z == 0)?(0):(R127i.x)); +R124i.x = ((R3i.z == 0)?(0):(R0i.x)); +PS0i = R124i.x; +// 7 +R3i.x = ((R3i.z == 0)?(0):(R5i.x)); +R3i.y = ((R3i.z == 0)?(0):(R126i.z)); +R9i.z = ((R3i.z == 0)?(0):(R17i.x)); +R126i.w = ((R3i.z == 0)?(0):(R16i.y)); +R7i.x = ((R3i.z == 0)?(0):(R2i.y)); +PS1i = R7i.x; +// 8 +R5i.x = ((R3i.z == 0)?(R22i.y):(R5i.y)); +R6i.y = ((R3i.z == 0)?(0):(R13i.w)); +R1i.z = ((R3i.z == 0)?(0):(R0i.z)); +R125i.w = ((R3i.z == 0)?(0):(R2i.x)); +R7i.y = ((R3i.z == 0)?(R22i.x):(R4i.x)); +PS0i = R7i.y; +// 9 +R6i.x = ((R3i.z == 0)?(0):(R11i.y)); +R5i.y = ((R3i.z == 0)?(0):(R12i.w)); +R13i.z = ((R3i.z == 0)?(0):(R4i.z)); +R7i.w = ((R3i.z == 0)?(0):(R12i.x)); +R13i.x = ((R3i.z == 0)?(0):(R14i.y)); +PS1i = R13i.x; +// 10 +R4i.x = ((R3i.z == 0)?(0):(R14i.w)); +R8i.y = ((R3i.z == 0)?(0):(R12i.y)); +R5i.z = ((R3i.z == 0)?(0):(R17i.z)); +R4i.w = ((R3i.z == 0)?(0):(R14i.x)); +R10i.x = ((R3i.z == 0)?(0):(R13i.y)); +PS0i = R10i.x; +// 11 +backupReg0i = R11i.x; +R11i.x = ((R3i.z == 0)?(R21i.x):(R127i.y)); +R127i.y = ((R3i.z == 0)?(0):(0x3f800000)); +PV1i.y = R127i.y; +R4i.z = ((R3i.z == 0)?(0):(R8i.z)); +R8i.w = ((R3i.z == 0)?(R21i.w):(backupReg0i)); +R11i.w = ((R3i.z == 0)?(R22i.z):(R22i.z)); +PS1i = R11i.w; +// 12 +R23i.x = ((PV1i.y == 0)?(R2i.z):(R126i.x)); +R23i.y = ((PV1i.y == 0)?(R8i.x):(R127i.w)); +R23i.z = ((PV1i.y == 0)?(R125i.y):(R125i.z)); +R23i.w = ((PV1i.y == 0)?(R1i.x):(R126i.y)); +R25i.x = ((PV1i.y == 0)?(R6i.w):(R124i.y)); +PS0i = R25i.x; +// 13 +R24i.x = ((R127i.y == 0)?(R9i.y):(R125i.x)); +R24i.y = ((R127i.y == 0)?(R127i.x):(R124i.w)); +R24i.z = ((R127i.y == 0)?(R124i.z):(R127i.z)); +R124i.w = R18i.x; +R24i.w = ((R127i.y == 0)?(R126i.z):(R3i.y)); +PS1i = R24i.w; +// 14 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +R0i.x = ((R127i.y == 0)?(backupReg0i):(R124i.x)); +R0i.y = ((R127i.y == 0)?(backupReg1i):(R9i.x)); +R0i.z = ((R127i.y == 0)?(backupReg2i):(R1i.z)); +R127i.w = R14i.z; +// 15 +backupReg0i = R0i.w; +backupReg1i = R17i.x; +R17i.x = ((R127i.y == 0)?(R124i.w):(R3i.x)); +PV1i.x = R17i.x; +R25i.y = ((R127i.y == 0)?(R2i.y):(R7i.x)); +R0i.w = ((R127i.y == 0)?(backupReg0i):(R1i.y)); +R18i.x = ((R127i.y == 0)?(backupReg1i):(R9i.z)); +PS1i = R18i.x; +// 16 +R18i.y = ((R127i.y == 0)?(R16i.y):(R126i.w)); +R25i.z = ((R127i.y == 0)?(R2i.x):(R125i.w)); +R25i.w = ((R127i.y == 0)?(R8i.z):(R4i.z)); +R22i.x = ((R127i.y == 0)?(R5i.w):(R7i.y)); +PS0i = R22i.x; +// 17 +R19i.x = ((R127i.y == 0)?(R11i.y):(R6i.x)); +R22i.y = ((R127i.y == 0)?(R3i.w):(R5i.x)); +R22i.z = ((R127i.y == 0)?(R10i.y):(R11i.w)); +R123i.w = ((R3i.z == 0)?(0):(R7i.z)); +PV1i.w = R123i.w; +R124i.x = ((R3i.z == 0)?(R21i.z):(R1i.w)); +PS1i = R124i.x; +// 18 +R20i.x = ((R127i.y == 0)?(R12i.w):(R5i.y)); +R123i.y = ((R3i.z == 0)?(0):(R11i.z)); +PV0i.y = R123i.y; +R26i.x = ((R127i.y == 0)?(R7i.z):(PV1i.w)); +PS0i = R26i.x; +// 19 +R21i.x = ((R127i.y == 0)?(R9i.w):(R11i.x)); +R19i.y = ((R127i.y == 0)?(R11i.z):(PV0i.y)); +R19i.z = ((R127i.y == 0)?(R13i.w):(R6i.y)); +R19i.w = ((R127i.y == 0)?(R12i.x):(R7i.w)); +R18i.z = ((R127i.y == 0)?(R17i.z):(R5i.z)); +PS1i = R18i.z; +// 20 +R26i.y = ((R127i.y == 0)?(R12i.y):(R8i.y)); +// 21 +R123i.y = ((R3i.z == 0)?(0):(R12i.z)); +PV1i.y = R123i.y; +R26i.z = ((R127i.y == 0)?(R13i.y):(R10i.x)); +R26i.w = ((R127i.y == 0)?(R14i.w):(R4i.x)); +// 22 +R123i.x = ((R3i.z == 0)?(R21i.y):(R6i.z)); +PV0i.x = R123i.x; +R20i.y = ((R127i.y == 0)?(R12i.z):(PV1i.y)); +R20i.z = ((R127i.y == 0)?(R14i.y):(R13i.x)); +R20i.w = ((R127i.y == 0)?(R14i.x):(R4i.w)); +// 23 +PV1i.x = R15i.y; +R21i.y = ((R127i.y == 0)?(R10i.z):(PV0i.x)); +R21i.z = ((R127i.y == 0)?(R4i.y):(R124i.x)); +R21i.w = ((R127i.y == 0)?(R15i.x):(R8i.w)); +// 24 +R17i.y = ((R127i.y == 0)?(PV1i.x):(R16i.x)); +R17i.z = ((R127i.y == 0)?(R127i.w):(R13i.z)); +R17i.w = ((R127i.y == 0)?(R10i.w):(R10i.w)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R26i.x), intBitsToFloat(R26i.y), intBitsToFloat(R26i.z), intBitsToFloat(R26i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R25i.x), intBitsToFloat(R25i.y), intBitsToFloat(R25i.z), intBitsToFloat(R25i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R24i.x), intBitsToFloat(R24i.y), intBitsToFloat(R24i.z), intBitsToFloat(R24i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/fc4a738a3df2bcce_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/fc4a738a3df2bcce_0000000000000000_vs.txt new file mode 100644 index 00000000..d934847e --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/fc4a738a3df2bcce_0000000000000000_vs.txt @@ -0,0 +1,2737 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_shading_language_packing : enable +// shader fc4a738a3df2bcce // guardian explosion plasma smoke vs +layout(binding = 6, std140) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +layout(binding = 7, std140) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +layout(binding = 8, std140) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +layout(binding = 11, std140) uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + +layout(binding = 13, std140) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +layout(binding = 14, std140) uniform uniformBlockVS14 +{ +vec4 uf_blockVS14[1024]; +}; + +uniform vec2 uf_windowSpaceToClipSpaceTransform; +uniform float uf_alphaTestRef; +layout(binding = 40) uniform sampler2D textureUnitVS8;// Tex8 addr 0x3da26000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler26 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 45) uniform sampler2D textureUnitVS13;// Tex13 addr 0x3db8b000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler31 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +layout(location = 2) in uvec4 attrDataSem2; +layout(location = 3) in uvec4 attrDataSem3; +layout(location = 4) in uvec4 attrDataSem4; +layout(location = 5) in uvec4 attrDataSem5; +layout(location = 6) in uvec4 attrDataSem6; +layout(location = 7) in uvec4 attrDataSem7; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem5; +layout(location = 5) out vec4 passParameterSem8; +layout(location = 7) out vec4 passParameterSem11; +layout(location = 8) out vec4 passParameterSem14; +layout(location = 9) out vec4 passParameterSem15; +layout(location = 10) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 6) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem4; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R23i.y = floatBitsToInt(-(intBitsToFloat(R5i.w)) + uf_blockVS8[2].x); +R0i.w = 0; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +predResult = (0.0 > intBitsToFloat(R23i.y)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R19i.x = 0; +R19i.y = 0; +R19i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R20i.x = 0; +PS0i = R20i.x; +// 1 +R2i.w = R1i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R2i.w = R0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R2i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R4i.w)); +// 1 +R4i.z = floatBitsToInt(float(PS0i)); +PS1i = R4i.z; +// 2 +predResult = (intBitsToFloat(R23i.y) >= intBitsToFloat(R4i.z)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R19i.x = 0; +R19i.y = 0; +R19i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R20i.x = 0; +PS0i = R20i.x; +// 1 +R0i.w = R1i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R0i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +PV0i.y = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[10].y)); +PV0i.w = floatBitsToInt(max(intBitsToFloat(R7i.x), 0.0)); +R5i.y = int(intBitsToFloat(R6i.w)); +PS0i = R5i.y; +// 1 +PV1i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 0.0)); +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 2 +R5i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV1i.z)); +PV0i.y = floatBitsToInt(intBitsToFloat(R23i.y) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R125i.w = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +R13i.y = floatBitsToInt(1.0 / intBitsToFloat(R4i.z)); +PS0i = R13i.y; +// 3 +R127i.y = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +R11i.z = floatBitsToInt(intBitsToFloat(R23i.y) * intBitsToFloat(PS0i)); +PV1i.z = R11i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.y)); +// 4 +PV0i.x = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R126i.z))); +// 5 +R127i.x = floatBitsToInt(-(uf_blockVS7[97].x) + uf_blockVS7[98].x); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.z))); +R127i.w = floatBitsToInt(-(uf_blockVS7[97].y) + uf_blockVS7[98].y); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 6 +backupReg0i = R127i.y; +PV0i.x = floatBitsToInt(-(uf_blockVS7[97].w) + uf_blockVS7[98].w); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +R124i.z = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV1i.y)); +PV0i.z = R124i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS1i)); +// 7 +R126i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(uf_blockVS7[96].w)); +PV1i.x = R126i.x; +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(uf_blockVS7[97].w)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 8 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.y))); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R126i.w))); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +R126i.y = floatBitsToInt(intBitsToFloat(R124i.z) + -(uf_blockVS7[98].w)); +PS0i = R126i.y; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.y))); +R124i.y = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(PV0i.x)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.w))); +R0i.w = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(PV0i.z)); +R126i.w = floatBitsToInt(intBitsToFloat(R124i.z) + -(uf_blockVS7[99].w)); +PS1i = R126i.w; +// 10 +R0i.x = floatBitsToInt(uf_blockVS7[97].x + intBitsToFloat(PV1i.x)); +R125i.y = floatBitsToInt(intBitsToFloat(R124i.z) + -(uf_blockVS7[100].w)); +PV0i.y = R125i.y; +R4i.z = ((intBitsToFloat(R126i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R125i.w = floatBitsToInt(uf_blockVS7[97].y + intBitsToFloat(PV1i.z)); +R127i.x = ((intBitsToFloat(R126i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R127i.x; +// 11 +R126i.x = floatBitsToInt(-(uf_blockVS7[98].y) + uf_blockVS7[99].y); +R127i.y = ((intBitsToFloat(R126i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt(-(uf_blockVS7[98].x) + uf_blockVS7[99].x); +R127i.w = ((intBitsToFloat(R126i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R127i.w; +R0i.z = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R0i.z; +// 12 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(-(uf_blockVS7[98].w) + uf_blockVS7[99].w); +R125i.x = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +PS0i = R125i.x; +// 13 +backupReg0i = R127i.y; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt(-(uf_blockVS7[99].x) + uf_blockVS7[100].x); +R125i.z = floatBitsToInt(-(uf_blockVS7[99].y) + uf_blockVS7[100].y); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 14 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(-(uf_blockVS7[99].w) + uf_blockVS7[100].w); +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS1i)); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.z))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R125i.x))); +PS0i = R1i.w; +// 15 +R127i.x = floatBitsToInt(-(uf_blockVS7[100].x) + uf_blockVS7[101].x); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.x))); +R127i.z = floatBitsToInt(-(uf_blockVS7[100].y) + uf_blockVS7[101].y); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 16 +R126i.x = floatBitsToInt(uf_blockVS7[98].y + intBitsToFloat(PV1i.y)); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(uf_blockVS7[98].x + intBitsToFloat(PV1i.w)); +PV0i.w = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(intBitsToFloat(R124i.z) + -(uf_blockVS7[101].w)); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.y))); +R127i.y = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R127i.y; +PV1i.z = floatBitsToInt(-(uf_blockVS7[100].w) + uf_blockVS7[101].w); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R124i.x))); +PS1i = R126i.y; +// 18 +R4i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[101].x, intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(uf_blockVS7[99].x + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(uf_blockVS7[99].y + intBitsToFloat(PV1i.w)); +R2i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[101].y, intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 19 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)) + 1.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R127i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(PS0i)); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.w))); +PS1i = R8i.z; +// 20 +backupReg0i = R0i.z; +backupReg1i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R124i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R124i.w))); +PS0i = R125i.y; +// 21 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R1i.w))); +PV1i.y = floatBitsToInt(uf_blockVS7[100].y + intBitsToFloat(PV0i.x)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R124i.w))); +PV1i.w = floatBitsToInt(uf_blockVS7[100].x + intBitsToFloat(PV0i.z)); +PS1i = floatBitsToInt(-(intBitsToFloat(R4i.z)) + 1.0); +// 22 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(R1i.w))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R127i.w))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R127i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(PS1i))); +// 23 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(R7i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +R3i.w = 0x3f800000; +PS1i = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(R7i.z)); +// 24 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * 0.5); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * 0.5); +PV0i.w = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(R7i.z)); +// 25 +R0i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.y)); +R0i.y = floatBitsToInt(intBitsToFloat(PS0i) * 0.5); +R4i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PV0i.w)); +R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(0.5)); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +R9i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(0.5)); +R9i.z = floatBitsToInt(intBitsToFloat(R9i.z) * 2.0); +PS1i = R9i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(intBitsToFloat(R0i.y) + -(0.5)); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(R0i.x)); +R8i.z = floatBitsToInt(intBitsToFloat(R7i.x) + -(0.5)); +PV0i.w = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(R4i.z)); +R1i.w = floatBitsToInt(intBitsToFloat(R7i.y) + -(0.5)); +PS0i = R1i.w; +// 1 +backupReg0i = R4i.y; +backupReg1i = R0i.w; +PV1i.x = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(PV0i.y)); +R4i.y = floatBitsToInt(intBitsToFloat(R7i.z) + -(0.5)); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS7[115].x)); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), uf_blockVS7[115].y)); +// 2 +backupReg0i = R4i.x; +R4i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + uf_blockVS7[114].x); +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV1i.x)); +R5i.z = floatBitsToInt(uf_blockVS7[114].y + intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.z)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), uf_blockVS7[115].z)); +// 3 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV0i.y))); +R8i.y = floatBitsToInt(uf_blockVS7[114].z + intBitsToFloat(PS0i)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00010000; +R127i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00020000; +PS1i = R127i.z; +// 4 +R126i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00040000; +PS0i = floatBitsToInt(float(PV1i.w)); +// 5 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.z)); +// 6 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(float(R126i.x)); +// 7 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R127i.z = int(intBitsToFloat(PV0i.w)); +PS1i = R127i.z; +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PV0i.y = 0 - PS1i; +R126i.x = int(intBitsToFloat(PV1i.z)); +PS0i = R126i.x; +// 9 +PV1i.x = 0 - PS0i; +PV1i.y = max(R127i.z, PV0i.y); +R127i.y = int(intBitsToFloat(PV0i.x)); +PS1i = R127i.y; +// 10 +PV0i.x = 0 - PS1i; +PV0i.w = max(R126i.x, PV1i.x); +R2i.w = floatBitsToInt(float(PV1i.y)); +R2i.w = floatBitsToInt(intBitsToFloat(R2i.w) * 2.0); +PS0i = R2i.w; +// 11 +R9i.z = max(R127i.y, PV0i.x); +R4i.z = floatBitsToInt(float(PV0i.w)); +R4i.z = floatBitsToInt(intBitsToFloat(R4i.z) * 2.0); +PS1i = R4i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.z; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), uf_blockVS8[3].y)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), uf_blockVS8[3].z)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[3].y)); +// 1 +R5i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,0.0))); +PV1i.x = R5i.x; +PV1i.y = R5i.x; +PV1i.z = R5i.x; +PV1i.w = R5i.x; +R124i.x = floatBitsToInt(float(R9i.z)); +R124i.x = floatBitsToInt(intBitsToFloat(R124i.x) * 2.0); +PS1i = R124i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.y = tempi.x; +PS0i = R7i.y; +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(floor(intBitsToFloat(PS0i))); +// 4 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R9i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0x358637bd)); +PV0i.w = R7i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +// 5 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(floor(intBitsToFloat(PV0i.w))); +// 6 +R126i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R2i.w)), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.z) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PV1i.z))?1.0:0.0); +// 7 +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +// 8 +R127i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R4i.z)), intBitsToFloat(PV1i.w))); +// 9 +R9i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w))); +PV1i.x = R9i.x; +PV1i.y = R9i.x; +PV1i.z = R9i.x; +PV1i.w = R9i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.y = tempi.x; +PS0i = R7i.x; +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R10i.z = tempi.x; +PS1i = floatBitsToInt(floor(intBitsToFloat(PS0i))); +// 12 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R126i.x))); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R126i.x))); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R127i.y))); +// 13 +backupReg0i = R127i.y; +R126i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.w))); +R125i.w = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(backupReg0i))); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS7[113].y)); +PV0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), uf_blockVS7[113].x)); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R124i.x)), intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), uf_blockVS7[113].z)); +PS0i = R127i.z; +// 15 +R124i.x = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV0i.z)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV0i.w))); +R124i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(PV0i.x)); +tempResultf = log2(uf_blockVS7[114].w); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 16 +R126i.x = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(PV1i.z)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R23i.y), intBitsToFloat(PS1i))); +R125i.z = ((uf_blockVS7[114].w == 1.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(PV1i.y)); +R127i.w = floatBitsToInt(-(uf_blockVS7[114].w) + 1.0); +PS0i = R127i.w; +// 17 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R127i.z)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 18 +PV0i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.w)); +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +// 20 +R123i.y = ((R125i.z == 0)?(PV1i.x):(R23i.y)); +PV0i.y = R123i.y; +// 21 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.y))); +// 22 +PV0i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(PV1i.w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(PV1i.z)); +// 23 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983) + 0.5)); +PV1i.w = R123i.w; +// 24 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +// 25 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV1i.w = R123i.w; +// 26 +R3i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3e22f983)); +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983)); +R125i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983)); +PV0i.z = R125i.z; +// 27 +R1i.x = floatBitsToInt(sin((intBitsToFloat(PV0i.z))/0.1591549367)); +PS1i = R1i.x; +// 28 +R3i.y = floatBitsToInt(cos((intBitsToFloat(R125i.z))/0.1591549367)); +PS0i = R3i.y; +// 29 +PV1i.z = (R5i.y == int(1))?int(0xFFFFFFFF):int(0x0); +R124i.w = (R5i.y == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R1i.w = floatBitsToInt(sin((intBitsToFloat(R127i.y))/0.1591549367)); +PS1i = R1i.w; +// 30 +R123i.x = ((PV1i.z == 0)?(0x3f800000):(0xbf800000)); +PV0i.x = R123i.x; +R123i.y = ((PV1i.z == 0)?(0xbf800000):(0xbf800000)); +PV0i.y = R123i.y; +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS1i))); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS1i))); +R3i.z = floatBitsToInt(cos((intBitsToFloat(R127i.y))/0.1591549367)); +PS0i = R3i.z; +// 31 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i))); +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +R5i.z = ((R124i.w == 0)?(PV0i.y):(0x3f800000)); +R3i.w = ((R124i.w == 0)?(PV0i.x):(0xbf800000)); +R2i.x = floatBitsToInt(sin((intBitsToFloat(R3i.x))/0.1591549367)); +PS1i = R2i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +R125i.x = floatBitsToInt(-(intBitsToFloat(R2i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R4i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R8i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R8i.z))); +R127i.y = floatBitsToInt(cos((intBitsToFloat(R3i.x))/0.1591549367)); +PS0i = R127i.y; +// 1 +R126i.x = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w)); +R124i.y = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.z)); +R126i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(PV0i.y)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS0i))); +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +PS1i = R4i.x; +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R2i.w))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R127i.y))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS7[13].z)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R127i.y))); +R124i.x = floatBitsToInt(intBitsToFloat(R9i.x) + -(uf_blockVS6[17].x)); +PS0i = R124i.x; +// 3 +R127i.x = (R5i.y == 0x00000003)?int(0xFFFFFFFF):int(0x0); +R127i.y = floatBitsToInt(intBitsToFloat(R10i.y) + -(uf_blockVS6[17].y)); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R10i.z) + -(uf_blockVS6[17].z)); +PV1i.z = R127i.z; +R1i.w = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(PV0i.x)); +// 4 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),-0.0),vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(uf_blockVS7[13].x); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 5 +PV1i.x = floatBitsToInt(uf_blockVS7[13].y); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0); +R5i.y = ((R127i.x == 0)?(R5i.z):(0x3f800000)); +R5i.z = ((R127i.x == 0)?(R3i.w):(0x3f800000)); +R124i.w = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(PS0i)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.y)), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R124i.x)), intBitsToFloat(PS1i))); +R124i.z = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R127i.z)), intBitsToFloat(PS1i))); +R126i.w = floatBitsToInt(uf_blockVS6[12].x); +PS0i = R126i.w; +// 7 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV0i.y))); +PV1i.x = R10i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV0i.x))); +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV0i.w))); +R3i.w = floatBitsToInt(uf_blockVS6[13].x); +R125i.y = floatBitsToInt(uf_blockVS6[14].x); +PS1i = R125i.y; +// 8 +backupReg0i = R124i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); +PS0i = R124i.x; +// 9 +R127i.x = floatBitsToInt(uf_blockVS6[12].y); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R1i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R12i.z)); +R127i.w = floatBitsToInt(uf_blockVS6[13].y); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.x = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +PS0i = R124i.x; +// 11 +R126i.y = floatBitsToInt(uf_blockVS6[12].z); +PV1i.y = R126i.y; +R125i.z = floatBitsToInt(uf_blockVS6[14].y); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 12 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(uf_blockVS6[13].z); +PV0i.x = R124i.x; +R4i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(backupReg0i)); +PV0i.y = R4i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.y))); +R125i.w = floatBitsToInt(uf_blockVS6[14].z); +PV0i.w = R125i.w; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PV1i.y))); +PS0i = R127i.y; +// 13 +backupReg0i = R0i.y; +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.x))); +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.y))); +PV1i.z = R2i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +PV1i.w = R5i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.w))); +// 14 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R124i.z))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R124i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.z))); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i))); +PS0i = R122i.x; +// 15 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R124i.x))); +R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PS0i))); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.z))); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.y))); +PS1i = R122i.x; +// 16 +R8i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R126i.w)) + intBitsToFloat(PS1i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R127i.z = 0x3f800000; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R125i.w))); +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R126i.y))); +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R124i.x))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R125i.w))); +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R8i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i))); +PV0i.w = R123i.w; +// 19 +backupReg0i = R0i.w; +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.w))); +R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.x))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R1i.x))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R1i.x))); +// 20 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R4i.x)) + intBitsToFloat(PS1i))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +// 21 +backupReg0i = R124i.y; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R4i.w)) + intBitsToFloat(PV0i.z))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R1i.x))); +// 22 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +// 23 +backupReg0i = R126i.z; +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x))); +PV1i.z = R126i.z; +// 24 +tempi.x = floatBitsToInt(dot(vec4(uf_blockVS6[12].x,uf_blockVS6[12].y,uf_blockVS6[12].z,uf_blockVS6[12].w),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R124i.y),intBitsToFloat(PV1i.z),intBitsToFloat(R127i.z)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 25 +tempi.x = floatBitsToInt(dot(vec4(uf_blockVS6[13].x,uf_blockVS6[13].y,uf_blockVS6[13].z,uf_blockVS6[13].w),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R124i.y),intBitsToFloat(R126i.z),intBitsToFloat(R127i.z)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R4i.z = tempi.x; +R3i.x = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(PV0i.x)); +PS1i = R3i.x; +// 26 +tempi.x = floatBitsToInt(dot(vec4(uf_blockVS6[14].x,uf_blockVS6[14].y,uf_blockVS6[14].z,uf_blockVS6[14].w),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R124i.y),intBitsToFloat(R126i.z),intBitsToFloat(R127i.z)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.y = tempi.x; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockVS11[0].x) + 0.0)); +PV0i.x = R123i.x; +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),uf_blockVS11[0].x) + 0.0)); +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R8i.z)) + intBitsToFloat(R2i.x))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R3i.z)) + intBitsToFloat(R8i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R8i.x)) + intBitsToFloat(R0i.z))); +PV1i.w = R123i.w; +// 2 +R15i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R0i.x)) + intBitsToFloat(PV1i.w))); +R18i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z))); +R17i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(R10i.y) + intBitsToFloat(R4i.z)); +PV0i.w = R126i.w; +R127i.z = floatBitsToInt(intBitsToFloat(R10i.z) + intBitsToFloat(R0i.y)); +PS0i = R127i.z; +// 3 +PV1i.y = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.w)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R2i.z)); +// 4 +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(PS1i)); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.w)), intBitsToFloat(PV0i.w))); +PV1i.z = ((0.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0)); +// 6 +R123i.w = ((PV1i.z == 0)?(PV1i.x):(PV1i.y)); +PV0i.w = R123i.w; +// 7 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), uf_blockVS14[1].w)); +// 8 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), uf_blockVS11[2].y)); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].x, intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].z, intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].y, intBitsToFloat(PV0i.y))); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(PV1i.z))); +// 11 +R2i.xyz = floatBitsToInt(vec3(intBitsToFloat(R3i.x),intBitsToFloat(R126i.w),intBitsToFloat(R127i.z)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +PV1i.x = R2i.x; +PV1i.y = R2i.y; +PV1i.z = R2i.z; +// 12 +R0i.xyz = floatBitsToInt(vec3(-(intBitsToFloat(R9i.x)),-(intBitsToFloat(R10i.y)),-(intBitsToFloat(R10i.z))) + vec3(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z))); +PV0i.x = R0i.x; +PV0i.y = R0i.y; +PV0i.z = R0i.z; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 15 +R126i.w = ((intBitsToFloat(PS0i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 16 +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PS1i))); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PS1i))); +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 18 +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 19 +PV1i.x = ((intBitsToFloat(PS0i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 20 +R0i.w = ((R126i.w == 0)?(0):(PV1i.x)); +// 21 +predResult = (R0i.w != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +backupReg2i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockVS7[95].x)); +PS0i = R127i.x; +// 1 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), uf_blockVS7[95].x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), uf_blockVS7[95].x)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PS1i))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R3i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +// 5 +backupReg0i = R2i.x; +backupReg1i = R2i.y; +backupReg2i = R2i.z; +R2i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +R1i.x = floatBitsToInt(intBitsToFloat(R9i.x) + intBitsToFloat(R10i.x)); +PV0i.x = R1i.x; +R9i.y = floatBitsToInt(intBitsToFloat(R10i.y) + intBitsToFloat(R1i.y)); +PV0i.y = R9i.y; +R1i.z = floatBitsToInt(intBitsToFloat(R10i.z) + intBitsToFloat(R12i.z)); +PV0i.z = R1i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R10i.x) + intBitsToFloat(R2i.x)); +R127i.x = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R2i.y)); +PS0i = R127i.x; +// 1 +PV1i.x = floatBitsToInt(-(uf_blockVS6[17].x) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(-(uf_blockVS6[17].y) + intBitsToFloat(PV0i.y)); +R127i.z = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(R2i.z)); +R1i.w = 0x3f800000; +PS1i = floatBitsToInt(-(uf_blockVS6[17].z) + intBitsToFloat(PV0i.z)); +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PS1i),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PS1i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(R127i.w)); +PS0i = R126i.x; +// 3 +R2i.x = floatBitsToInt(uf_blockVS7[60].x); +R127i.y = floatBitsToInt(-(intBitsToFloat(R1i.z)) + intBitsToFloat(R127i.z)); +R127i.z = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R127i.x)); +R127i.w = 0x3f800000; +PV1i.w = R127i.w; +R0i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R0i.w; +// 4 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R9i.y),intBitsToFloat(R1i.z),intBitsToFloat(PV1i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R4i.y)); +// 5 +R0i.x = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS0i)); +R0i.y = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +R0i.z = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R2i.w = floatBitsToInt(uf_blockVS7[60].y); +R3i.z = floatBitsToInt(uf_blockVS7[60].z); +PS1i = R3i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R9i.y),intBitsToFloat(R1i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 7 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.x) * 0.0 + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = PV0i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) / 2.0); +R2i.z = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +// 8 +R123i.w = floatBitsToInt((intBitsToFloat(R127i.x) * 0.5 + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(PS0i)); +// 10 +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV1i.y))); +// 11 +PV1i.x = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV0i.w)); +// 12 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 13 +R2i.y = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.w; +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +PV0i.y = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(min(intBitsToFloat(backupReg0i), uf_blockVS7[116].x)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[116].x); +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.x = R127i.x; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R23i.y) * intBitsToFloat(PS1i)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R127i.z; +// 3 +R9i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV0i.y)); +R10i.y = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(PV0i.w)); +R8i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[9].z) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +// 4 +PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.w))); +// 5 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.x))); +// 6 +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R10i.y),intBitsToFloat(R8i.z),intBitsToFloat(R1i.w)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.w = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R10i.y),intBitsToFloat(R8i.z),intBitsToFloat(R1i.w)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = tempi.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R10i.y),intBitsToFloat(R8i.z),intBitsToFloat(R1i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R12i.y = tempi.x; +// 3 +R13i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R10i.y),intBitsToFloat(R8i.z),intBitsToFloat(R1i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = R13i.x; +PV1i.y = R13i.x; +PV1i.z = R13i.x; +PV1i.w = R13i.x; +// 4 +backupReg0i = R0i.w; +R10i.x = floatBitsToInt((intBitsToFloat(R12i.y) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.x = R10i.x; +R127i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[68].w)); +PV0i.y = R127i.y; +R127i.z = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +PV0i.w = PV1i.x; +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0); +R126i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[69].w)); +PS0i = R126i.y; +// 5 +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R15i.y = floatBitsToInt((intBitsToFloat(R12i.y) * 0.5 + intBitsToFloat(PV0i.w))); +PV1i.y = R15i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R12i.y) * 0.0 + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(-(uf_blockVS7[69].x) + uf_blockVS7[70].x); +R11i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R11i.y; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(-(uf_blockVS7[69].w) + uf_blockVS7[70].w); +R13i.z = floatBitsToInt((intBitsToFloat(R9i.w) * 0.5 + intBitsToFloat(PV1i.z))); +R12i.w = floatBitsToInt((intBitsToFloat(R9i.z) * -(0.5) + intBitsToFloat(PV1i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +R126i.z = ((intBitsToFloat(R126i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[70].w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.x)) + uf_blockVS7[68].x)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 9 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +R8i.y = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +R125i.z = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R125i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[69].x)); +// 10 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R0i.y = floatBitsToInt(uf_blockVS7[76].x); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(R125i.y))); +R0i.w = floatBitsToInt(uf_blockVS7[76].y); +// 11 +R0i.x = floatBitsToInt(uf_blockVS7[76].z); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.x))); +PV1i.w = ((intBitsToFloat(R7i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 12 +R3i.x = floatBitsToInt(((PV1i.w == 0)?(intBitsToFloat(R6i.x)):(-(intBitsToFloat(R6i.x))))); +R125i.y = floatBitsToInt(-(uf_blockVS7[84].x) + uf_blockVS7[85].x); +PV0i.z = ((intBitsToFloat(R7i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 13 +R1i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[70].x,intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.w))); +R1i.w = floatBitsToInt(((PV0i.z == 0)?(intBitsToFloat(R6i.y)):(-(intBitsToFloat(R6i.y))))); +// 14 +PV0i.w = floatBitsToInt(-(uf_blockVS7[84].w) + uf_blockVS7[85].w); +// 15 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 16 +R2i.z = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS1i)); +} +if( activeMaskStackC[3] == true ) { +// 0 +R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockVS8[0].w)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), uf_blockVS8[0].y)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), uf_blockVS8[0].x)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), uf_blockVS8[0].z)); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), uf_blockVS8[1].x)); +R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), uf_blockVS7[59].x)); +R16i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), uf_blockVS7[59].x)); +R15i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), uf_blockVS7[59].x)); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[1].y)); +// 2 +R11i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), uf_blockVS8[1].z)); +R15i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PS1i))); +PV0i.w = ((intBitsToFloat(R7i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PS0i = ((intBitsToFloat(R7i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 3 +R0i.x = floatBitsToInt(((PV0i.w == 0)?(intBitsToFloat(R6i.x)):(-(intBitsToFloat(R6i.x))))); +R16i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV0i.y))); +R3i.z = floatBitsToInt(((PS0i == 0)?(intBitsToFloat(R6i.y)):(-(intBitsToFloat(R6i.y))))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].w)?1.0:0.0); +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +PV0i.w = floatBitsToInt((uf_blockVS7[8].w > 0.0)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].w); +// 1 +PV1i.x = (PV0i.y == 0x00080000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +R125i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +PV1i.z = R125i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R23i.y) * intBitsToFloat(PS0i)); +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[10].x) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +PV0i.z = (PV1i.y == 0x00100000)?int(0xFFFFFFFF):int(0x0); +R3i.w = ((PV1i.x == 0)?(R6i.x):(R3i.x)); +PS0i = (PS1i == 0x00200000)?int(0xFFFFFFFF):int(0x0); +// 3 +R5i.x = ((PV0i.z == 0)?(R6i.y):(R1i.w)); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.x))); +R0i.z = ((PS0i == 0)?(R6i.x):(R0i.x)); +PV1i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +PS1i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +// 4 +PV0i.x = (PV1i.w == 0x00400000)?int(0xFFFFFFFF):int(0x0); +R126i.y = (PS1i == 0x00800000)?int(0xFFFFFFFF):int(0x0); +PV0i.z = ((intBitsToFloat(R7i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R1i.y = ((PV0i.x == 0)?(R6i.y):(R3i.z)); +R123i.z = floatBitsToInt(((PV0i.z == 0)?(intBitsToFloat(R6i.x)):(-(intBitsToFloat(R6i.x))))); +PV1i.z = R123i.z; +R127i.w = (PS0i == 0x01000000)?int(0xFFFFFFFF):int(0x0); +PS1i = ((intBitsToFloat(R7i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[85].w)); +R123i.y = floatBitsToInt(((PS1i == 0)?(intBitsToFloat(R6i.y)):(-(intBitsToFloat(R6i.y))))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(uf_blockVS7[84].w)); +R5i.w = ((R126i.y == 0)?(R6i.x):(PV1i.z)); +// 7 +R8i.x = ((R127i.w == 0)?(R6i.y):(PV0i.y)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R2i.z)) + uf_blockVS7[84].x)); +R125i.z = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R125i.z; +R127i.w = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(uf_blockVS7[5].y) & int(1); +// 8 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R1i.z = (int(1) != PS1i)?int(0xFFFFFFFF):int(0x0); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000010; +R1i.w = int(uf_blockVS7[17].x); +PS0i = R1i.w; +// 9 +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[84].x, intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.y))); +R0i.x = int(uf_blockVS7[17].y); +PS1i = R0i.x; +// 10 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +PS0i = floatBitsToInt(float(R126i.w)); +// 11 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R6i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[85].x,intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y))); +// 12 +R127i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000020; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +// 13 +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 14 +PV0i.w = 0 - PS1i; +PS0i = floatBitsToInt(float(R127i.x)); +// 15 +R6i.x = max(R126i.y, PV0i.w); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +// 16 +R2i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R13i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.w), uf_blockVS8[1].w)); +// 1 +R127i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000080; +R127i.y = int(-1) + R1i.w; +PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000040; +R126i.y = int(intBitsToFloat(R2i.z)); +PS1i = R126i.y; +// 2 +R124i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x02000000; +PV0i.w = 0 - PS1i; +PS0i = floatBitsToInt(float(PV1i.z)); +// 3 +R1i.x = max(R126i.y, PV0i.w); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.x)); +// 4 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R125i.z = floatBitsToInt(float(R1i.w)); +PS0i = R125i.z; +// 5 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R23i.y), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R13i.y) * intBitsToFloat(PV1i.y)); +PV0i.w = 0 - PS1i; +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 7 +R3i.x = max(R126i.y, PV0i.w); +PV1i.w = 0 - PS0i; +PS1i = int(intBitsToFloat(PV0i.x)); +// 8 +R125i.x = max(R125i.y, PV1i.w); +R127i.z = R6i.x * PS1i; +PS0i = R127i.z; +// 9 +backupReg0i = R0i.x; +PS1i = floatBitsToInt(float(backupReg0i)); +// 10 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 11 +PV1i.w = floatBitsToInt(intBitsToFloat(R23i.y) * intBitsToFloat(PS0i)); +R125i.y = floatBitsToInt(float(R1i.w)); +PS1i = R125i.y; +// 12 +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R124i.x = int(intBitsToFloat(PV1i.w)); +PS0i = R124i.x; +// 13 +PS1i = floatBitsToInt(float(PS0i)); +// 14 +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(float(R124i.x)); +PS0i = R127i.w; +// 15 +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R123i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R123i.w; +R2i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(R125i.y))); +PS1i = R2i.x; +// 16 +PV0i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R127i.w)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.w)); +// 17 +R0i.x = int(1) - PS0i; +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R6i.x = PS0i * R127i.y; +PS1i = R6i.x; +// 18 +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R124i.w)) + intBitsToFloat(R127i.x))); +PV0i.z = R125i.z; +PS0i = floatBitsToInt(float(R124i.y)); +// 19 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(-(abs(intBitsToFloat(R125i.y))) + intBitsToFloat(PV0i.z)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.z) >= abs(intBitsToFloat(R125i.y)))?1.0:0.0); +R125i.w = int(intBitsToFloat(R126i.x)); +PS1i = R125i.w; +// 20 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV1i.w) == 0.0)?(R125i.z):(PV1i.y)); +PV0i.x = R125i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R124i.y = backupReg0i * PS1i; +PS0i = R124i.y; +// 21 +PV1i.z = floatBitsToInt(abs(intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.x)); +R126i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R126i.w; +// 22 +PV0i.x = 0 - PS1i; +R123i.y = ((-(intBitsToFloat(R125i.x)) > 0.0)?(PV1i.z):(R125i.x)); +PV0i.y = R123i.y; +// 23 +PV1i.z = max(R126i.w, PV0i.x); +R123i.w = ((-(intBitsToFloat(R127i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.w = R123i.w; +// 24 +R123i.x = ((intBitsToFloat(R125i.y) == 0.0)?(R127i.w):(PV1i.w)); +PV0i.x = R123i.x; +PS0i = PV1i.z * R125i.w; +// 25 +R125i.z = R124i.x + PS0i; +PS1i = int(intBitsToFloat(PV0i.x)); +// 26 +backupReg0i = R0i.x; +PS0i = backupReg0i * PS1i; +// 27 +PV1i.z = PS0i + R6i.x; +R127i.w = R3i.x * R125i.z; +PS1i = R127i.w; +// 28 +PS0i = R1i.x * PV1i.z; +// 29 +PV1i.y = PS0i + R127i.z; +// 30 +PV0i.w = R127i.w + PV1i.y; +// 31 +PV1i.x = R124i.y + PV0i.w; +// 32 +R125i.z = floatBitsToInt(float(PV1i.x)); +PS0i = R125i.z; +// 33 +R124i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), abs(intBitsToFloat(PS0i)))); +// 34 +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +// 35 +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R124i.w)) + intBitsToFloat(R124i.x))); +PV1i.z = R127i.z; +// 36 +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R125i.y)))?1.0:0.0); +// 37 +R124i.x = ((intBitsToFloat(PV0i.w) == 0.0)?(R127i.z):(PV0i.y)); +PV1i.x = R124i.x; +// 38 +PV0i.z = floatBitsToInt(abs(intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.x)); +// 39 +R123i.y = ((-(intBitsToFloat(R124i.x)) > 0.0)?(PV0i.z):(R124i.x)); +PV1i.y = R123i.y; +// 40 +R123i.w = ((-(intBitsToFloat(R125i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.y)))):(PV1i.y)); +PV0i.w = R123i.w; +// 41 +R123i.x = ((intBitsToFloat(R125i.y) == 0.0)?(R125i.z):(PV0i.w)); +PV1i.x = R123i.x; +// 42 +R125i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R125i.z; +// 43 +R125i.y = floatBitsToInt(float(PS0i)); +PS1i = R125i.y; +// 44 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R6i.w = floatBitsToInt(float(R125i.z)); +PS0i = R6i.w; +// 45 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +R124i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +// 46 +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + intBitsToFloat(R125i.y))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +// 47 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * 0.25); +R3i.z = ((R1i.z == 0)?(R7i.x):(R7i.y)); +R1i.w = floatBitsToInt((-(intBitsToFloat(PV0i.z)) * 4.0 + intBitsToFloat(R124i.y))); +PV1i.w = R1i.w; +// 48 +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0xc0800000)); +R6i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R2i.z = floatBitsToInt((intBitsToFloat(PV1i.w) >= 4.0)?1.0:0.0); +R0i.y = int(uf_blockVS7[26].x); +PS0i = R0i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +R124i.y = ((intBitsToFloat(R2i.z) == 0.0)?(R1i.w):(R2i.x)); +PV0i.y = R124i.y; +PS0i = int(intBitsToFloat(R6i.y)); +// 1 +PV1i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R6i.y = PS0i + 0x00000012; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 4.0); +R0i.w = int(uf_blockVS7[26].y); +PS1i = R0i.w; +// 2 +R123i.x = ((-(intBitsToFloat(R124i.y)) > 0.0)?(PV1i.w):(R124i.y)); +PV0i.x = R123i.x; +R125i.z = floatBitsToInt(float(PV1i.x)); +PS0i = R125i.z; +// 3 +R124i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R123i.z = ((-(intBitsToFloat(R6i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.x)))):(PV0i.x)); +PV1i.z = R123i.z; +// 4 +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(R125i.z))?1.0:0.0); +PS0i = int(intBitsToFloat(PV1i.z)); +// 5 +R125i.x = floatBitsToInt(intBitsToFloat(R124i.y) + -(intBitsToFloat(PV0i.w))); +R124i.y = 0xfffffffe + PS0i; +R125i.z = 0xfffffffd + PS0i; +PV1i.w = int(-1) + PS0i; +PS1i = floatBitsToInt(float(PS0i)); +// 6 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R125i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PS0i = floatBitsToInt(float(PV1i.w)); +// 7 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R124i.y)); +// 8 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +R124i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R124i.w; +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.y = 0 - PS0i; +R124i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R124i.x; +// 10 +PV0i.x = 0 - PS1i; +PV0i.z = max(R124i.w, PV1i.y); +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 11 +R3i.x = int(1) - PV0i.z; +PV1i.y = max(R124i.x, PV0i.x); +PV1i.z = 0 - PS0i; +PS1i = floatBitsToInt(float(R125i.z)); +// 12 +R1i.x = int(1) - PV1i.y; +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.w = max(R127i.z, PV1i.z); +R127i.z = int(intBitsToFloat(R125i.x)); +PS0i = R127i.z; +// 13 +R2i.x = int(1) - PV0i.w; +PV1i.y = 0 - PS0i; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(float(R125i.y)); +// 14 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R1i.w = max(R127i.z, PV1i.y); +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 15 +R0i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.w = 0 - PS0i; +// 16 +PV0i.x = max(R125i.y, PV1i.w); +// 17 +R2i.z = int(1) - PV0i.x; +} +if( activeMaskStackC[3] == true ) { +R6i.xyzw = floatBitsToInt(uf_blockVS7[R6i.y].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R124i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +R124i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +R126i.z = int(-1) + R0i.y; +R125i.y = R2i.z * R6i.w; +PS0i = R125i.y; +// 1 +R124i.w = R2i.x * R6i.z; +PS1i = R124i.w; +// 2 +R125i.x = R1i.x * R6i.y; +PS0i = R125i.x; +// 3 +PS1i = R3i.x * R6i.x; +// 4 +PV0i.y = R125i.x + PS1i; +R127i.z = int(intBitsToFloat(R0i.x)); +PS0i = R127i.z; +// 5 +PV1i.y = 0 - PS0i; +PV1i.w = R124i.w + PV0i.y; +PS1i = floatBitsToInt(float(R124i.x)); +// 6 +R3i.x = R125i.y + PV1i.w; +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R2i.w = max(R127i.z, PV1i.y); +PS0i = floatBitsToInt(float(R124i.y)); +// 7 +backupReg0i = R0i.y; +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R124i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R124i.x = floatBitsToInt(float(backupReg0i)); +PS1i = R124i.x; +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.w))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R23i.y), intBitsToFloat(PS1i))); +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 9 +PV1i.x = 0 - PS0i; +PV1i.y = floatBitsToInt(intBitsToFloat(R13i.y) * intBitsToFloat(PV0i.z)); +R125i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R125i.z; +// 10 +PV0i.y = 0 - PS1i; +R6i.w = max(R127i.z, PV1i.x); +PS0i = int(intBitsToFloat(PV1i.y)); +// 11 +R127i.w = max(R125i.z, PV0i.y); +R126i.x = R1i.w * PS0i; +PS1i = R126i.x; +// 12 +PS0i = floatBitsToInt(float(R0i.w)); +// 13 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 14 +backupReg0i = R0i.y; +PV0i.y = floatBitsToInt(intBitsToFloat(R23i.y) * intBitsToFloat(PS1i)); +R125i.z = floatBitsToInt(float(backupReg0i)); +PS0i = R125i.z; +// 15 +R126i.y = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R125i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R125i.w; +// 16 +PS0i = floatBitsToInt(float(PS1i)); +// 17 +PV1i.z = floatBitsToInt(-(intBitsToFloat(R124i.x)) + intBitsToFloat(PS0i)); +R124i.y = floatBitsToInt(float(R125i.w)); +PS1i = R124i.y; +// 18 +R123i.y = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = R123i.y; +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R0i.w = floatBitsToInt(1.0 / abs(intBitsToFloat(R125i.z))); +PS0i = R0i.w; +// 19 +PV1i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R124i.y)), intBitsToFloat(PS0i))); +PS1i = int(intBitsToFloat(PV0i.y)); +// 20 +R125i.x = int(1) - PS1i; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R126i.w = PS1i * R126i.z; +PS0i = R126i.w; +// 21 +R124i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(R124i.w))); +PV1i.x = R124i.x; +PS1i = floatBitsToInt(float(R124i.z)); +// 22 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.x) >= abs(intBitsToFloat(R125i.z)))?1.0:0.0); +PV0i.z = floatBitsToInt(-(abs(intBitsToFloat(R125i.z))) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R127i.y = int(intBitsToFloat(R125i.y)); +PS0i = R127i.y; +// 23 +backupReg0i = R127i.w; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + -(intBitsToFloat(PV0i.x))); +R127i.w = ((intBitsToFloat(PV0i.y) == 0.0)?(R124i.x):(PV0i.z)); +PV1i.w = R127i.w; +R124i.z = backupReg0i * PS0i; +PS1i = R124i.z; +// 24 +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.w)); +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 25 +R123i.z = ((-(intBitsToFloat(R127i.w)) > 0.0)?(PV0i.x):(R127i.w)); +PV1i.z = R123i.z; +PV1i.w = 0 - PS0i; +// 26 +PV0i.x = max(R125i.y, PV1i.w); +R123i.y = ((-(intBitsToFloat(R124i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +// 27 +R123i.w = ((intBitsToFloat(R125i.z) == 0.0)?(R124i.y):(PV0i.y)); +PV1i.w = R123i.w; +PS1i = PV0i.x * R127i.y; +// 28 +R124i.x = R125i.w + PS1i; +PS0i = int(intBitsToFloat(PV1i.w)); +// 29 +PS1i = R125i.x * PS0i; +// 30 +PV0i.x = PS1i + R126i.w; +R127i.y = R6i.w * R124i.x; +PS0i = R127i.y; +// 31 +PS1i = R2i.w * PV0i.x; +// 32 +PV0i.z = PS1i + R126i.x; +// 33 +PV1i.y = R127i.y + PV0i.z; +// 34 +PV0i.w = R124i.z + PV1i.y; +// 35 +R124i.x = floatBitsToInt(float(PV0i.w)); +PS1i = R124i.x; +// 36 +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), abs(intBitsToFloat(PS1i)))); +R126i.w = floatBitsToInt(abs(intBitsToFloat(PS1i))); +// 37 +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +// 38 +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R126i.y)) + intBitsToFloat(R126i.w))); +PV0i.x = R126i.x; +// 39 +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.x) >= abs(intBitsToFloat(R125i.z)))?1.0:0.0); +PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R125i.z))) + intBitsToFloat(PV0i.x)); +// 40 +R126i.w = ((intBitsToFloat(PV1i.y) == 0.0)?(R126i.x):(PV1i.z)); +PV0i.w = R126i.w; +// 41 +PV1i.x = floatBitsToInt(abs(intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.w)); +// 42 +R123i.z = ((-(intBitsToFloat(R126i.w)) > 0.0)?(PV1i.x):(R126i.w)); +PV0i.z = R123i.z; +// 43 +R123i.y = ((-(intBitsToFloat(R124i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +PV1i.y = R123i.y; +// 44 +R123i.w = ((intBitsToFloat(R125i.z) == 0.0)?(R124i.x):(PV1i.y)); +PV0i.w = R123i.w; +// 45 +R124i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R124i.x; +// 46 +R3i.z = floatBitsToInt(float(PS1i)); +PS0i = R3i.z; +// 47 +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R0i.y = floatBitsToInt(float(R124i.x)); +PS1i = R0i.y; +// 48 +R0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.w))); +R6i.z = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R0i.w = floatBitsToInt(abs(intBitsToFloat(PS1i)) * 0.25); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(R0i.w))); +R123i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 0.5 + intBitsToFloat(R3i.z))); +PV0i.z = R123i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) * 0.25); +R126i.y = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * 4.0 + intBitsToFloat(R6i.z))); +PV1i.y = R126i.y; +// 2 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.y) >= 4.0)?1.0:0.0); +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xc0800000)); +// 3 +R125i.z = ((intBitsToFloat(PV0i.x) == 0.0)?(R126i.y):(PV0i.w)); +PV1i.z = R125i.z; +PS1i = int(intBitsToFloat(PV0i.y)); +// 4 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + 4.0); +R6i.z = PS1i + 0x0000001b; +PS0i = int(uf_blockVS7[48].z); +// 5 +R123i.w = ((-(intBitsToFloat(R125i.z)) > 0.0)?(PV0i.y):(R125i.z)); +PV1i.w = R123i.w; +R2i.z = floatBitsToInt(float(PS0i)); +PS1i = R2i.z; +// 6 +R123i.x = ((-(intBitsToFloat(R0i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.w)))):(PV1i.w)); +PV0i.x = R123i.x; +R0i.y = floatBitsToInt(float(R3i.x)); +PS0i = R0i.y; +// 7 +PS1i = int(intBitsToFloat(PV0i.x)); +// 8 +R124i.x = 0xfffffffd + PS1i; +PV0i.y = int(-1) + PS1i; +R125i.z = floatBitsToInt(abs(intBitsToFloat(R2i.z))); +R126i.w = 0xfffffffe + PS1i; +PS0i = floatBitsToInt(float(PS1i)); +// 9 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.y)); +// 10 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(float(R126i.w)); +// 11 +PV1i.x = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R126i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R126i.y; +// 12 +PV0i.x = 0 - PS1i; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.x))); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 13 +PV1i.x = max(R126i.y, PV0i.x); +PV1i.y = 0 - PS0i; +R126i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R126i.x; +// 14 +R1i.x = int(1) - PV1i.x; +PV0i.y = 0 - PS1i; +PV0i.z = max(R126i.w, PV1i.y); +PS0i = floatBitsToInt(float(R124i.x)); +// 15 +R6i.x = int(1) - PV0i.z; +PV1i.y = max(R126i.x, PV0i.y); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R2i.w = floatBitsToInt(float(R3i.x)); +PS1i = R2i.w; +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R126i.y = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R0i.w = int(1) - PV1i.y; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R2i.z))); +// 17 +PV1i.z = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R2i.w)), intBitsToFloat(PS0i))); +R124i.z = int(intBitsToFloat(PV0i.x)); +PS1i = R124i.z; +// 18 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +PV0i.y = 0 - PS1i; +// 19 +backupReg0i = R125i.z; +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R126i.y))); +PV1i.z = R125i.z; +PV1i.w = max(R124i.z, PV0i.y); +// 20 +R3i.x = int(1) - PV1i.w; +PV0i.y = floatBitsToInt(-(abs(intBitsToFloat(R2i.z))) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt((intBitsToFloat(PV1i.z) >= abs(intBitsToFloat(R2i.z)))?1.0:0.0); +// 21 +R0i.x = ((intBitsToFloat(PV0i.w) == 0.0)?(R125i.z):(PV0i.y)); +PV1i.x = R0i.x; +// 22 +R3i.z = floatBitsToInt(abs(intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x)); +} +if( activeMaskStackC[3] == true ) { +R4i.xyzw = floatBitsToInt(uf_blockVS7[R6i.z].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt((intBitsToFloat(R0i.y) > 0.0)?1.0:0.0); +R123i.y = ((-(intBitsToFloat(backupReg0i)) > 0.0)?(R3i.z):(backupReg0i)); +PV0i.y = R123i.y; +R125i.z = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +PV0i.w = floatBitsToInt((0.0 > intBitsToFloat(R0i.y))?1.0:0.0); +R126i.z = R3i.x * R4i.w; +PS0i = R126i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[45].x)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), uf_blockVS7[45].y)); +R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0); +R123i.w = ((-(intBitsToFloat(R2i.w)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.y)))):(PV0i.y)); +PV1i.w = R123i.w; +R127i.y = R0i.w * R4i.z; +PS1i = R127i.y; +// 2 +R126i.x = ((intBitsToFloat(R2i.z) == 0.0)?(R2i.w):(PV1i.w)); +R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(R125i.z)); +R125i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * 0.5 + intBitsToFloat(R0i.y))); +PV0i.w = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R126i.w = R6i.x * R4i.y; +PS0i = R126i.w; +// 3 +PV1i.x = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV1i.y = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +R127i.z = floatBitsToInt(intBitsToFloat(R3i.w) + 0.5); +R125i.w = floatBitsToInt(-(intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.w)); +PS1i = R1i.x * R4i.x; +// 4 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[46].z) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R23i.y)),uf_blockVS7[44].x) + -(intBitsToFloat(backupReg0i)))); +PV0i.z = R126i.w + PS1i; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockVS7[46].w) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +R124i.z = int(intBitsToFloat(R126i.x)); +PS0i = R124i.z; +// 5 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[44].y) + intBitsToFloat(R125i.w))); +PV1i.y = R127i.y + PV0i.z; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[45].z) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[45].w) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R2i.z)); +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i)); +R124i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R2i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R127i.w = R126i.z + PV1i.y; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].z); +// 7 +PV1i.x = floatBitsToInt(trunc(intBitsToFloat(PV0i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(R5i.x) + -(0.5)); +R123i.z = ((R1i.z == 0)?(0):(int(1))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 8 +PV0i.x = (PV1i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS1i))); +R125i.w = (PV1i.z == int(1))?int(0xFFFFFFFF):int(0x0); +PV0i.w = R125i.w; +R126i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R126i.z; +// 9 +R124i.x = ((PV0i.w == 0)?(R7i.x):(R7i.y)); +R123i.y = ((PV0i.x == 0)?(R7i.y):(R7i.x)); +PV1i.y = R123i.y; +R123i.z = ((PV0i.x == 0)?(R7i.x):(R7i.z)); +PV1i.z = R123i.z; +R124i.w = ((PV0i.w == 0)?(R7i.y):(R7i.z)); +PS1i = floatBitsToInt(float(R124i.z)); +// 10 +backupReg0i = R126i.z; +R123i.x = ((R125i.w == 0)?(PV1i.y):(R7i.z)); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PS1i)) + intBitsToFloat(R126i.y))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +R123i.w = ((R125i.w == 0)?(PV1i.z):(R7i.y)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(backupReg0i)); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(PV0i.w))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) * 2.0); +PS1i = int(uf_blockVS7[53].z); +// 12 +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.z)); +PV0i.y = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(R127i.y)) + -(intBitsToFloat(PV1i.z)))); +PV0i.z = R123i.z; +R10i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R124i.y)) + intBitsToFloat(PV1i.y))); +R1i.x = floatBitsToInt(float(PS1i)); +PS0i = R1i.x; +// 13 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.z))); +R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.y)); +R125i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R126i.z = floatBitsToInt(float(R127i.w)); +PS1i = R126i.z; +// 14 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +R4i.y = floatBitsToInt(float(R127i.w)); +PS0i = R4i.y; +// 15 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R124i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.w))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R23i.y)),uf_blockVS7[49].x) + -(intBitsToFloat(backupReg0i)))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.y))); +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(R1i.x))); +// 16 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * 0.5 + intBitsToFloat(R126i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R4i.y)), intBitsToFloat(PS1i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[50].z) + intBitsToFloat(R124i.x))); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[49].y) + intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R1i.x)); +// 17 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[50].w) + intBitsToFloat(R124i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +R3i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 18 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.z)),intBitsToFloat(R125i.z)) + intBitsToFloat(backupReg0i))); +PV0i.x = R126i.x; +R6i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS1i))); +R4i.z = floatBitsToInt(intBitsToFloat(R0i.z) + 0.5); +PV0i.w = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 19 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt((intBitsToFloat(PV0i.x) >= abs(intBitsToFloat(R1i.x)))?1.0:0.0); +PV1i.z = floatBitsToInt(-(abs(intBitsToFloat(R1i.x))) + intBitsToFloat(PV0i.x)); +R126i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0); +PS1i = int(intBitsToFloat(PV0i.w)); +// 20 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(intBitsToFloat(R1i.y) + -(0.5)); +R123i.z = ((R1i.z == 0)?(0):(0x00000002)); +PV0i.z = R123i.z; +R127i.w = ((intBitsToFloat(PV1i.y) == 0.0)?(backupReg0i):(PV1i.z)); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(float(PS1i)); +// 21 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(PS0i)) + intBitsToFloat(R124i.w))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(abs(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.w)); +R125i.z = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0); +PV1i.z = R125i.z; +PV1i.w = (PV0i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +R0i.y = int(uf_blockVS7[58].z); +PS1i = R0i.y; +// 22 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R126i.x)) + -(intBitsToFloat(PV1i.x)))); +PV0i.x = R123i.x; +R123i.y = ((PV1i.w == 0)?(R7i.x):(R7i.z)); +PV0i.y = R123i.y; +R123i.z = ((-(intBitsToFloat(R127i.w)) > 0.0)?(PV1i.y):(R127i.w)); +PV0i.z = R123i.z; +R123i.w = ((PV1i.w == 0)?(R7i.y):(R7i.x)); +PV0i.w = R123i.w; +R5i.x = ((PV1i.z == 0)?(R7i.x):(R7i.y)); +PS0i = R5i.x; +// 23 +backupReg0i = R7i.z; +backupReg0i = R7i.z; +R7i.x = ((-(intBitsToFloat(R4i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.z)))):(PV0i.z)); +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.x))); +R7i.z = ((R125i.z == 0)?(PV0i.y):(R7i.y)); +R7i.w = ((R125i.z == 0)?(PV0i.w):(backupReg0i)); +R1i.z = ((R125i.z == 0)?(R7i.y):(backupReg0i)); +PS1i = R1i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +R123i.w = ((intBitsToFloat(R1i.x) == 0.0)?(R4i.y):(R7i.x)); +PV0i.w = R123i.w; +R126i.w = floatBitsToInt(float(R0i.y)); +PS0i = R126i.w; +// 1 +PV1i.x = floatBitsToInt(-(abs(intBitsToFloat(PS0i))) + 0.0); +PV1i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS0i)))?1.0:0.0); +PS1i = int(intBitsToFloat(PV0i.w)); +// 2 +PV0i.x = floatBitsToInt(uf_blockVS7[54].z + uf_blockVS7[55].x); +R124i.y = ((intBitsToFloat(PV1i.z) == 0.0)?(0):(PV1i.x)); +PV0i.y = R124i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].y, intBitsToFloat(R7i.w))); +R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) * 2.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[55].x, intBitsToFloat(R7i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); +PS0i = floatBitsToInt(float(PS1i)); +// 3 +R126i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.x)); +PV1i.y = floatBitsToInt(uf_blockVS7[54].w + uf_blockVS7[55].y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R2i.z))); +PV1i.z = R123i.z; +PV1i.w = floatBitsToInt(abs(intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 4 +R123i.x = ((-(intBitsToFloat(R124i.y)) > 0.0)?(PV1i.w):(R124i.y)); +PV0i.x = R123i.x; +R124i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * 0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 5 +R123i.x = ((intBitsToFloat(R126i.w) == 0.0)?(0):(PV0i.x)); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.w))); +R10i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(R3i.w)) + intBitsToFloat(PV0i.z))); +R126i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].x, intBitsToFloat(PS0i))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 6 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R23i.y)),uf_blockVS7[54].x) + -(intBitsToFloat(backupReg0i)))); +R126i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[58].y, intBitsToFloat(PS1i))); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[54].y) + intBitsToFloat(R124i.y))); +R127i.w = floatBitsToInt(intBitsToFloat(R5i.w) + 0.5); +R124i.y = int(intBitsToFloat(PV1i.x)); +PS0i = R124i.y; +// 7 +backupReg0i = R127i.y; +R124i.x = floatBitsToInt(intBitsToFloat(R8i.x) + -(0.5)); +R4i.y = floatBitsToInt(intBitsToFloat(R11i.z) + 0.0); +PV1i.z = floatBitsToInt(uf_blockVS7[56].x + uf_blockVS7[56].z); +PV1i.w = floatBitsToInt(uf_blockVS7[56].y + uf_blockVS7[56].w); +R127i.y = int(intBitsToFloat(backupReg0i)); +PS1i = R127i.y; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].w,intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[56].z,intBitsToFloat(R5i.x)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(intBitsToFloat(R2i.y) + -(uf_blockVS7[93].x)); +R124i.w = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +PS0i = floatBitsToInt(float(R124i.y)); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[55].z) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),uf_blockVS7[55].w) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[104].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(float(R127i.y)); +// 10 +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.w)); +// 11 +R16i.x = R11i.z; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.y)),intBitsToFloat(R124i.x)) + -(intBitsToFloat(PV0i.y)))); +PV1i.y = R123i.y; +R12i.z = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +R12i.z = clampFI32(R12i.z); +R11i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.w)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +PS1i = R127i.w; +// 12 +R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.y))); +R126i.z = floatBitsToInt(-(uf_blockVS7[104].y) + uf_blockVS7[105].y); +// 13 +PV1i.x = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R126i.y = floatBitsToInt(-(uf_blockVS7[104].z) + uf_blockVS7[105].z); +R124i.z = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[105].w)); +// 14 +R125i.z = floatBitsToInt(-(uf_blockVS7[105].y) + uf_blockVS7[106].y); +R126i.w = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +R127i.w = floatBitsToInt(-(uf_blockVS7[105].z) + uf_blockVS7[106].z); +PS1i = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +// 16 +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.x)) + uf_blockVS7[104].z)); +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.y)) + uf_blockVS7[104].y)); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[104].x)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +PV1i.y = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(PS0i)); +R126i.w = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[106].w)); +R126i.y = floatBitsToInt(-(uf_blockVS7[106].z) + uf_blockVS7[107].z); +PS1i = R126i.y; +// 18 +R7i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV1i.x)) + uf_blockVS7[105].z)); +R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV1i.y)) + uf_blockVS7[105].y)); +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV1i.z)) + uf_blockVS7[105].x)); +// 19 +R125i.z = floatBitsToInt(-(uf_blockVS7[106].y) + uf_blockVS7[107].y); +R127i.w = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +// 20 +PV0i.x = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R127i.y = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[107].w)); +R4i.z = ((intBitsToFloat(R127i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +// 21 +R125i.x = ((intBitsToFloat(R124i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R124i.z = floatBitsToInt(-(uf_blockVS7[107].y) + uf_blockVS7[108].y); +R124i.w = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 22 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(-(uf_blockVS7[107].z) + uf_blockVS7[108].z); +PS0i = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +// 23 +R124i.x = ((intBitsToFloat(R126i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.x)) + uf_blockVS7[106].z)); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.y)) + uf_blockVS7[106].y)); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.z)) + uf_blockVS7[106].x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 24 +PV0i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R124i.z) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS1i)); +R7i.w = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[108].w)); +PV0i.w = R7i.w; +R2i.y = floatBitsToInt(-(uf_blockVS7[108].z) + uf_blockVS7[109].z); +PS0i = R2i.y; +// 25 +R126i.x = ((intBitsToFloat(R127i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R126i.x; +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.x)) + uf_blockVS7[107].z)); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[107].y)); +R8i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.z)) + uf_blockVS7[107].x)); +R8i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R8i.x; +// 26 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +R1i.z = floatBitsToInt(-(uf_blockVS7[108].y) + uf_blockVS7[109].y); +R5i.w = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +PS0i = floatBitsToInt(-(intBitsToFloat(R124i.x)) + 1.0); +// 27 +PV1i.x = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +R6i.y = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[109].w)); +PV1i.y = R6i.y; +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.x))); +R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PS0i))); +PS1i = R1i.x; +// 28 +R5i.x = ((intBitsToFloat(PV1i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R0i.y = floatBitsToInt(-(intBitsToFloat(R125i.x)) + 1.0); +R0i.z = floatBitsToInt(-(uf_blockVS7[109].y) + uf_blockVS7[110].y); +R4i.w = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +R3i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +PS0i = R3i.w; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(R3i.w)); +PV0i.y = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(R3i.w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R5i.w) * intBitsToFloat(R3i.w)); +R127i.w = floatBitsToInt(-(uf_blockVS7[109].z) + uf_blockVS7[110].z); +PS0i = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(R5i.x)) + 1.0); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV0i.x)) + uf_blockVS7[108].z)); +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV0i.y)) + uf_blockVS7[108].y)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV0i.z)) + uf_blockVS7[108].x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.z) * intBitsToFloat(PS1i)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS1i)); +R126i.x = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[110].w)); +PS0i = R126i.x; +// 3 +R124i.x = ((intBitsToFloat(PS0i) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R124i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(PV0i.w)) + uf_blockVS7[109].z)); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(PV0i.y)) + uf_blockVS7[109].y)); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(PV0i.x)) + uf_blockVS7[109].x)); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R0i.y))); +PS1i = R124i.z; +// 4 +R125i.x = floatBitsToInt(-(intBitsToFloat(R4i.z)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R125i.z = floatBitsToInt(-(uf_blockVS7[110].y) + uf_blockVS7[111].y); +R127i.w = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +// 5 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PV0i.y))); +R127i.y = floatBitsToInt(-(uf_blockVS7[110].z) + uf_blockVS7[111].z); +PV1i.z = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +PV1i.w = floatBitsToInt(intBitsToFloat(R4i.y) + -(uf_blockVS7[111].w)); +// 6 +backupReg0i = R125i.x; +backupReg0i = R125i.x; +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(backupReg0i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].z, intBitsToFloat(backupReg0i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].y, intBitsToFloat(backupReg0i))); +R124i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +PS0i = R124i.w; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +R126i.y = floatBitsToInt(intBitsToFloat(R125i.z) * intBitsToFloat(PS0i)); +PS1i = R126i.y; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(R124i.w)); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.z)) + uf_blockVS7[110].x)); +PS0i = R124i.w; +// 9 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.y)) + uf_blockVS7[110].y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.w)) + uf_blockVS7[110].z)); +PS1i = R126i.y; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.x)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R0i.w = 0; +PS0i = R0i.w; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PV0i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R126i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockVS13[24].x) + -(uf_blockVS13[24].y))); +R122i.x = clampFI32(R122i.x); +PS1i = R122i.x; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 13 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV0i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.x = floatBitsToInt(tempResultf); +PS1i = R126i.x; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].z,intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].y,intBitsToFloat(R125i.x)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.y = floatBitsToInt(tempResultf); +PS0i = R126i.y; +// 15 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS0i))); +R6i.y = PV0i.x; +R1i.z = PV0i.y; +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS13[24].w, intBitsToFloat(backupReg0i))); +R0i.y = PV0i.w; +PS1i = R0i.y; +// 16 +R125i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(R126i.y))); +PV0i.y = floatBitsToInt(uf_blockVS13[28].y + 1.0); +R124i.w = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R8i.y))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * 1.5); +PV1i.x = clampFI32(PV1i.x); +R8i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),uf_blockVS13[25].w) + uf_blockVS13[25].w)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R126i.x))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 18 +R8i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x41700000)); +PS0i = floatBitsToInt(exp2(intBitsToFloat(R125i.x))); +// 19 +R123i.z = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(PS0i)) + uf_blockVS13[23].z)); +R123i.z = clampFI32(R123i.z); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 20 +PV0i.x = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(PS1i)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + -0.0); +PV0i.z = clampFI32(PV0i.z); +// 21 +R6i.x = PV0i.z; +R5i.y = PV0i.z; +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.x), intBitsToFloat(0x3e4ccccd))); +// 22 +R0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +// 1 +R125i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R9i.x))); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.z)); +R127i.z = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R10i.y))); +R124i.w = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R8i.z))); +PV1i.w = R124i.w; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV1i.y)) + uf_blockVS13[27].x)); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PV1i.w)); +// 3 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(R127i.z) + intBitsToFloat(PS0i))); +PV1i.x = R123i.x; +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockVS13[26].w)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(R11i.y)); +R123i.y = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +// 5 +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +// 8 +R125i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.x = R125i.x; +R11i.y = 0; +R6i.z = ((0.0 >= intBitsToFloat(R12i.z))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x41080000)); +R3i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +PS0i = R3i.z; +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.x = R123i.x; +R7i.y = 0; +PV1i.y = R7i.y; +R11i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3daaaaab)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R5i.w = 0; +PS1i = R5i.w; +// 10 +R17i.x = 0; +R1i.y = ((R6i.z == 0)?(R9i.z):(PS1i)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(0xbe593484))); +PV0i.z = R123i.z; +R16i.w = ((R6i.z == 0)?(R9i.w):(PV1i.y)); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w))); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV0i.z)) + intBitsToFloat(0x3fc90da4))); +PV1i.y = R123i.y; +R7i.z = ((R6i.z == 0)?(R12i.y):(R3i.z)); +R3i.w = ((R6i.z == 0)?(R6i.y):(R6i.y)); +R0i.x = R15i.x; +PS1i = R0i.x; +// 12 +R8i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.y))) + 1.0)); +R2i.y = R18i.y; +R2i.z = R17i.z; +R17i.w = ((R6i.z == 0)?(R13i.x):(R13i.x)); +R3i.y = ((R6i.z == 0)?(R20i.z):(R20i.z)); +PS0i = R3i.y; +} +if( activeMaskStackC[3] == true ) { +R8i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R8i.xy)).xyz); +R14i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R11i.zy)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.z; +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(R0i.z))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R0i.z))); +PV0i.y = R11i.y; +R0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].w, uf_blockVS14[0].z)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(backupReg0i))); +R8i.x = ((R6i.z == 0)?(0):(R8i.w)); +PS0i = R8i.x; +// 1 +R1i.x = ((R6i.z == 0)?(0):(R0i.w)); +R8i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].w, uf_blockVS14[0].w)); +R8i.z = ((R6i.z == 0)?(0):(R5i.y)); +R6i.w = ((R6i.z == 0)?(0):(R1i.w)); +R9i.x = ((R6i.z == 0)?(0):(PV0i.y)); +PS1i = R9i.x; +// 2 +R3i.x = ((R6i.z == 0)?(0):(R14i.y)); +R12i.y = ((R6i.z == 0)?(0):(R6i.x)); +R11i.z = ((R6i.z == 0)?(0):(R4i.w)); +R2i.w = ((R6i.z == 0)?(0):(R5i.x)); +R9i.z = ((R6i.z == 0)?(0):(R14i.z)); +PS0i = R9i.z; +// 3 +backupReg0i = R0i.x; +R0i.x = ((R6i.z == 0)?(0):(R14i.x)); +R9i.y = ((R6i.z == 0)?(0):(R14i.w)); +R5i.z = ((R6i.z == 0)?(0):(backupReg0i)); +R7i.w = ((R6i.z == 0)?(0):(R2i.y)); +R4i.y = ((R6i.z == 0)?(0):(R0i.w)); +PS1i = R4i.y; +// 4 +backupReg0i = R2i.z; +R2i.x = ((R6i.z == 0)?(0):(R0i.y)); +R10i.y = ((R6i.z == 0)?(0):(R16i.x)); +R2i.z = ((R6i.z == 0)?(0):(backupReg0i)); +// 5 +backupReg0i = R4i.z; +R4i.z = ((R6i.z == 0)?(0):(backupReg0i)); +R9i.w = floatBitsToInt(uf_blockVS11[3].w); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[44].y, intBitsToFloat(R8i.y))); +R125i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[49].y,intBitsToFloat(R0i.z)) + intBitsToFloat(R10i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[44].y,intBitsToFloat(R0i.z)) + intBitsToFloat(R10i.w))); +PV0i.z = R127i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[49].y, intBitsToFloat(R8i.y))); +// 1 +backupReg0i = R0i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(R13i.y))); +R126i.y = ((R6i.z == 0)?(0):(PV0i.z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[54].y, intBitsToFloat(R8i.y))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R9i.w)) + intBitsToFloat(R4i.x))); +PV1i.w = R124i.w; +R4i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[54].y,intBitsToFloat(backupReg0i)) + intBitsToFloat(R11i.w))); +PS1i = R4i.x; +// 2 +backupReg0i = R7i.x; +R7i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS8[3].x,intBitsToFloat(R12i.z)) + 0.0)); +PV0i.x = R7i.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i))); +PV0i.y = R2i.y; +R126i.z = ((R6i.z == 0)?(0):(PS1i)); +R125i.w = ((R6i.z == 0)?(0):(PV1i.w)); +R126i.w = ((R6i.z == 0)?(0):(R125i.y)); +PS0i = R126i.w; +// 3 +R126i.x = ((R6i.z == 0)?(0):(PV0i.y)); +R127i.y = ((R6i.z == 0)?(0):(R1i.z)); +R125i.z = ((R6i.z == 0)?(0):(R127i.x)); +R127i.w = ((R6i.z == 0)?(PV0i.x):(R17i.x)); +R124i.z = ((R6i.z == 0)?(0):(R16i.w)); +PS1i = R124i.z; +// 4 +R124i.x = ((R6i.z == 0)?(R20i.y):(R6i.y)); +R124i.y = ((R6i.z == 0)?(R20i.x):(R17i.x)); +R12i.z = ((R6i.z == 0)?(0):(0x3f800000)); +PV0i.z = R12i.z; +R9i.w = ((R6i.z == 0)?(R20i.z):(R20i.z)); +R7i.x = ((R6i.z == 0)?(0):(R12i.w)); +PS0i = R7i.x; +// 5 +R21i.x = ((PV0i.z == 0)?(R8i.w):(R8i.x)); +R21i.y = ((PV0i.z == 0)?(R1i.w):(R6i.w)); +R21i.z = ((PV0i.z == 0)?(R5i.y):(R8i.z)); +R1i.w = ((R6i.z == 0)?(0):(R13i.z)); +R22i.x = ((PV0i.z == 0)?(R11i.y):(R9i.x)); +PS1i = R22i.x; +// 6 +R125i.x = R18i.y; +R22i.y = ((R12i.z == 0)?(R5i.x):(R2i.w)); +R22i.z = ((R12i.z == 0)?(R4i.w):(R11i.z)); +R21i.w = ((R12i.z == 0)?(R0i.w):(R1i.x)); +R22i.w = ((R12i.z == 0)?(R6i.x):(R12i.y)); +PS0i = R22i.w; +// 7 +R18i.x = ((R12i.z == 0)?(R14i.x):(R0i.x)); +R18i.y = ((R12i.z == 0)?(R14i.y):(R3i.x)); +R24i.x = ((R12i.z == 0)?(R127i.z):(R126i.y)); +PS1i = R24i.x; +// 8 +R25i.x = ((R12i.z == 0)?(R16i.x):(R10i.y)); +PV0i.y = R15i.x; +R18i.z = ((R12i.z == 0)?(R14i.z):(R9i.z)); +R18i.w = ((R12i.z == 0)?(R14i.w):(R9i.y)); +R24i.y = ((R12i.z == 0)?(R124i.w):(R125i.w)); +PS0i = R24i.y; +// 9 +R9i.x = ((R12i.z == 0)?(PV0i.y):(R5i.z)); +R9i.y = ((R12i.z == 0)?(R125i.x):(R7i.w)); +R24i.z = ((R12i.z == 0)?(R125i.y):(R126i.w)); +R0i.x = ((R12i.z == 0)?(R4i.x):(R126i.z)); +PS1i = R0i.x; +// 10 +backupReg0i = R0i.y; +R20i.x = ((R12i.z == 0)?(R127i.w):(R124i.y)); +R0i.y = ((R12i.z == 0)?(R2i.y):(R126i.x)); +R24i.w = ((R12i.z == 0)?(R127i.x):(R125i.z)); +R25i.y = ((R12i.z == 0)?(backupReg0i):(R2i.x)); +PS0i = R25i.y; +// 11 +R14i.x = ((R12i.z == 0)?(R13i.z):(R1i.w)); +R20i.y = ((R12i.z == 0)?(R3i.w):(R124i.x)); +R25i.z = ((R12i.z == 0)?(R1i.z):(R127i.y)); +R20i.z = ((R12i.z == 0)?(R3i.y):(R9i.w)); +PS1i = R20i.z; +// 12 +R124i.x = ((R6i.z == 0)?(0):(R13i.w)); +R14i.y = ((R12i.z == 0)?(R12i.w):(R7i.x)); +R123i.z = ((R6i.z == 0)?(0):(R10i.x)); +PV0i.z = R123i.z; +R123i.w = ((R6i.z == 0)?(0):(R15i.y)); +PV0i.w = R123i.w; +R127i.w = ((R6i.z == 0)?(0):(R16i.y)); +PS0i = R127i.w; +// 13 +R123i.x = ((R6i.z == 0)?(0):(R15i.z)); +PV1i.x = R123i.x; +R123i.y = ((R6i.z == 0)?(0):(R11i.x)); +PV1i.y = R123i.y; +R14i.z = ((R12i.z == 0)?(R15i.y):(PV0i.w)); +R14i.w = ((R12i.z == 0)?(R10i.x):(PV0i.z)); +R127i.x = ((R6i.z == 0)?(0):(R17i.y)); +PS1i = R127i.x; +// 14 +R10i.x = ((R12i.z == 0)?(R11i.x):(PV1i.y)); +R10i.y = ((R12i.z == 0)?(R15i.z):(PV1i.x)); +R10i.z = ((R12i.z == 0)?(R16i.y):(R127i.w)); +R10i.w = ((R12i.z == 0)?(R13i.w):(R124i.x)); +R125i.z = ((R6i.z == 0)?(0):(R12i.x)); +PS0i = R125i.z; +// 15 +R123i.x = ((R6i.z == 0)?(R19i.x):(R7i.y)); +PV1i.x = R123i.x; +R123i.y = ((R6i.z == 0)?(0):(R16i.z)); +PV1i.y = R123i.y; +R126i.z = ((R6i.z == 0)?(R19i.y):(R5i.w)); +R123i.w = ((R6i.z == 0)?(0):(R15i.w)); +PV1i.w = R123i.w; +// 16 +R11i.x = ((R12i.z == 0)?(R16i.z):(PV1i.y)); +R11i.y = ((R12i.z == 0)?(R17i.y):(R127i.x)); +R11i.z = ((R12i.z == 0)?(R15i.w):(PV1i.w)); +R11i.w = ((R12i.z == 0)?(R12i.x):(R125i.z)); +R19i.x = ((R12i.z == 0)?(R16i.w):(PV1i.x)); +PS0i = R19i.x; +// 17 +R19i.y = ((R12i.z == 0)?(R1i.y):(R126i.z)); +R126i.z = ((R6i.z == 0)?(R19i.w):(R13i.x)); +// 18 +R123i.w = ((R6i.z == 0)?(R19i.z):(R3i.z)); +PV0i.w = R123i.w; +// 19 +R19i.z = ((R12i.z == 0)?(R7i.z):(PV0i.w)); +R19i.w = ((R12i.z == 0)?(R17i.w):(R126i.z)); +// 20 +PV0i.w = R17i.z; +R25i.w = ((R12i.z == 0)?(R16i.w):(R124i.z)); +PS0i = R25i.w; +// 21 +R9i.z = ((R12i.z == 0)?(PV0i.w):(R2i.z)); +R9i.w = ((R12i.z == 0)?(R4i.y):(R4i.y)); +// 22 +R0i.z = ((R12i.z == 0)?(R4i.z):(R4i.z)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +gl_Position = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem0 = vec4(intBitsToFloat(R11i.x), intBitsToFloat(R11i.y), intBitsToFloat(R11i.z), intBitsToFloat(R11i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R14i.x), intBitsToFloat(R14i.y), intBitsToFloat(R14i.z), intBitsToFloat(R14i.w)); +// export +passParameterSem5 = vec4(intBitsToFloat(R25i.x), intBitsToFloat(R25i.y), intBitsToFloat(R25i.z), intBitsToFloat(R25i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R24i.x), intBitsToFloat(R24i.y), intBitsToFloat(R24i.z), intBitsToFloat(R24i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R9i.x), intBitsToFloat(R9i.y), intBitsToFloat(R9i.z), intBitsToFloat(R9i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/rules.txt b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/rules.txt new file mode 100644 index 00000000..856522c8 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAExplosionSmoke/rules.txt @@ -0,0 +1,8 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Explosion Smoke workaround (NVIDIA GPU and OpenGL) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds for OpenGL/NVIDIA: Explosion Smoke" +description = Workaround for the smoke and explosion particles on NVIDIA when using OpenGL.||Made by rajkosto, Xalphenos, and Darkemaste. +vendorFilter = nvidia +rendererFilter = opengl +version = 6 diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAStretchedClouds/73ddf96c9094eb92_0000000000000000_vs.txt b/src/BreathOfTheWild/Workarounds/NVIDIAStretchedClouds/73ddf96c9094eb92_0000000000000000_vs.txt new file mode 100644 index 00000000..32aead36 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAStretchedClouds/73ddf96c9094eb92_0000000000000000_vs.txt @@ -0,0 +1,2337 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#ifdef VULKAN +#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation) +#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0 +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw) +#define gl_VertexID gl_VertexIndex +#define gl_InstanceID gl_InstanceIndex +#else +#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location) +#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140) +#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation) +#define SET_POSITION(_v) gl_Position = _v +#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw) +#endif +// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL. + +// shader 73ddf96c9094eb92 +UNIFORM_BUFFER_LAYOUT(6, 0, 2) uniform uniformBlockVS6 +{ +vec4 uf_blockVS6[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(7, 0, 3) uniform uniformBlockVS7 +{ +vec4 uf_blockVS7[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(8, 0, 4) uniform uniformBlockVS8 +{ +vec4 uf_blockVS8[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(11, 0, 5) uniform uniformBlockVS11 +{ +vec4 uf_blockVS11[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(13, 0, 6) uniform uniformBlockVS13 +{ +vec4 uf_blockVS13[1024]; +}; + +UNIFORM_BUFFER_LAYOUT(14, 0, 7) uniform uniformBlockVS14 +{ +vec4 uf_blockVS14[1024]; +}; + +TEXTURE_LAYOUT(40, 0, 0) uniform sampler2D textureUnitVS8; +TEXTURE_LAYOUT(45, 0, 1) uniform sampler2D textureUnitVS13; +ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0; +ATTR_LAYOUT(0, 1) in uvec4 attrDataSem1; +ATTR_LAYOUT(0, 2) in uvec4 attrDataSem2; +ATTR_LAYOUT(0, 3) in uvec4 attrDataSem3; +ATTR_LAYOUT(0, 4) in uvec4 attrDataSem4; +ATTR_LAYOUT(0, 5) in uvec4 attrDataSem5; +ATTR_LAYOUT(0, 6) in uvec4 attrDataSem6; +ATTR_LAYOUT(0, 7) in uvec4 attrDataSem7; +ATTR_LAYOUT(0, 8) in uvec4 attrDataSem8; +ATTR_LAYOUT(0, 9) in uvec4 attrDataSem9; +ATTR_LAYOUT(0, 10) in uvec4 attrDataSem10; +out gl_PerVertex +{ + vec4 gl_Position; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 2) out vec4 passParameterSem3; +layout(location = 4) out vec4 passParameterSem8; +layout(location = 6) out vec4 passParameterSem11; +layout(location = 7) out vec4 passParameterSem14; +layout(location = 8) out vec4 passParameterSem15; +layout(location = 9) out vec4 passParameterSem16; +layout(location = 3) out vec4 passParameterSem4; +layout(location = 5) out vec4 passParameterSem9; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[4]; +bool activeMaskStackC[5]; +activeMaskStack[0] = false; +activeMaskStack[1] = false; +activeMaskStack[2] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStackC[2] = false; +activeMaskStackC[3] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder = attrDataSem5; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R6i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder.xyz = attrDataSem4.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R5i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder = attrDataSem10; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R10i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem9; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R9i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem1; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem2; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R3i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem3; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R4i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem7; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R8i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +attrDecoder = attrDataSem6; +attrDecoder = (attrDecoder>>24)|((attrDecoder>>8)&0xFF00)|((attrDecoder<<8)&0xFF0000)|((attrDecoder<<24)); +R7i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R16i.z = floatBitsToInt(-(intBitsToFloat(R9i.y)) + 1.0); +R0i.w = 0; +R1i.w = floatBitsToInt(1.0); +PS0i = R1i.w; +// 1 +R8i.w = floatBitsToInt(-(intBitsToFloat(R4i.w)) + uf_blockVS8[2].x); +R9i.w = floatBitsToInt(-(intBitsToFloat(R9i.x)) + 1.0); +PS1i = R9i.w; +// 2 +predResult = (0.0 > intBitsToFloat(R8i.w)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +// 0 +R17i.x = 0; +R17i.y = 0; +R17i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R18i.x = 0; +PS0i = R18i.x; +// 1 +R2i.w = R1i.w; +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +// 0 +R2i.w = R0i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +predResult = (R2i.w == 0); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +PS0i = int(intBitsToFloat(R3i.w)); +// 1 +R11i.x = floatBitsToInt(float(PS0i)); +PS1i = R11i.x; +// 2 +predResult = (intBitsToFloat(R8i.w) >= intBitsToFloat(R11i.x)); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R17i.x = 0; +R17i.y = 0; +R17i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +R18i.x = 0; +PS0i = R18i.x; +// 1 +R0i.w = R1i.w; +} +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; +if( activeMaskStackC[2] == true ) { +activeMaskStack[2] = activeMaskStack[1]; +activeMaskStackC[3] = activeMaskStackC[2]; +// 0 +predResult = (R0i.w == 0); +activeMaskStack[2] = predResult; +activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true; +} +else { +activeMaskStack[2] = false; +activeMaskStackC[3] = false; +} +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt((uf_blockVS7[9].x > 0.0)?1.0:0.0); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[10].y)); +R127i.z = floatBitsToInt((0.0 > uf_blockVS7[9].x)?1.0:0.0); +R0i.w = 0x3f800000; +PV0i.w = R0i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[9].x); +// 1 +R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(PV0i.w)),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,uf_blockVS8[4].w))); +PV1i.x = R4i.x; +PV1i.y = R4i.x; +PV1i.z = R4i.x; +PV1i.w = R4i.x; +R126i.z = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +PS1i = R126i.z; +// 2 +backupReg0i = R0i.w; +backupReg1i = R127i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,uf_blockVS8[5].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R16i.y = tempi.x; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg1i) + -(intBitsToFloat(R127i.z))); +PS0i = R127i.x; +// 3 +backupReg0i = R0i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(backupReg0i)),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,uf_blockVS8[6].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = tempi.x; +PS1i = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R126i.z)); +// 4 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00020000; +R127i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00010000; +PV0i.z = floatBitsToInt(fract(intBitsToFloat(PS1i))); +R127i.w = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +R19i.x = floatBitsToInt(1.0 / intBitsToFloat(R11i.x)); +PS0i = R19i.x; +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00040000; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z))); +R126i.z = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(R7i.z)); +R10i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +PV1i.w = R10i.w; +PS1i = floatBitsToInt(float(PV0i.x)); +// 6 +R126i.x = R7i.z; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +PV0i.y = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.z = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R127i.w))); +PS0i = floatBitsToInt(float(R127i.y)); +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.y))); +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(R126i.y)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.x)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R126i.w = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(R7i.y)); +R127i.w = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.w; +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) * 0.5); +R126i.y = R7i.y; +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +PV1i.z = 0 - PS0i; +R125i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +R127i.x = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.x; +// 10 +PV0i.x = floatBitsToInt(floor(intBitsToFloat(R126i.x))); +R127i.y = max(R127i.w, PV1i.z); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * 0.5); +R127i.w = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(R7i.z)); +R1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + -(0.5)); +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +PS0i = R1i.x; +// 11 +backupReg0i = R126i.y; +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.x) > 0.0)?1.0:0.0); +R126i.y = floatBitsToInt(floor(intBitsToFloat(backupReg0i))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PV0i.x))?1.0:0.0); +PV1i.w = 0 - R127i.x; +R127i.z = int(intBitsToFloat(R125i.w)); +PS1i = R127i.z; +// 12 +backupReg0i = R127i.w; +backupReg1i = R126i.z; +PV0i.x = R7i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); +R125i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R126i.z = max(R127i.x, PV1i.w); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * 0.5); +R0i.y = floatBitsToInt(intBitsToFloat(backupReg1i) + -(0.5)); +R0i.y = floatBitsToInt(intBitsToFloat(R0i.y) * 2.0); +PS0i = R0i.y; +// 13 +PV1i.x = floatBitsToInt((intBitsToFloat(R126i.y) > 0.0)?1.0:0.0); +PV1i.y = 0 - R127i.z; +R125i.z = floatBitsToInt(floor(intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(R126i.y))?1.0:0.0); +PS1i = floatBitsToInt(float(R127i.y)); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); +// 14 +R127i.x = max(R127i.z, PV1i.y); +R3i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS1i)), intBitsToFloat(R125i.y))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.w))); +R0i.w = floatBitsToInt(intBitsToFloat(R127i.w) + -(0.5)); +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +PS0i = floatBitsToInt(float(R126i.z)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 15 +PV1i.x = floatBitsToInt(max(intBitsToFloat(R7i.x), 0.0)); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(R125i.z))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(R125i.z) > 0.0)?1.0:0.0); +R1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(PV0i.z))); +R4i.y = floatBitsToInt(intBitsToFloat(R7i.y) + -(0.5)); +PS1i = R4i.y; +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.x), 0.0)); +R1i.z = floatBitsToInt(intBitsToFloat(R7i.x) + -(0.5)); +R2i.w = floatBitsToInt(intBitsToFloat(R7i.z) + -(0.5)); +PS0i = floatBitsToInt(float(R127i.x)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 17 +backupReg0i = R8i.x; +R8i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +R10i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(PV0i.x))); +PV1i.z = floatBitsToInt(uf_blockVS7[13].y); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) / 2.0); +PV1i.w = floatBitsToInt(uf_blockVS7[13].x); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0); +R13i.y = floatBitsToInt(intBitsToFloat(R7i.x) + 1.0); +PS1i = R13i.y; +// 18 +R3i.x = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(PV1i.w)); +R14i.y = floatBitsToInt(intBitsToFloat(R7i.y) + 1.0); +R4i.z = floatBitsToInt(intBitsToFloat(R7i.z) + 1.0); +R3i.w = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV1i.z)); +PS0i = ((intBitsToFloat(R8i.w) == 0.0)?int(0xFFFFFFFF):int(0x0)); +// 19 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[6].x,uf_blockVS8[6].y,uf_blockVS8[6].z,0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R10i.z = ((PS0i == 0)?(R8i.w):(0x3f800000)); +PS1i = R10i.z; +// 20 +R6i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[4].x,uf_blockVS8[4].y,uf_blockVS8[4].z,0.0))); +PV0i.x = R6i.x; +PV0i.y = R6i.x; +PV0i.z = R6i.x; +PV0i.w = R6i.x; +// 21 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(uf_blockVS8[5].x,uf_blockVS8[5].y,uf_blockVS8[5].z,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R6i.y = tempi.x; +R11i.z = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(0x358637bd)); +PS1i = R11i.z; +} +if( activeMaskStackC[3] == true ) { +// 0 +R0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + -(uf_blockVS6[17].x)); +R11i.y = floatBitsToInt(intBitsToFloat(R16i.y) + -(uf_blockVS6[17].y)); +R124i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + uf_blockVS6[17].z); +PV0i.z = R124i.z; +R125i.w = floatBitsToInt(-(intBitsToFloat(R4i.x)) + uf_blockVS6[17].x); +PV0i.w = R125i.w; +R3i.z = floatBitsToInt(intBitsToFloat(R9i.z) + -(uf_blockVS6[17].z)); +PS0i = R3i.z; +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(R1i.y) + -(uf_blockVS7[97].w)); +R124i.y = floatBitsToInt(intBitsToFloat(R1i.y) + -(uf_blockVS7[96].w)); +PV1i.z = floatBitsToInt(-(uf_blockVS7[96].w) + uf_blockVS7[97].w); +R127i.w = floatBitsToInt((-(intBitsToFloat(PV0i.w)) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R125i.w)) * intBitsToFloat(PS1i)); +R12i.y = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +R125i.z = floatBitsToInt((0.0 > -(intBitsToFloat(R125i.w)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(uf_blockVS7[96].x) + uf_blockVS7[97].x); +R124i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +PS0i = R124i.w; +// 3 +R127i.x = floatBitsToInt(max(intBitsToFloat(PV0i.x), -(intBitsToFloat(PV0i.x)))); +PV1i.x = R127i.x; +R125i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PV0i.x))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.x) > 0.0)?1.0:0.0); +tempResultf = max(0.0, uf_blockVS7[114].w); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 4 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +R0i.z = floatBitsToInt(intBitsToFloat(R127i.w) + -(intBitsToFloat(R125i.z))); +R127i.w = ((intBitsToFloat(PV1i.x) > 1.0)?int(0xFFFFFFFF):int(0x0)); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 5 +R124i.x = floatBitsToInt(((PV0i.w == 0)?(intBitsToFloat(PV0i.y)):(-(intBitsToFloat(PV0i.y))))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fc90fdb)); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R125i.y))); +R123i.w = ((PV0i.w == 0)?(R127i.x):(PS0i)); +PV1i.w = R123i.w; +R127i.x = ((intBitsToFloat(R124i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R127i.x; +// 6 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockVS7[115].y)); +PV0i.y = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +R126i.z = ((R127i.w == 0)?(0):(PV1i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R12i.y)) + 1.0); +R127i.z = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R127i.z; +// 7 +backupReg0i = R125i.z; +R125i.x = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(1.0))); +PV1i.x = R125i.x; +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.w))); +R125i.z = floatBitsToInt(uf_blockVS7[96].x + intBitsToFloat(backupReg0i)); +PV1i.w = floatBitsToInt(-(uf_blockVS7[114].w) + 1.0); +R2i.y = floatBitsToInt(-(intBitsToFloat(R127i.x)) + 1.0); +PS1i = R2i.y; +// 8 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), uf_blockVS7[115].x)); +R126i.y = floatBitsToInt(uf_blockVS7[114].y + intBitsToFloat(backupReg0i)); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.z)) + 1.0); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +PV0i.w = R127i.w; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 9 +R123i.x = floatBitsToInt((intBitsToFloat(0x3d6ee04d) * intBitsToFloat(PV0i.w) + intBitsToFloat(0x3f43b24e))); +PV1i.x = R123i.x; +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(PS0i)); +R123i.z = floatBitsToInt((intBitsToFloat(0x3edcf805) * intBitsToFloat(PV0i.w) + 1.0)); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R1i.y))); +R127i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].x, intBitsToFloat(R2i.y))); +PS1i = R127i.x; +// 10 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS7[115].z)); +R125i.y = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.x)), intBitsToFloat(PV1i.z))); +R125i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + uf_blockVS7[114].x); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.x)) + 1.0)); +PV0i.w = R123i.w; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R3i.y))); +PS0i = R127i.w; +// 11 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(backupReg0i)); +PV1i.y = ((uf_blockVS7[114].w == 1.0)?int(0xFFFFFFFF):int(0x0)); +PV1i.z = ((0.0 > intBitsToFloat(R124i.z))?int(0xFFFFFFFF):int(0x0)); +PV1i.w = ((-(intBitsToFloat(R125i.w)) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 12 +backupReg0i = R126i.x; +R126i.x = ((PV1i.y == 0)?(R127i.y):(R8i.w)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i))); +R127i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(R127i.w)); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +R2i.z = floatBitsToInt(uf_blockVS7[114].z + intBitsToFloat(backupReg0i)); +PS0i = R2i.z; +// 13 +R123i.x = ((intBitsToFloat(R125i.x) > 0.0)?(PV0i.y):(floatBitsToInt(-(intBitsToFloat(PV0i.y))))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[97].x, intBitsToFloat(R12i.y))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R1i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), uf_blockVS7[113].y)); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R10i.y))); +PS1i = R125i.x; +// 14 +backupReg0i = R127i.x; +backupReg1i = R126i.z; +R127i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(backupReg0i)); +R126i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV1i.z)); +R126i.z = floatBitsToInt(-(uf_blockVS7[96].y) + uf_blockVS7[97].y); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg1i))); +PV0i.w = R126i.w; +R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + 0.0); +PS0i = R127i.w; +// 15 +R124i.x = floatBitsToInt(-(uf_blockVS7[96].z) + uf_blockVS7[97].z); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.x))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PV0i.w))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PV0i.w) > 0.0)?1.0:0.0); +R1i.x = ((intBitsToFloat(R124i.z) == 0.0)?int(0xFFFFFFFF):int(0x0)); +PS1i = R1i.x; +// 16 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R0i.z) * intBitsToFloat(0x3fc90fdb)); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), uf_blockVS7[113].x)); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(backupReg0i))); +R125i.w = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(R125i.x)); +PS0i = R125i.w; +// 17 +backupReg0i = R0i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(R124i.w)); +R125i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R127i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(R124i.x) * intBitsToFloat(R124i.w)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.y)); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.0); +PS1i = R127i.y; +// 18 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), uf_blockVS7[113].z)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3fc90fdb)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R126i.x))); +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV1i.z))); +PS0i = R124i.x; +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.w) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R126i.x))); +PS1i = floatBitsToInt(uf_blockVS7[96].y + intBitsToFloat(PV0i.y)); +// 20 +R123i.x = ((R0i.w == 0)?(PV1i.y):(0x40490fdb)); +PV0i.x = R123i.x; +R4i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PV1i.w)); +PV0i.z = floatBitsToInt(uf_blockVS7[96].z + intBitsToFloat(R124i.x)); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.w = R123i.w; +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R1i.y))); +PS0i = R0i.z; +// 21 +backupReg0i = R2i.y; +backupReg0i = R2i.y; +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.y))); +R2i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].z, intBitsToFloat(backupReg0i))); +R1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[96].y, intBitsToFloat(backupReg0i))); +R123i.w = ((R1i.x == 0)?(PV0i.x):(R127i.x)); +PV1i.w = R123i.w; +R2i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +PS1i = R2i.z; +// 22 +R1i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R0i.x)),-(intBitsToFloat(R11i.y)),-(intBitsToFloat(R3i.z)),-0.0),vec4(-(intBitsToFloat(R0i.x)),-(intBitsToFloat(R11i.y)),-(intBitsToFloat(R3i.z)),0.0))); +PV0i.x = R1i.x; +PV0i.y = R1i.x; +PV0i.z = R1i.x; +PV0i.w = R1i.x; +R1i.y = floatBitsToInt(intBitsToFloat(R125i.y) + -(intBitsToFloat(PV1i.w))); +PS0i = R1i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[3].y)); +R123i.y = floatBitsToInt((intBitsToFloat(R1i.y) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.y = R123i.y; +R0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R1i.z)); +R126i.w = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x3e22f983) + 0.5)); +tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(backupReg0i)), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R11i.y)), intBitsToFloat(PS0i))); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R3i.z)), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), uf_blockVS7[13].z)); +R127i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +PS1i = R127i.x; +// 2 +backupReg0i = R2i.z; +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x))); +PV0i.x = R8i.x; +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.y))); +PV0i.y = R0i.y; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +PV0i.z = R2i.z; +R0i.w = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(R2i.y)); +R125i.y = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PS0i = R125i.y; +// 3 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(PV0i.x)); +R127i.y = floatBitsToInt(intBitsToFloat(R11i.y) + intBitsToFloat(PV0i.y)); +R127i.z = floatBitsToInt(fract(intBitsToFloat(R126i.w))); +R126i.w = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +R126i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(PV0i.z)); +PS1i = R126i.z; +// 4 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R11i.y),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R11i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.w = tempi.x; +R124i.x = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(0x3e22f983)); +PS0i = R124i.x; +// 5 +backupReg0i = R126i.z; +backupReg0i = R126i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(backupReg0i),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(backupReg0i),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = tempi.x; +R124i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3e22f983)); +PS1i = R124i.z; +// 6 +R123i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[3].y)); +R127i.y = floatBitsToInt(sqrt(intBitsToFloat(R125i.w))); +PS0i = R127i.y; +// 7 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3e22f983)); +R125i.z = floatBitsToInt(cos((intBitsToFloat(R124i.x))/0.1591549367)); +PS1i = R125i.z; +// 8 +R125i.y = floatBitsToInt(sin((intBitsToFloat(R124i.z))/0.1591549367)); +PS0i = R125i.y; +// 9 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +R125i.w = floatBitsToInt(sqrt(intBitsToFloat(R126i.z))); +PS1i = R125i.w; +// 10 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 11 +R1i.w = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +PV1i.w = R1i.w; +R127i.w = floatBitsToInt(sin((intBitsToFloat(R124i.x))/0.1591549367)); +PS1i = R127i.w; +// 12 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.w))); +PV0i.x = R10i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R125i.y))); +R124i.x = floatBitsToInt(cos((intBitsToFloat(R124i.z))/0.1591549367)); +PS0i = R124i.x; +// 13 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +PV1i.z = R127i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS0i))); +R125i.w = floatBitsToInt(sin((intBitsToFloat(R127i.x))/0.1591549367)); +PS1i = R125i.w; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R126i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R127i.y))); +R4i.w = floatBitsToInt(-(intBitsToFloat(PS1i))); +R124i.z = floatBitsToInt(cos((intBitsToFloat(R127i.x))/0.1591549367)); +PS0i = R124i.z; +// 15 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS0i))); +PV1i.y = R11i.y; +R3i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.z)); +R2i.w = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.x)); +PV1i.w = R2i.w; +R6i.w = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.y)); +PS1i = R6i.w; +// 16 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R124i.z))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(R124i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R126i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PV1i.w))); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R3i.z))); +R1i.y = floatBitsToInt(-(intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R4i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(PS0i))); +PV1i.w = R123i.w; +// 18 +R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(PV1i.z))); +R15i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(PV1i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),intBitsToFloat(R0i.x)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +// 19 +R5i.z = floatBitsToInt(uf_blockVS8[3].z); +R5i.w = floatBitsToInt(uf_blockVS8[3].w); +R24i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z))); +PS1i = R24i.z; +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[97].y, intBitsToFloat(R12i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[97].z, intBitsToFloat(R12i.y))); +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R0i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R0i.z)); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), uf_blockVS11[2].x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R14i.y), uf_blockVS11[2].x)); +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), uf_blockVS11[2].x)); +PS1i = R126i.x; +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), uf_blockVS11[1].w)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV1i.y))); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R5i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R5i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 4 +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w))); +PV0i.y = R3i.y; +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R1i.w))); +PV0i.z = R0i.z; +R1i.w = floatBitsToInt(intBitsToFloat(R10i.z) * intBitsToFloat(PS1i)); +R1i.w = clampFI32(R1i.w); +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PV0i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R3i.w))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV1i.x))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PV1i.x))); +// 7 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R4i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R123i.w; +// 9 +R0i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(PV0i.x)); +PV1i.x = R0i.x; +R1i.y = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(PV0i.z)); +PV1i.y = R1i.y; +R1i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(PV0i.w)); +PV1i.z = R1i.z; +// 10 +R127i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R127i.w)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R124i.z)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.z)); +// 12 +R0i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV1i.x)); +// 13 +predResult = (uf_blockVS11[5].y != 0.0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +PV0i.y = floatBitsToInt(uf_blockVS8[5].w); +PV0i.z = floatBitsToInt(uf_blockVS8[4].w); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(uf_blockVS8[6].w); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(R1i.y))); +R126i.y = floatBitsToInt(1.0 / uf_blockVS11[5].y); +PS1i = R126i.y; +// 2 +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R1i.z))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 5 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(R126i.y)); +PV1i.x = clampFI32(PV1i.x); +// 6 +backupReg0i = R1i.w; +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(uf_blockVS8[4].w + uf_blockVS8[5].w); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R16i.y)) + intBitsToFloat(R1i.y)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R3i.y)); +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), uf_blockVS11[0].w)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS11[0].z)); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS11[1].z, uf_blockVS11[0].w)); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(PS0i)); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.w)), intBitsToFloat(PV1i.w))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.z))); +PV0i.z = ((0.0 > intBitsToFloat(PV1i.w))?int(0xFFFFFFFF):int(0x0)); +PV0i.w = floatBitsToInt(uf_blockVS8[6].w + intBitsToFloat(R127i.x)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w))); +// 3 +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS8[2].x, uf_blockVS11[1].x)); +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3dd70a3d)); +R0i.w = ((PV0i.z == 0)?(PS0i):(PV0i.x)); +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R127i.y)); +PV0i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS11[1].y, uf_blockVS11[0].z)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x)); +// 5 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.y))); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.w)); +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.x)); +// 6 +R123i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e22f983) + 0.5)); +PV0i.z = R123i.z; +// 7 +PV1i.x = floatBitsToInt(fract(intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(fract(intBitsToFloat(PV0i.z))); +// 8 +R123i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.x = R123i.x; +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb))); +PV0i.w = R123i.w; +// 9 +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e22f983)); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983)); +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.z))/0.1591549367)); +// 11 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R126i.y))); +PS1i = floatBitsToInt(cos((intBitsToFloat(R127i.z))/0.1591549367)); +// 12 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(sin((intBitsToFloat(R127i.w))/0.1591549367)); +// 13 +R0i.x = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R126i.x))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(R126i.z))); +// 14 +R1i.x = ((intBitsToFloat(PS1i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +R1i.z = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(PV1i.w)); +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R11i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 16 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 17 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(PS0i))); +} +if( activeMaskStackC[3] == true ) { +activeMaskStack[3] = activeMaskStack[2]; +activeMaskStackC[4] = activeMaskStackC[3]; +// 0 +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS14[1].w)); +// 1 +PV1i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].y, intBitsToFloat(PV0i.z))); +// 2 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].x, intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].z, intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS14[1].y, intBitsToFloat(PV1i.y))); +// 3 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV0i.w))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV0i.z))); +// 4 +R3i.xyz = floatBitsToInt(vec3(intBitsToFloat(R0i.z),intBitsToFloat(R1i.z),intBitsToFloat(R0i.x)) + vec3(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w))); +PV0i.x = R3i.x; +PV0i.y = R3i.y; +PV0i.z = R3i.z; +// 5 +R0i.x = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.x)); +PV1i.x = R0i.x; +R2i.y = floatBitsToInt(-(intBitsToFloat(R16i.y)) + intBitsToFloat(PV0i.y)); +PV1i.y = R2i.y; +R0i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.z)); +PV1i.z = R0i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 7 +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 8 +PV0i.w = ((intBitsToFloat(PS1i) > 0.0)?int(0xFFFFFFFF):int(0x0)); +// 9 +R0i.w = ((PV0i.w == 0)?(0):(R1i.x)); +// 10 +predResult = (R0i.w != 0); +activeMaskStack[3] = predResult; +activeMaskStackC[4] = predResult == true && activeMaskStackC[3] == true; +} +else { +activeMaskStack[3] = false; +activeMaskStackC[4] = false; +} +if( activeMaskStackC[4] == true ) { +// 0 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +backupReg1i = R0i.z; +backupReg1i = R0i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(backupReg1i),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), uf_blockVS7[95].x)); +PS0i = R127i.x; +// 1 +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), uf_blockVS7[95].x)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), uf_blockVS7[95].x)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 2 +backupReg0i = R0i.x; +backupReg1i = R0i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS1i))); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R1i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z))); +// 5 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +backupReg2i = R3i.z; +R3i.xyz = floatBitsToInt(vec3(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i)) + vec3(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w))); +} +activeMaskStackC[3] = activeMaskStack[2] == true && activeMaskStackC[2] == true; +if( activeMaskStackC[3] == true ) { +// 0 +R127i.x = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R8i.x)); +R6i.y = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(R0i.y)); +R127i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(R2i.z)); +R4i.w = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(R3i.x)); +R5i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R3i.y)); +PS0i = R5i.y; +// 1 +R126i.x = 0x3f800000; +R0i.y = floatBitsToInt(uf_blockVS7[60].x); +R9i.z = floatBitsToInt(intBitsToFloat(R2i.z) + intBitsToFloat(R3i.z)); +PV1i.z = R9i.z; +R127i.w = 0x3f800000; +PV1i.w = R127i.w; +R0i.z = floatBitsToInt(uf_blockVS7[60].y); +PS1i = R0i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.w)),vec4(uf_blockVS6[8].x,uf_blockVS6[8].y,uf_blockVS6[8].z,uf_blockVS6[8].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.z = tempi.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(R9i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[9].x,uf_blockVS6[9].y,uf_blockVS6[9].z,uf_blockVS6[9].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R8i.y = tempi.x; +// 4 +R12i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(R9i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = R12i.x; +PV0i.y = R12i.x; +PV0i.z = R12i.x; +PV0i.w = R12i.x; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.w),intBitsToFloat(R5i.y),intBitsToFloat(R9i.z),intBitsToFloat(R127i.w)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.w = tempi.x; +// 6 +R0i.x = floatBitsToInt(uf_blockVS7[60].z); +PV0i.y = PV1i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +R12i.z = floatBitsToInt((intBitsToFloat(R12i.x) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = R12i.z; +// 7 +R127i.y = floatBitsToInt(-(uf_blockVS7[68].x) + uf_blockVS7[69].x); +R11i.z = floatBitsToInt((intBitsToFloat(R12i.x) * 0.5 + intBitsToFloat(PV0i.y))); +PV1i.z = R11i.z; +R123i.w = floatBitsToInt((intBitsToFloat(R12i.x) * 0.0 + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R10i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +PS1i = R10i.x; +// 8 +R13i.x = floatBitsToInt((intBitsToFloat(R10i.z) * 0.5 + intBitsToFloat(PV1i.w))); +R11i.y = floatBitsToInt((intBitsToFloat(R8i.y) * -(0.5) + intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(-(uf_blockVS7[68].w) + uf_blockVS7[69].w); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +// 9 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),uf_blockVS6[18].w) + -(uf_blockVS6[18].y))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 10 +R1i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(-(uf_blockVS7[69].x) + uf_blockVS7[70].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +// 11 +R8i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS0i)); +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R6i.y),intBitsToFloat(R127i.z),intBitsToFloat(R126i.x)),vec4(uf_blockVS6[10].x,uf_blockVS6[10].y,uf_blockVS6[10].z,uf_blockVS6[10].w))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.z = tempi.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R6i.y),intBitsToFloat(R127i.z),intBitsToFloat(R126i.x)),vec4(uf_blockVS6[11].x,uf_blockVS6[11].y,uf_blockVS6[11].z,uf_blockVS6[11].w))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 14 +PV0i.x = PV1i.x; +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +R127i.y = floatBitsToInt(-(uf_blockVS7[69].w) + uf_blockVS7[70].w); +R123i.z = floatBitsToInt((intBitsToFloat(R126i.z) * 0.0 + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +// 15 +R126i.y = floatBitsToInt(-(uf_blockVS7[70].x) + uf_blockVS7[71].x); +R123i.w = floatBitsToInt((intBitsToFloat(R126i.z) * 0.5 + intBitsToFloat(PV0i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +PV0i.y = floatBitsToInt(-(uf_blockVS7[70].w) + uf_blockVS7[71].w); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 17 +R1i.x = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(PS0i)); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS6[18].w, intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 18 +PV0i.x = floatBitsToInt(-(uf_blockVS6[18].y) + intBitsToFloat(PV1i.w)); +R2i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS1i)); +// 19 +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 20 +R6i.x = floatBitsToInt(-(uf_blockVS6[18].z) * intBitsToFloat(PS1i)); +// 21 +R2i.x = floatBitsToInt(uf_blockVS7[76].x); +R1i.w = floatBitsToInt(uf_blockVS7[76].y); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R0i.y; +backupReg1i = R0i.z; +PV0i.x = floatBitsToInt((uf_blockVS7[8].y > 0.0)?1.0:0.0); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].x)); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), uf_blockVS8[0].y)); +PV0i.w = floatBitsToInt((0.0 > uf_blockVS7[8].y)?1.0:0.0); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[8].y); +// 1 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS8[0].z)); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt((uf_blockVS7[8].w > 0.0)?1.0:0.0); +// 2 +PV0i.x = floatBitsToInt((0.0 > uf_blockVS7[8].w)?1.0:0.0); +R126i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[9].z) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +// 3 +backupReg0i = R127i.w; +PV1i.z = floatBitsToInt(fract(intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[8].w); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS1i)); +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[10].x) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R0i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(R126i.y)) + intBitsToFloat(PV0i.x))); +// 6 +R126i.z = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV0i.w = floatBitsToInt(fract(intBitsToFloat(PV1i.x))); +// 7 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV0i.w))); +// 8 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.y))); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[69].w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[68].w)); +// 1 +R127i.x = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R1i.z)) + uf_blockVS7[68].x)); +R126i.z = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R126i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.x)) + uf_blockVS7[69].x)); +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[71].w)); +PV0i.z = floatBitsToInt(intBitsToFloat(R0i.w) + -(uf_blockVS7[70].w)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +// 3 +backupReg0i = R127i.x; +R127i.x = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R2i.z)) + uf_blockVS7[70].x)); +R127i.z = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[68].x, intBitsToFloat(PV0i.x))); +// 4 +backupReg0i = R0i.y; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), uf_blockVS7[59].x)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(PS1i))); +R14i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), uf_blockVS7[59].x)); +PS0i = R14i.z; +// 5 +backupReg0i = R127i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV0i.y))); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS7[59].x)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.x))); +R0i.w = floatBitsToInt(uf_blockVS7[76].z); +// 6 +R125i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[85].w)); +PV0i.x = R125i.x; +PV0i.y = floatBitsToInt(-(uf_blockVS7[84].w) + uf_blockVS7[85].w); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.w))); +PV0i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[84].w)); +PV0i.w = R127i.w; +// 7 +R126i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R126i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(-(uf_blockVS7[84].x) + uf_blockVS7[85].x); +R126i.w = ((intBitsToFloat(PV0i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); +// 8 +R1i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS7[71].x,intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.y))); +R125i.y = floatBitsToInt(intBitsToFloat(R0i.x) + -(uf_blockVS7[86].w)); +PV0i.y = R125i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +// 9 +backupReg0i = R0i.x; +PV1i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + -(uf_blockVS7[87].w)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV0i.z))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[84].x)); +PV1i.z = R123i.z; +R127i.w = ((intBitsToFloat(PV0i.y) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R127i.w; +PS1i = floatBitsToInt(mul_nonIEEE(uf_blockVS7[84].x, intBitsToFloat(PS0i))); +// 10 +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(-(uf_blockVS7[85].x) + uf_blockVS7[86].x); +R126i.z = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.z = R126i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +// 11 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(-(uf_blockVS7[85].w) + uf_blockVS7[86].w); +// 12 +backupReg0i = R127i.w; +R127i.z = floatBitsToInt(-(uf_blockVS7[86].x) + uf_blockVS7[87].x); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +// 13 +PV1i.x = floatBitsToInt(-(uf_blockVS7[86].w) + uf_blockVS7[87].w); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PV1i.y)) + uf_blockVS7[85].x)); +PV0i.x = R123i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R127i.z) * intBitsToFloat(PS0i)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.y)) + intBitsToFloat(R126i.x))); +// 16 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PV1i.x)) + uf_blockVS7[86].x)); +PV0i.z = R123i.z; +// 17 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +// 18 +R1i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[87].x,intBitsToFloat(R126i.z)) + intBitsToFloat(PV1i.z))); +} +if( activeMaskStackC[3] == true ) { +// 0 +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), uf_blockVS8[0].w)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), uf_blockVS8[1].x)); +// 1 +PV1i.x = ((intBitsToFloat(R7i.x) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), uf_blockVS8[1].w)); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), uf_blockVS8[1].z)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), uf_blockVS8[1].y)); +PS1i = ((intBitsToFloat(R7i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +// 2 +R14i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(R125i.y))); +R1i.y = ((PV1i.x == 0)?(R9i.x):(R9i.w)); +R15i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV1i.z))); +R6i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[59].x, intBitsToFloat(PV1i.w))); +R0i.y = ((PS1i == 0)?(R9i.y):(R16i.z)); +PS0i = R0i.y; +// 3 +PV1i.x = ((intBitsToFloat(R7i.w) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.y = ((intBitsToFloat(R7i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R2i.z = ((intBitsToFloat(R7i.z) > 0.5)?int(0xFFFFFFFF):int(0x0)); +PV1i.w = ((intBitsToFloat(R7i.y) > 0.5)?int(0xFFFFFFFF):int(0x0)); +R0i.x = R9i.w; +PS1i = R0i.x; +// 4 +R1i.x = ((PV1i.y == 0)?(R9i.x):(R9i.w)); +R2i.y = ((PV1i.w == 0)?(R9i.y):(R9i.y)); +R0i.z = ((PV1i.w == 0)?(R9i.x):(PS1i)); +R0i.w = ((PV1i.x == 0)?(R9i.y):(R16i.z)); +R11i.x = floatBitsToInt(uf_blockVS8[3].x); +PS0i = R11i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00100000; +PV0i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00080000; +// 1 +PV1i.x = (PV0i.y == 0x00080000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00200000; +PV1i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00400000; +PV1i.w = (PV0i.x == 0x00100000)?int(0xFFFFFFFF):int(0x0); +// 2 +R4i.x = ((PV1i.w == 0)?(R9i.y):(R0i.y)); +R0i.y = ((PV1i.x == 0)?(R9i.x):(R1i.y)); +PV0i.z = (PV1i.y == 0x00200000)?int(0xFFFFFFFF):int(0x0); +PV0i.w = (PV1i.z == 0x00400000)?int(0xFFFFFFFF):int(0x0); +PS0i = floatBitsToInt(uf_blockVS7[5].x) & 0x00800000; +// 3 +PV1i.x = (PS0i == 0x00800000)?int(0xFFFFFFFF):int(0x0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x01000000; +R8i.z = ((PV0i.w == 0)?(R9i.y):(R0i.w)); +R2i.w = ((PV0i.z == 0)?(R9i.x):(R1i.x)); +PS1i = floatBitsToInt(uf_blockVS7[5].y) & int(1); +// 4 +R126i.x = ((PV1i.x == 0)?(R9i.y):(R2i.y)); +PV0i.x = R126i.x; +R125i.y = (PV1i.y == 0x01000000)?int(0xFFFFFFFF):int(0x0); +R6i.z = (int(1) != PS1i)?int(0xFFFFFFFF):int(0x0); +PV0i.z = R6i.z; +R127i.w = ((PV1i.x == 0)?(R9i.x):(R0i.z)); +PV0i.w = R127i.w; +R125i.x = int(uf_blockVS7[26].x); +PS0i = R125i.x; +// 5 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PV1i.y = floatBitsToInt(uf_blockVS7[5].x) & 0x00000100; +R123i.z = ((R2i.z == 0)?(PV0i.w):(PV0i.w)); +PV1i.z = R123i.z; +R124i.w = ((PV0i.z == 0)?(R7i.x):(R7i.y)); +R127i.z = int(uf_blockVS7[26].y); +PS1i = R127i.z; +// 6 +PV0i.x = floatBitsToInt(uf_blockVS7[5].x) & 0x00000200; +R123i.y = ((R2i.z == 0)?(R126i.x):(PV1i.x)); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(uf_blockVS7[5].x) & 0x00000400; +R3i.w = ((R125i.y == 0)?(R127i.w):(PV1i.z)); +PS0i = floatBitsToInt(float(PV1i.y)); +// 7 +R5i.x = ((R125i.y == 0)?(R126i.x):(PV0i.y)); +PV1i.y = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R125i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x00000800; +PS1i = floatBitsToInt(float(PV0i.x)); +// 8 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R0i.w = int(-1) + R125i.x; +PS0i = floatBitsToInt(float(R126i.z)); +// 9 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R127i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.w; +// 10 +PV0i.x = 0 - PS1i; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R126i.w = int(intBitsToFloat(PV1i.y)); +PS0i = R126i.w; +// 11 +PV1i.x = 0 - PS0i; +R126i.z = max(R127i.w, PV0i.x); +R127i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R127i.w; +// 12 +PV0i.x = 0 - PS1i; +R4i.z = max(R126i.w, PV1i.x); +R126i.w = floatBitsToInt(uf_blockVS7[5].x) & 0x04000000; +PS0i = floatBitsToInt(float(R125i.w)); +// 13 +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R3i.z = max(R127i.w, PV0i.x); +R126i.y = floatBitsToInt(float(R125i.x)); +PS1i = R126i.y; +// 14 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.w), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(float(R127i.z)); +PS0i = R125i.y; +// 15 +PV1i.x = floatBitsToInt(intBitsToFloat(R19i.x) * intBitsToFloat(PV0i.w)); +R124i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R124i.w; +// 16 +PV0i.x = 0 - PS1i; +PS0i = int(intBitsToFloat(PV1i.x)); +// 17 +R127i.z = max(R124i.w, PV0i.x); +R9i.y = R126i.z * PS0i; +PS1i = R9i.y; +// 18 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y)); +// 19 +PV1i.x = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(PS0i)); +R1i.w = floatBitsToInt(float(R125i.x)); +PS1i = R1i.w; +// 20 +R3i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R0i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R0i.z; +// 21 +PS1i = floatBitsToInt(float(PS0i)); +// 22 +PV0i.w = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PS1i)); +R1i.x = floatBitsToInt(float(R0i.z)); +PS0i = R1i.x; +// 23 +R123i.x = ((intBitsToFloat(PV0i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.x = R123i.x; +R126i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +R5i.z = floatBitsToInt(1.0 / abs(intBitsToFloat(R1i.w))); +PS1i = R5i.z; +// 24 +PV0i.y = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R1i.x)), intBitsToFloat(PS1i))); +PS0i = int(intBitsToFloat(PV1i.x)); +// 25 +backupReg0i = R0i.w; +R0i.x = int(1) - PS0i; +PV1i.w = floatBitsToInt(trunc(intBitsToFloat(PV0i.y))); +R1i.z = PS0i * backupReg0i; +PS1i = R1i.z; +// 26 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(R126i.z))); +PV0i.y = R126i.y; +PS0i = floatBitsToInt(float(R126i.w)); +// 27 +PV1i.x = floatBitsToInt((intBitsToFloat(PV0i.y) >= abs(intBitsToFloat(R1i.w)))?1.0:0.0); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt(-(abs(intBitsToFloat(R1i.w))) + intBitsToFloat(PV0i.y)); +R2i.x = int(intBitsToFloat(R126i.x)); +PS1i = R2i.x; +// 28 +R2i.z = ((intBitsToFloat(PV1i.x) == 0.0)?(R126i.y):(PV1i.w)); +PV0i.z = R2i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +R0i.w = R127i.z * PS1i; +PS0i = R0i.w; +// 29 +R2i.y = floatBitsToInt(abs(intBitsToFloat(R1i.w)) + intBitsToFloat(PV0i.z)); +R9i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R9i.x; +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.z = 0 - R9i.x; +R123i.w = ((-(intBitsToFloat(R2i.z)) > 0.0)?(R2i.y):(R2i.z)); +PV0i.w = R123i.w; +// 1 +R123i.x = ((-(intBitsToFloat(R1i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV0i.w)))):(PV0i.w)); +PV1i.x = R123i.x; +PV1i.y = max(R9i.x, PV0i.z); +// 2 +R123i.z = ((intBitsToFloat(R1i.w) == 0.0)?(R1i.x):(PV1i.x)); +PV0i.z = R123i.z; +PS0i = PV1i.y * R2i.x; +// 3 +R126i.y = R0i.z + PS0i; +PS1i = int(intBitsToFloat(PV0i.z)); +// 4 +backupReg0i = R0i.x; +PS0i = backupReg0i * PS1i; +// 5 +PV1i.y = PS0i + R1i.z; +R126i.x = R3i.z * R126i.y; +PS1i = R126i.x; +// 6 +PS0i = R4i.z * PV1i.y; +// 7 +PV1i.w = PS0i + R9i.y; +// 8 +PV0i.x = R126i.x + PV1i.w; +// 9 +PV1i.z = R0i.w + PV0i.x; +// 10 +R125i.y = floatBitsToInt(float(PV1i.z)); +PS0i = R125i.y; +// 11 +R127i.z = floatBitsToInt(abs(intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), abs(intBitsToFloat(PS0i)))); +// 12 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.w))); +// 13 +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.z))); +PV1i.y = R126i.y; +// 14 +PV0i.x = floatBitsToInt((intBitsToFloat(PV1i.y) >= abs(intBitsToFloat(R1i.w)))?1.0:0.0); +PV0i.w = floatBitsToInt(-(abs(intBitsToFloat(R1i.w))) + intBitsToFloat(PV1i.y)); +// 15 +R127i.z = ((intBitsToFloat(PV0i.x) == 0.0)?(R126i.y):(PV0i.w)); +PV1i.z = R127i.z; +// 16 +PV0i.y = floatBitsToInt(abs(intBitsToFloat(R1i.w)) + intBitsToFloat(PV1i.z)); +// 17 +R123i.w = ((-(intBitsToFloat(R127i.z)) > 0.0)?(PV0i.y):(R127i.z)); +PV1i.w = R123i.w; +// 18 +R123i.x = ((-(intBitsToFloat(R125i.y)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.w)))):(PV1i.w)); +PV0i.x = R123i.x; +// 19 +R123i.z = ((intBitsToFloat(R1i.w) == 0.0)?(R125i.y):(PV0i.x)); +PV1i.z = R123i.z; +// 20 +R125i.y = int(intBitsToFloat(PV1i.z)); +PS0i = R125i.y; +// 21 +R126i.w = floatBitsToInt(float(PS0i)); +PS1i = R126i.w; +// 22 +PV0i.x = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +PV0i.z = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +R125i.x = floatBitsToInt(float(R125i.y)); +PS0i = R125i.x; +// 23 +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.z))); +PV1i.z = floatBitsToInt(abs(intBitsToFloat(PS0i)) * 0.25); +R124i.w = floatBitsToInt(abs(intBitsToFloat(PS0i))); +// 24 +PV0i.y = floatBitsToInt(trunc(intBitsToFloat(PV1i.z))); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.y) * 0.5 + intBitsToFloat(R126i.w))); +PV0i.w = R123i.w; +// 25 +R126i.x = floatBitsToInt((-(intBitsToFloat(PV0i.y)) * 4.0 + intBitsToFloat(R124i.w))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +// 26 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt((intBitsToFloat(PV1i.x) >= 4.0)?1.0:0.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0xc0800000)); +// 27 +R124i.w = ((intBitsToFloat(PV0i.y) == 0.0)?(R126i.x):(PV0i.z)); +PV1i.w = R124i.w; +PS1i = int(intBitsToFloat(PV0i.x)); +// 28 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + 4.0); +R1i.w = PS1i + 0x0000001b; +PS0i = int(uf_blockVS7[48].z); +// 29 +R123i.z = ((-(intBitsToFloat(R124i.w)) > 0.0)?(PV0i.x):(R124i.w)); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt(float(PS0i)); +PS1i = R124i.w; +// 30 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(PS1i))) + 0.0); +R123i.y = ((-(intBitsToFloat(R125i.x)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.z)))):(PV1i.z)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt((0.0 >= abs(intBitsToFloat(PS1i)))?1.0:0.0); +// 31 +R125i.y = ((intBitsToFloat(PV0i.z) == 0.0)?(0):(PV0i.x)); +PV1i.y = R125i.y; +PS1i = int(intBitsToFloat(PV0i.y)); +// 32 +PV0i.x = int(-1) + PS1i; +R126i.y = 0xfffffffd + PS1i; +R127i.z = 0xfffffffe + PS1i; +PV0i.w = floatBitsToInt(abs(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.y)); +PS0i = floatBitsToInt(float(PS1i)); +// 33 +R123i.x = ((-(intBitsToFloat(R125i.y)) > 0.0)?(PV0i.w):(R125i.y)); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PS1i = floatBitsToInt(float(PV0i.x)); +// 34 +PV0i.x = floatBitsToInt((0.0 > intBitsToFloat(PS1i))?1.0:0.0); +PV0i.y = floatBitsToInt((intBitsToFloat(PS1i) > 0.0)?1.0:0.0); +R126i.z = ((intBitsToFloat(R124i.w) == 0.0)?(0):(PV1i.x)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(float(R127i.z)); +// 35 +PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) + -(intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +PV1i.w = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +R125i.x = int(intBitsToFloat(PV0i.w)); +PS1i = R125i.x; +// 36 +PV0i.x = 0 - PS1i; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + -(intBitsToFloat(PV1i.y))); +R127i.z = int(intBitsToFloat(PV1i.x)); +PS0i = R127i.z; +// 37 +PV1i.x = 0 - PS0i; +PV1i.y = max(R125i.x, PV0i.x); +R125i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R125i.y; +// 38 +R3i.x = int(1) - PV1i.y; +PV0i.y = 0 - PS1i; +PV0i.w = max(R127i.z, PV1i.x); +PS0i = floatBitsToInt(float(R126i.y)); +// 39 +PV1i.x = max(R125i.y, PV0i.y); +R2i.y = int(1) - PV0i.w; +PV1i.z = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.w = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R3i.y = int(intBitsToFloat(R126i.z)); +PS1i = R3i.y; +// 40 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R5i.z = int(1) - PV1i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.w)); +// 41 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * 0.0); +R124i.w = int(intBitsToFloat(PV0i.y)); +PS1i = R124i.w; +// 42 +PV0i.x = 0 - PS1i; +PV0i.z = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R0i.w = floatBitsToInt(1.0 / uf_blockVS7[48].z); +PS0i = R0i.w; +// 43 +PV1i.z = max(R124i.w, PV0i.x); +R4i.y = int(intBitsToFloat(PV0i.z)); +PS1i = R4i.y; +// 44 +R9i.y = int(1) - PV1i.z; +} +if( activeMaskStackC[3] == true ) { +R1i.xyzw = floatBitsToInt(uf_blockVS7[R1i.w].xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].x, intBitsToFloat(R0i.w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), uf_blockVS7[45].y)); +R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) * 2.0); +R127i.z = ((R6i.z == 0)?(0):(int(1))); +PV0i.z = R127i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockVS7[45].x)); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) * 2.0); +R126i.w = R9i.y * R1i.w; +PS0i = R126i.w; +// 1 +PV1i.x = floatBitsToInt(uf_blockVS7[44].z + uf_blockVS7[45].x); +R126i.y = (PV0i.z == int(1))?int(0xFFFFFFFF):int(0x0); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + -(0.5))); +PV1i.w = floatBitsToInt(uf_blockVS7[44].w + uf_blockVS7[45].y); +R125i.x = R5i.z * R1i.z; +PS1i = R125i.x; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(R125i.y)) + intBitsToFloat(PV1i.w)); +PV0i.y = floatBitsToInt(uf_blockVS7[46].x + uf_blockVS7[46].z); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(uf_blockVS7[46].y + uf_blockVS7[46].w); +R126i.z = R2i.y * R1i.y; +PS0i = R126i.z; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),uf_blockVS7[46].w) + intBitsToFloat(PV0i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),uf_blockVS7[46].z) + intBitsToFloat(PV0i.y))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),uf_blockVS7[44].x) + -(intBitsToFloat(PV0i.z)))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[44].y) + intBitsToFloat(PV0i.x))); +PS1i = R3i.x * R1i.x; +// 4 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[45].z) + intBitsToFloat(PV1i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[45].w) + intBitsToFloat(PV1i.x))); +PV0i.z = (R127i.z == 0x00000002)?int(0xFFFFFFFF):int(0x0); +PV0i.w = R126i.z + PS1i; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[48].w); +// 5 +PV1i.x = R125i.x + PV0i.w; +R125i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[48].y, intBitsToFloat(PS0i))); +PV1i.y = R125i.y; +R123i.z = ((PV0i.z == 0)?(R7i.x):(R7i.z)); +PV1i.z = R123i.z; +R127i.w = ((PV0i.z == 0)?(R7i.y):(R7i.x)); +PS1i = floatBitsToInt(float(R3i.y)); +// 6 +backupReg0i = R126i.x; +backupReg1i = R125i.z; +R126i.x = ((R126i.y == 0)?(PV1i.z):(R7i.y)); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(PV1i.y)) + -(0.5))); +R125i.z = R126i.w + PV1i.x; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS1i)) + intBitsToFloat(backupReg1i))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(R4i.y)); +// 7 +backupReg0i = R124i.z; +R123i.x = ((R126i.y == 0)?(R127i.w):(R7i.z)); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(PS0i)) + intBitsToFloat(R124i.w))); +PV1i.y = R123i.y; +R124i.z = ((R126i.y == 0)?(R7i.x):(R7i.y)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.w))); +R127i.z = ((R126i.y == 0)?(R7i.y):(R7i.z)); +PS1i = R127i.z; +// 8 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R124i.y)) + -(intBitsToFloat(PV1i.y)))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].x, intBitsToFloat(R126i.x))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0); +R124i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[50].y, intBitsToFloat(PV1i.x))); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) * 2.0); +PS0i = int(uf_blockVS7[53].z); +// 9 +PV1i.x = floatBitsToInt(uf_blockVS7[49].w + uf_blockVS7[50].y); +R1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + 0.5); +PV1i.z = floatBitsToInt(uf_blockVS7[49].z + uf_blockVS7[50].x); +R1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R126i.w = floatBitsToInt(float(PS0i)); +PS1i = R126i.w; +// 10 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.z)); +R126i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(uf_blockVS7[51].x + uf_blockVS7[51].z); +R126i.x = floatBitsToInt(float(R125i.z)); +PS0i = R126i.x; +// 11 +backupReg0i = R125i.z; +PV1i.x = floatBitsToInt((intBitsToFloat(PS0i) > 0.0)?1.0:0.0); +PV1i.y = floatBitsToInt(uf_blockVS7[51].y + uf_blockVS7[51].w); +PV1i.z = floatBitsToInt((0.0 > intBitsToFloat(PS0i))?1.0:0.0); +R124i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].z,intBitsToFloat(R124i.z)) + intBitsToFloat(PV0i.w))); +R125i.z = floatBitsToInt(float(backupReg0i)); +PS1i = R125i.z; +// 12 +backupReg0i = R127i.z; +R125i.x = floatBitsToInt(abs(intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[51].w,intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.y))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),uf_blockVS7[49].x) + -(intBitsToFloat(R127i.y)))); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(R126i.w))); +// 13 +PV1i.x = floatBitsToInt(mul_nonIEEE(abs(intBitsToFloat(R125i.z)), intBitsToFloat(PS0i))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[49].y) + intBitsToFloat(R126i.z))); +R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[50].z) + intBitsToFloat(R124i.w))); +R123i.w = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +// 14 +PV0i.x = floatBitsToInt(trunc(intBitsToFloat(PV1i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),uf_blockVS7[50].w) + intBitsToFloat(R127i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / uf_blockVS7[53].z); +// 15 +R7i.x = floatBitsToInt(intBitsToFloat(R10i.w) + 0.0); +PV1i.y = floatBitsToInt(trunc(intBitsToFloat(PV0i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].x, intBitsToFloat(PS0i))); +PV1i.z = R124i.z; +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R127i.x)) + intBitsToFloat(R125i.x))); +PV1i.w = R124i.w; +PS1i = floatBitsToInt(1.0 / uf_blockVS7[53].w); +// 16 +PV0i.x = floatBitsToInt(-(abs(intBitsToFloat(R126i.w))) + intBitsToFloat(PV1i.w)); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV1i.z)) + -(0.5))); +PV0i.z = floatBitsToInt((intBitsToFloat(PV1i.w) >= abs(intBitsToFloat(R126i.w)))?1.0:0.0); +R127i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[53].y, intBitsToFloat(PS1i))); +PV0i.w = R127i.w; +PS0i = int(intBitsToFloat(PV1i.y)); +// 17 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), uf_blockVS7[58].x)); +R126i.y = ((intBitsToFloat(PV0i.z) == 0.0)?(R124i.w):(PV0i.x)); +PV1i.y = R126i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), uf_blockVS7[58].y)); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PV0i.w)) + -(0.5))); +PS1i = floatBitsToInt(float(PS0i)); +// 18 +backupReg0i = R127i.y; +PV0i.x = floatBitsToInt(abs(intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y)); +R127i.y = floatBitsToInt(intBitsToFloat(R6i.x) + -(uf_blockVS7[93].x)); +R126i.z = floatBitsToInt(-(uf_blockVS7[93].x) + uf_blockVS7[93].y); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PS1i)) + intBitsToFloat(backupReg0i))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(1.0 / uf_blockVS7[58].z); +// 19 +R123i.x = ((-(intBitsToFloat(R126i.y)) > 0.0)?(PV0i.x):(R126i.y)); +PV1i.x = R123i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R124i.w)) + -(intBitsToFloat(PV0i.w)))); +PV1i.z = R123i.z; +R3i.w = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[104].w)); +PS1i = floatBitsToInt(1.0 / uf_blockVS7[58].w); +// 20 +R4i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + 0.5); +R126i.y = floatBitsToInt(-(uf_blockVS7[104].x) + uf_blockVS7[105].x); +R123i.z = ((-(intBitsToFloat(R125i.z)) > 0.0)?(floatBitsToInt(-(intBitsToFloat(PV1i.x)))):(PV1i.x)); +PV0i.z = R123i.z; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R127i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.z)); +// 21 +R127i.x = floatBitsToInt(-(uf_blockVS7[104].w) + uf_blockVS7[105].w); +R123i.y = ((intBitsToFloat(R126i.w) == 0.0)?(R125i.z):(PV0i.z)); +PV1i.y = R123i.y; +R7i.w = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(PS0i)); +R7i.w = clampFI32(R7i.w); +// 22 +PS0i = int(intBitsToFloat(PV1i.y)); +// 23 +R5i.x = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[106].w)); +R125i.z = floatBitsToInt(-(uf_blockVS7[105].w) + uf_blockVS7[106].w); +R2i.w = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[105].w)); +PS1i = floatBitsToInt(float(PS0i)); +// 24 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PS1i)) + intBitsToFloat(R125i.w))); +PV0i.x = R123i.x; +R7i.y = floatBitsToInt(-(uf_blockVS7[105].x) + uf_blockVS7[106].x); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 25 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(PV0i.x))); +R3i.y = floatBitsToInt(-(uf_blockVS7[106].x) + uf_blockVS7[107].x); +R7i.z = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(PS0i)); +R4i.y = floatBitsToInt(1.0 / intBitsToFloat(R125i.z)); +PS1i = R4i.y; +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R4i.y; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(R7i.z)) + uf_blockVS7[104].x)); +R4i.y = floatBitsToInt(intBitsToFloat(R6i.x) + 0.5); +R125i.z = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[107].w)); +PV0i.z = R125i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R7i.y) * intBitsToFloat(backupReg0i)); +R126i.w = ((intBitsToFloat(R3i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS0i = R126i.w; +// 1 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[105].x)); +R126i.y = ((intBitsToFloat(R2i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.y = R126i.y; +R124i.z = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[108].w)); +PV1i.z = R124i.z; +R125i.w = ((intBitsToFloat(R5i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV1i.w = R125i.w; +R125i.y = ((intBitsToFloat(PV0i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PS1i = R125i.y; +// 2 +R126i.x = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(-(intBitsToFloat(PS1i)) + 1.0); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +PV0i.w = floatBitsToInt(-(uf_blockVS7[106].w) + uf_blockVS7[107].w); +R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +PS0i = R127i.x; +// 3 +R125i.x = floatBitsToInt(-(uf_blockVS7[107].x) + uf_blockVS7[108].x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.y))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 4 +PV0i.x = floatBitsToInt(-(uf_blockVS7[107].w) + uf_blockVS7[108].w); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.x))); +PV0i.z = floatBitsToInt(intBitsToFloat(R3i.y) * intBitsToFloat(PS1i)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.y))); +R126i.y = floatBitsToInt(-(intBitsToFloat(R126i.w)) + 1.0); +PS0i = R126i.y; +// 5 +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(PV0i.z)) + uf_blockVS7[106].x)); +R126i.w = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[109].w)); +PV1i.w = R126i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 6 +backupReg0i = R125i.x; +R125i.x = ((intBitsToFloat(PV1i.w) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R125i.x; +R125i.y = floatBitsToInt(-(uf_blockVS7[108].x) + uf_blockVS7[109].x); +R8i.z = 0; +PV0i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +// 7 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.w)) + uf_blockVS7[107].x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R126i.z = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[110].w)); +PV1i.z = R126i.z; +// 8 +R127i.x = ((intBitsToFloat(PV1i.z) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R127i.x; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(-(uf_blockVS7[108].w) + uf_blockVS7[109].w); +PS0i = floatBitsToInt(intBitsToFloat(R11i.z) * intBitsToFloat(R11i.z)); +// 9 +R126i.x = floatBitsToInt(-(uf_blockVS7[109].x) + uf_blockVS7[110].x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(R11i.y) * intBitsToFloat(R11i.y) + intBitsToFloat(PS0i))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 10 +backupReg0i = R125i.y; +PV0i.x = floatBitsToInt(-(uf_blockVS7[109].w) + uf_blockVS7[110].w); +R125i.y = floatBitsToInt((intBitsToFloat(R13i.x) * intBitsToFloat(R13i.x) + intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(PS1i)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV1i.y))); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R7i.x) + -(uf_blockVS7[111].w)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PV0i.z)) + uf_blockVS7[108].x)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 12 +backupReg0i = R125i.y; +R7i.x = ((intBitsToFloat(PV1i.x) >= 0.0)?(floatBitsToInt(1.0)):(0)); +PV0i.x = R7i.x; +R125i.y = floatBitsToInt(-(uf_blockVS7[110].x) + uf_blockVS7[111].x); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(PS1i)); +tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i)); +R125i.w = floatBitsToInt(tempResultf); +PS0i = R125i.w; +// 13 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + uf_blockVS7[109].x)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[104].x, intBitsToFloat(R126i.y))); +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(PS0i))); +PS1i = R126i.x; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.w))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R125i.w))); +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(-(uf_blockVS7[110].w) + uf_blockVS7[111].w); +R125i.w = 0; +PS0i = R125i.w; +// 15 +R127i.x = floatBitsToInt(uf_blockVS6[0].y); +R126i.y = floatBitsToInt(uf_blockVS6[1].y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(R124i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 16 +PV0i.x = floatBitsToInt(uf_blockVS6[2].y); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(intBitsToFloat(R125i.y) * intBitsToFloat(PS1i)); +// 17 +backupReg0i = R124i.z; +backupReg0i = R124i.z; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg0i)),vec4(-(intBitsToFloat(R127i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(PV0i.x)),-(intBitsToFloat(R125i.w))))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.z = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y))); +PS1i = R122i.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R127i.z)) + uf_blockVS7[110].x)); +// 19 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt(uf_blockVS6[17].x + -(intBitsToFloat(R4i.w))); +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.z) + intBitsToFloat(0x3edc28f6)); +PV1i.y = clampFI32(PV1i.y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(uf_blockVS6[17].y + -(intBitsToFloat(R5i.y))); +R124i.z = floatBitsToInt(uf_blockVS6[17].z + -(intBitsToFloat(R9i.z))); +PS1i = R124i.z; +// 20 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(PS1i)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R7i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +tempResultf = max(0.0, intBitsToFloat(PV1i.y)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R5i.x = floatBitsToInt(tempResultf); +PS0i = R5i.x; +// 21 +R123i.x = floatBitsToInt((intBitsToFloat(R127i.w) * intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R9i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[111].x,intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.w))); +// 22 +R123i.y = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +// 23 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 24 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PS1i))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i))); +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +} +if( activeMaskStackC[3] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R5i.y),intBitsToFloat(R7i.z),-0.0),vec4(uf_blockVS13[28].x,uf_blockVS13[28].y,uf_blockVS13[28].z,0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) / 2.0); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +PV1i.x = floatBitsToInt(min(uf_blockVS6[17].y, uf_blockVS13[27].z)); +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.y = R127i.y; +// 2 +R125i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS13[37].x) + -(uf_blockVS13[37].y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV1i.x)); +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS13[38].z, intBitsToFloat(R5i.x))); +R122i.x = floatBitsToInt((intBitsToFloat(PV1i.y) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PS0i = R122i.x; +// 3 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),uf_blockVS13[22].x) + -(uf_blockVS13[22].y))); +R123i.y = clampFI32(R123i.y); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(uf_blockVS13[27].y,intBitsToFloat(PV0i.z)) + uf_blockVS13[27].x)); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +// 4 +R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), uf_blockVS13[26].w)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 1.0); +R127i.w = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[38].w),intBitsToFloat(PS1i)) + 1.0)); +tempResultf = max(0.0, intBitsToFloat(PV1i.x)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 5 +PV1i.y = floatBitsToInt(uf_blockVS13[28].y + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS13[38].x, intBitsToFloat(PS0i))); +R125i.w = floatBitsToInt((uf_blockVS13[28].y * 1.0 + intBitsToFloat(R8i.x))); +tempResultf = max(0.0, intBitsToFloat(PV0i.z)); +tempResultf = log2(tempResultf); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].y, intBitsToFloat(PS1i))); +R127i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS13[23].x, intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * 1.5); +PV0i.z = clampFI32(PV0i.z); +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 7 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R124i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x41700000)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0); +// 8 +R5i.y = floatBitsToInt(intBitsToFloat(PS1i) + 0.5); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.w))); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(R125i.x))); +// 9 +PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), uf_blockVS13[25].w)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.y))); +// 10 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R126i.y))) + 1.0)); +PV0i.y = floatBitsToInt(intBitsToFloat(R11i.y) * intBitsToFloat(R10i.x)); +R123i.z = floatBitsToInt((mul_nonIEEE(-(uf_blockVS13[23].z),intBitsToFloat(PS1i)) + uf_blockVS13[23].z)); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +R10i.w = 0; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 11 +PV1i.x = floatBitsToInt(intBitsToFloat(R125i.w) * intBitsToFloat(PS0i)); +R7i.y = ((0.0 >= intBitsToFloat(R7i.w))?int(0xFFFFFFFF):int(0x0)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -0.0); +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R7i.w)) + 0.0)); +PS1i = R2i.x; +// 12 +R11i.x = PV1i.z; +R6i.y = PV1i.z; +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f333333) + intBitsToFloat(0x3e19999a))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(0x3e4ccccd))); +R1i.z = floatBitsToInt(uf_blockVS6[18].y * intBitsToFloat(0x40a00000)); +PS0i = R1i.z; +// 13 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R3i.y = 0; +PV1i.y = R3i.y; +R7i.z = floatBitsToInt(min(intBitsToFloat(PV0i.w), 1.0)); +R4i.w = 0; +R0i.x = 0; +PS1i = R0i.x; +// 14 +R1i.x = R16i.x; +R14i.y = R15i.y; +R0i.z = R24i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(0x40200000)); +R3i.w = ((R7i.y == 0)?(R10i.z):(PV1i.y)); +PS0i = R3i.w; +// 15 +backupReg0i = R8i.y; +R10i.x = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3daaaaab)); +R8i.y = ((R7i.y == 0)?(R12i.x):(R1i.z)); +R9i.z = ((R7i.y == 0)?(backupReg0i):(R4i.w)); +R8i.w = ((R7i.y == 0)?(R5i.w):(R5i.w)); +R7i.w = ((R7i.y == 0)?(R2i.x):(R0i.x)); +PS1i = R7i.w; +} +if( activeMaskStackC[3] == true ) { +R5i.xyz = floatBitsToInt(texture(textureUnitVS8, intBitsToFloat(R5i.xy)).xyz); +R10i.xyzw = floatBitsToInt(texture(textureUnitVS13, intBitsToFloat(R10i.xw)).xyzw); +} +if( activeMaskStackC[3] == true ) { +// 0 +backupReg0i = R5i.z; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(R7i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(R7i.z))); +R5i.z = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].w, uf_blockVS14[0].z)); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R7i.z))); +R7i.z = ((R7i.y == 0)?(R9i.y):(R9i.y)); +PS0i = R7i.z; +// 1 +R5i.x = ((R7i.y == 0)?(R18i.z):(R18i.z)); +R5i.y = floatBitsToInt(mul_nonIEEE(uf_blockVS11[2].w, uf_blockVS14[0].w)); +R6i.z = ((R7i.y == 0)?(0):(0x3f800000)); +PV1i.z = R6i.z; +R123i.w = ((R7i.y == 0)?(0):(R2i.w)); +PV1i.w = R123i.w; +R122i.x = ((R7i.y == 0)?(0):(R7i.x)); +PS1i = R122i.x; +// 2 +R19i.x = ((PV1i.z == 0)?(R2i.w):(PV1i.w)); +R19i.y = ((PV1i.z == 0)?(R7i.x):(PS1i)); +R123i.z = ((R7i.y == 0)?(0):(R6i.y)); +PV0i.z = R123i.z; +R123i.w = ((R7i.y == 0)?(0):(R8i.z)); +PV0i.w = R123i.w; +R122i.x = ((R7i.y == 0)?(0):(R126i.y)); +PS0i = R122i.x; +// 3 +R20i.x = ((R6i.z == 0)?(R126i.y):(PS0i)); +R126i.y = ((R7i.y == 0)?(0):(R125i.w)); +R19i.z = ((R6i.z == 0)?(R6i.y):(PV0i.z)); +R19i.w = ((R6i.z == 0)?(R8i.z):(PV0i.w)); +R127i.x = ((R7i.y == 0)?(0):(R11i.x)); +PS1i = R127i.x; +// 4 +R126i.x = ((R7i.y == 0)?(0):(R10i.w)); +R127i.y = ((R7i.y == 0)?(0):(R10i.z)); +R123i.z = ((R7i.y == 0)?(0):(R125i.x)); +PV0i.z = R123i.z; +R127i.w = ((R7i.y == 0)?(0):(R10i.x)); +R6i.y = ((R7i.y == 0)?(0):(R0i.z)); +PS0i = R6i.y; +// 5 +backupReg0i = R11i.x; +R11i.x = ((R7i.y == 0)?(0):(R1i.w)); +R20i.y = ((R6i.z == 0)?(R125i.x):(PV0i.z)); +PV1i.y = R20i.y; +R20i.z = ((R6i.z == 0)?(R125i.w):(R126i.y)); +R20i.w = ((R6i.z == 0)?(backupReg0i):(R127i.x)); +// 6 +R21i.x = ((R6i.z == 0)?(R10i.x):(R127i.w)); +R123i.z = ((R7i.y == 0)?(0):(R10i.y)); +PV0i.z = R123i.z; +R2i.w = ((R7i.y == 0)?(0):(R1i.x)); +R0i.y = ((R7i.y == 0)?(0):(R1i.z)); +PS0i = R0i.y; +// 7 +R21i.y = ((R6i.z == 0)?(R10i.y):(PV0i.z)); +R21i.z = ((R6i.z == 0)?(R10i.z):(R127i.y)); +R21i.w = ((R6i.z == 0)?(R10i.w):(R126i.x)); +// 8 +R10i.z = ((R7i.y == 0)?(0):(R14i.y)); +} +if( activeMaskStackC[3] == true ) { +// 0 +PV0i.x = floatBitsToInt(mul_nonIEEE(uf_blockVS7[44].y, intBitsToFloat(R5i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS7[49].y,intBitsToFloat(R5i.z)) + intBitsToFloat(R4i.y))); +R124i.z = floatBitsToInt((mul_nonIEEE(uf_blockVS7[44].y,intBitsToFloat(R5i.z)) + intBitsToFloat(R1i.y))); +PV0i.z = R124i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(uf_blockVS7[49].y, intBitsToFloat(R5i.y))); +// 1 +R126i.x = floatBitsToInt((mul_nonIEEE(uf_blockVS11[3].w,intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +R123i.y = ((R7i.y == 0)?(0):(PV0i.z)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), uf_blockVS7[54].y)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockVS11[3].w) + intBitsToFloat(R1i.w))); +PV1i.w = R127i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),uf_blockVS7[54].y) + intBitsToFloat(R2i.y))); +PS1i = R1i.x; +// 2 +R22i.x = ((R6i.z == 0)?(R124i.z):(PV1i.y)); +R1i.y = floatBitsToInt((mul_nonIEEE(uf_blockVS11[3].w,intBitsToFloat(PV1i.z)) + intBitsToFloat(R0i.w))); +PV0i.y = R1i.y; +R123i.z = ((R7i.y == 0)?(0):(PV1i.w)); +PV0i.z = R123i.z; +R123i.w = ((R7i.y == 0)?(0):(PS1i)); +PV0i.w = R123i.w; +R122i.x = ((R7i.y == 0)?(0):(R127i.y)); +PS0i = R122i.x; +// 3 +R4i.x = ((R6i.z == 0)?(R1i.x):(PV0i.w)); +R22i.y = ((R6i.z == 0)?(R127i.w):(PV0i.z)); +R22i.z = ((R6i.z == 0)?(R127i.y):(PS0i)); +R123i.w = ((R7i.y == 0)?(0):(PV0i.y)); +PV1i.w = R123i.w; +R122i.x = ((R7i.y == 0)?(0):(R126i.x)); +PS1i = R122i.x; +// 4 +R123i.x = ((R7i.y == 0)?(R18i.x):(R0i.x)); +PV0i.x = R123i.x; +R4i.y = ((R6i.z == 0)?(R1i.y):(PV1i.w)); +R124i.z = ((R7i.y == 0)?(R18i.z):(R18i.z)); +R22i.w = ((R6i.z == 0)?(R126i.x):(PS1i)); +R126i.z = ((R7i.y == 0)?(R17i.w):(R5i.w)); +PS0i = R126i.z; +// 5 +R18i.x = ((R6i.z == 0)?(R7i.w):(PV0i.x)); +R123i.y = ((R7i.y == 0)?(0):(R13i.x)); +PV1i.y = R123i.y; +R127i.z = ((R7i.y == 0)?(0):(R11i.z)); +R123i.w = ((R7i.y == 0)?(R18i.y):(R9i.y)); +PV1i.w = R123i.w; +R122i.x = ((R7i.y == 0)?(0):(R14i.x)); +PS1i = R122i.x; +// 6 +backupReg0i = R14i.x; +R23i.x = ((R6i.z == 0)?(R13i.x):(PV1i.y)); +R18i.y = ((R6i.z == 0)?(R7i.z):(PV1i.w)); +R18i.z = ((R6i.z == 0)?(R5i.x):(R124i.z)); +R123i.w = ((R7i.y == 0)?(0):(R11i.y)); +PV0i.w = R123i.w; +R14i.x = ((R6i.z == 0)?(backupReg0i):(PS1i)); +PS0i = R14i.x; +// 7 +R123i.x = ((R7i.y == 0)?(0):(R6i.w)); +PV1i.x = R123i.x; +R23i.y = ((R6i.z == 0)?(R11i.y):(PV0i.w)); +R23i.z = ((R6i.z == 0)?(R11i.z):(R127i.z)); +R125i.w = ((R7i.y == 0)?(0):(R15i.x)); +PS1i = R16i.x; +// 8 +R10i.x = ((R6i.z == 0)?(PS1i):(R2i.w)); +R14i.y = ((R6i.z == 0)?(R6i.w):(PV1i.x)); +R123i.z = ((R7i.y == 0)?(0):(R12i.z)); +PV0i.z = R123i.z; +R127i.w = ((R7i.y == 0)?(0):(R12i.y)); +R122i.x = ((R7i.y == 0)?(0):(R13i.z)); +PS0i = R122i.x; +// 9 +R24i.x = ((R6i.z == 0)?(R13i.z):(PS0i)); +R123i.y = ((R7i.y == 0)?(R17i.x):(R3i.y)); +PV1i.y = R123i.y; +R123i.z = ((R7i.y == 0)?(R17i.y):(R4i.w)); +PV1i.z = R123i.z; +R23i.w = ((R6i.z == 0)?(R12i.z):(PV0i.z)); +// 10 +R17i.x = ((R6i.z == 0)?(R3i.w):(PV1i.y)); +R17i.y = ((R6i.z == 0)?(R9i.z):(PV1i.z)); +R123i.z = ((R7i.y == 0)?(0):(R14i.z)); +PV0i.z = R123i.z; +PV0i.w = R15i.y; +// 11 +R10i.y = ((R6i.z == 0)?(PV0i.w):(R10i.z)); +R24i.y = ((R6i.z == 0)?(R14i.z):(PV0i.z)); +PS1i = R24i.y; +// 12 +R126i.x = ((R7i.y == 0)?(0):(R13i.y)); +PV0i.y = R24i.z; +R123i.w = ((R7i.y == 0)?(0):(R15i.z)); +PV0i.w = R123i.w; +// 13 +R10i.z = ((R6i.z == 0)?(PV0i.y):(R6i.y)); +R14i.w = ((R6i.z == 0)?(R12i.y):(R127i.w)); +R14i.z = ((R6i.z == 0)?(R15i.z):(PV0i.w)); +PS1i = R14i.z; +// 14 +R123i.x = ((R7i.y == 0)?(R17i.z):(R1i.z)); +PV0i.x = R123i.x; +R24i.z = ((R6i.z == 0)?(R13i.y):(R126i.x)); +R24i.w = ((R6i.z == 0)?(R15i.x):(R125i.w)); +// 15 +R17i.z = ((R6i.z == 0)?(R8i.y):(PV0i.x)); +R17i.w = ((R6i.z == 0)?(R8i.w):(R126i.z)); +R10i.w = ((R6i.z == 0)?(R11i.x):(R11i.x)); +PS1i = R10i.w; +// 16 +R4i.z = ((R6i.z == 0)?(R1i.z):(R0i.y)); +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +//gl_Position = vec4(intBitsToFloat(R17i.x), intBitsToFloat(R17i.y), intBitsToFloat(R17i.z), intBitsToFloat(R17i.w)); +SET_POSITION(vec4(0.0)); +// export +passParameterSem0 = vec4(intBitsToFloat(R24i.x), intBitsToFloat(R24i.y), intBitsToFloat(R24i.z), intBitsToFloat(R24i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R14i.x), intBitsToFloat(R14i.y), intBitsToFloat(R14i.z), intBitsToFloat(R14i.w)); +// export +passParameterSem3 = vec4(intBitsToFloat(R23i.x), intBitsToFloat(R23i.y), intBitsToFloat(R23i.z), intBitsToFloat(R23i.w)); +// export +passParameterSem8 = vec4(intBitsToFloat(R22i.x), intBitsToFloat(R22i.y), intBitsToFloat(R22i.z), intBitsToFloat(R22i.w)); +// export +passParameterSem11 = vec4(intBitsToFloat(R10i.x), intBitsToFloat(R10i.y), intBitsToFloat(R10i.z), intBitsToFloat(R10i.w)); +// export +passParameterSem14 = vec4(intBitsToFloat(R21i.x), intBitsToFloat(R21i.y), intBitsToFloat(R21i.z), intBitsToFloat(R21i.w)); +// export +passParameterSem15 = vec4(intBitsToFloat(R20i.x), intBitsToFloat(R20i.y), intBitsToFloat(R20i.z), intBitsToFloat(R20i.w)); +// export +passParameterSem16 = vec4(intBitsToFloat(R19i.x), intBitsToFloat(R19i.y), intBitsToFloat(R19i.z), intBitsToFloat(R19i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R18i.x), intBitsToFloat(R18i.y), intBitsToFloat(R18i.z), intBitsToFloat(R18i.z)); +// export +passParameterSem9 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.z)); +} diff --git a/src/BreathOfTheWild/Workarounds/NVIDIAStretchedClouds/rules.txt b/src/BreathOfTheWild/Workarounds/NVIDIAStretchedClouds/rules.txt new file mode 100644 index 00000000..038d1e78 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/NVIDIAStretchedClouds/rules.txt @@ -0,0 +1,8 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Stretched Clouds workaround (NVIDIA GPU and OpenGL) +path = "The Legend of Zelda: Breath of the Wild/Workarounds/GPU specific workarounds for OpenGL/NVIDIA: Stretched Clouds" +description = Workaround for some low-hanging clouds appearing to be stretched if you're using OpenGL and an NVIDIA GPU.||Made by Exzap. +vendorFilter = nvidia +rendererFilter = opengl +version = 6 diff --git a/src/BreathOfTheWild/Workarounds/ReshadeCompatibility/patch_ReshadeCompatibility.asm b/src/BreathOfTheWild/Workarounds/ReshadeCompatibility/patch_ReshadeCompatibility.asm new file mode 100644 index 00000000..2123ad73 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/ReshadeCompatibility/patch_ReshadeCompatibility.asm @@ -0,0 +1,5 @@ +[BotW_ReshadeCompatibility_v208] +moduleMatches = 0x6267BFD0 + +; Prevents the depth buffer being swapped at certain camera angles with one that's only near-field which breaks Reshade effects +0x038A48BC = li r0, 0 \ No newline at end of file diff --git a/src/BreathOfTheWild/Workarounds/ReshadeCompatibility/rules.txt b/src/BreathOfTheWild/Workarounds/ReshadeCompatibility/rules.txt new file mode 100644 index 00000000..7ee46d01 --- /dev/null +++ b/src/BreathOfTheWild/Workarounds/ReshadeCompatibility/rules.txt @@ -0,0 +1,7 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Reshade Compatibility +path = "The Legend of Zelda: Breath of the Wild/Workarounds/Reshade Compatibility (Enable Only When Using Reshade)" +description = Makes Reshade effects that rely on the depth buffer working to function, but causes issues with lighting and distant mountains flickering. Should only be enabled when using Reshade. +rendererFilter = vulkan +version = 6 \ No newline at end of file