From 3fe46800d9bc40629436a2b714b6b3de5178fe52 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 14 May 2018 18:49:35 -0700 Subject: [PATCH] Fix Taiko anti-aliasing --- .../9bc0b72c01bbaac2_000000000000001c_ps.txt | 272 ++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 Source/TaikoNoTatsujin/9bc0b72c01bbaac2_000000000000001c_ps.txt diff --git a/Source/TaikoNoTatsujin/9bc0b72c01bbaac2_000000000000001c_ps.txt b/Source/TaikoNoTatsujin/9bc0b72c01bbaac2_000000000000001c_ps.txt new file mode 100644 index 00000000..3d6180c4 --- /dev/null +++ b/Source/TaikoNoTatsujin/9bc0b72c01bbaac2_000000000000001c_ps.txt @@ -0,0 +1,272 @@ + +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 9bc0b72c01bbaac2 +const float resXScale = ; +const float resYScale = ; +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x16e68800 res 600x600x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 0 border: 0 +layout(location = 0) in vec4 passParameterSem130; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +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 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 = passParameterSem130; +R6f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +// 0 +PV0f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x) / resXScale, intBitsToFloat(uf_remappedPS[1].x)); +R127f.y = intBitsToFloat(uf_remappedPS[1].y) + 4.0; +R127f.z = R6f.w + -(1.0); +PV0f.w = mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].y) / resYScale, intBitsToFloat(uf_remappedPS[1].x)); +PS0f = mul_nonIEEE(R6f.z, R6f.z); +// 1 +backupReg0f = R0f.x; +backupReg0f = R0f.x; +R0f.x = backupReg0f + -(PV0f.x); +R123f.y = (mul_nonIEEE(R6f.y,R6f.y) + PS0f); +PV1f.y = R123f.y; +PV1f.z = R0f.y + -(PV0f.w); +R127f.w = R0f.y + PV0f.w; +PV1f.w = R127f.w; +R2f.x = backupReg0f + PV0f.x; +PS1f = R2f.x; +// 2 +R123f.x = (mul_nonIEEE(R6f.x,R6f.x) + PV1f.y); +PV0f.x = R123f.x; +R0f.y = PV1f.z; +R2f.z = PV1f.z; +R2f.w = PV1f.w; +R1f.w = 1.0 / R127f.y; +PS0f = R1f.w; +// 3 +R1f.x = (-(intBitsToFloat(uf_remappedPS[0].w)) * 0.5 + 1.0); +R7f.y = intBitsToFloat(((R127f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +PV1f.z = intBitsToFloat(uf_remappedPS[0].z) + -(0.0); +R2f.y = sqrt(PV0f.x); +PS1f = R2f.y; +// 4 +R7f.x = intBitsToFloat(((PV1f.z >= 0.0)?(floatBitsToInt(1.0)):(0))); +R1f.y = R127f.w; +R1f.z = R0f.x; +R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw); +R3f.xyzw = (texture(textureUnitPS0, R2f.xz).xyzw); +R4f.xyzw = (texture(textureUnitPS0, R1f.zy).xyzw); +R5f.xyzw = (texture(textureUnitPS0, R2f.xw).xyzw); +// 0 +backupReg0f = R0f.x; +backupReg0f = R0f.x; +backupReg1f = R0f.y; +backupReg1f = R0f.y; +backupReg2f = R0f.z; +backupReg2f = R0f.z; +backupReg0f = R0f.x; +tempf.x = dot(vec4(backupReg0f,backupReg1f,backupReg2f,-0.0),vec4(backupReg0f,backupReg1f,backupReg2f,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R125f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R6f.x) + backupReg0f); +PS0f = R125f.x; +// 1 +tempf.x = dot(vec4(R3f.x,R3f.y,R3f.z,-0.0),vec4(R3f.x,R3f.y,R3f.z,0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R127f.z = tempf.x; +PS1f = sqrt(PV0f.x); +// 2 +R127f.x = dot(vec4(R4f.x,R4f.y,R4f.z,-0.0),vec4(R4f.x,R4f.y,R4f.z,0.0)); +PV0f.x = R127f.x; +PV0f.y = R127f.x; +PV0f.z = R127f.x; +PV0f.w = R127f.x; +R126f.x = min(R2f.y, PS1f); +PS0f = R126f.x; +// 3 +backupReg0f = R127f.z; +tempf.x = dot(vec4(R5f.x,R5f.y,R5f.z,-0.0),vec4(R5f.x,R5f.y,R5f.z,0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +R127f.z = tempf.x; +PS1f = sqrt(backupReg0f); +// 4 +R123f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R6f.y) + R0f.y); +PV0f.x = R123f.x; +R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R6f.w) + R0f.w); +PV0f.y = R123f.y; +R123f.z = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y),R6f.z) + R0f.z); +PV0f.z = R123f.z; +R126f.w = min(PS1f, R126f.x); +R127f.w = sqrt(R127f.x); +PS0f = R127f.w; +// 5 +backupReg0f = R127f.z; +PV1f.x = R3f.x + R125f.x; +R127f.y = R3f.w + PV0f.y; +R127f.z = R3f.z + PV0f.z; +PV1f.w = R3f.y + PV0f.x; +PS1f = sqrt(backupReg0f); +// 6 +backupReg0f = R0f.x; +PV0f.x = R4f.x + PV1f.x; +R126f.y = backupReg0f + R3f.x; +PV0f.z = min(R127f.w, PS1f); +PV0f.w = R4f.y + PV1f.w; +R127f.w = R0f.y + R3f.y; +PS0f = R127f.w; +// 7 +R125f.x = R4f.w + R127f.y; +PV1f.y = min(PV0f.z, R126f.w); +PV1f.y = clamp(PV1f.y, 0.0, 1.0); +PV1f.z = R4f.z + R127f.z; +R126f.w = R5f.x + PV0f.x; +R125f.w = R5f.y + PV0f.w; +PS1f = R125f.w; +// 8 +backupReg0f = R127f.w; +PV0f.x = R4f.x + R126f.y; +PV0f.y = R0f.z + R3f.z; +PV0f.z = mul_nonIEEE(R6f.w, PV1f.y); +R127f.w = R4f.y + backupReg0f; +R127f.z = R5f.z + PV1f.z; +PS0f = R127f.z; +// 9 +PV1f.x = R5f.w + R125f.x; +R126f.y = R0f.w + R3f.w; +R126f.z = R4f.z + PV0f.y; +R124f.w = R5f.x + PV0f.x; +tempResultf = log2(PV0f.z); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1f = tempResultf; +// 10 +backupReg0f = R127f.z; +backupReg1f = R1f.w; +PV0f.x = PS1f * intBitsToFloat(0x40a00000); +R127f.y = R125f.w * R1f.w; +PV0f.y = R127f.y; +R127f.z = R126f.w * R1f.w; +PV0f.z = R127f.z; +R126f.w = backupReg0f * R1f.w; +R1f.w = PV1f.x * backupReg1f; +PS0f = R1f.w; +// 11 +backupReg0f = R127f.w; +PV1f.x = R6f.y + -(PV0f.y); +PV1f.y = R4f.w + R126f.y; +PV1f.z = R6f.x + -(PV0f.z); +R127f.w = R5f.y + backupReg0f; +R125f.w = exp2(PV0f.x); +PS1f = R125f.w; +// 12 +backupReg0f = R124f.w; +R123f.x = (mul_nonIEEE(PV1f.z,PS1f) + R127f.z); +PV0f.x = R123f.x; +PV0f.y = R5f.w + PV1f.y; +PV0f.z = R5f.z + R126f.z; +R124f.w = (mul_nonIEEE(PV1f.x,PS1f) + R127f.y); +R125f.x = backupReg0f * 0.25; +PS0f = R125f.x; +// 13 +backupReg0f = R127f.w; +R127f.x = R6f.z + -(R126f.w); +R127f.y = PV0f.y * 0.25; +R127f.z = PV0f.z * 0.25; +R127f.w = backupReg0f * 0.25; +PV1f.w = R127f.w; +PS1f = -(PS0f) + PV0f.x; +// 14 +backupReg0f = R125f.x; +R125f.x = -(PV1f.w) + R124f.w; +R123f.y = (mul_nonIEEE(PS1f,R7f.y) + backupReg0f); +PV0f.y = R123f.y; +PV0f.w = R6f.w + -(R1f.w); +// 15 +R123f.x = (mul_nonIEEE(R127f.x,R125f.w) + R126f.w); +PV1f.x = R123f.x; +R123f.y = (intBitsToFloat(uf_remappedPS[0].z) * intBitsToFloat(0x3eb40000) + PV0f.y); +PV1f.y = R123f.y; +R126f.z = mul_nonIEEE(PV0f.y, R1f.x); +R123f.w = (mul_nonIEEE(PV0f.w,R125f.w) + R1f.w); +PV1f.w = R123f.w; +// 16 +PV0f.x = PV1f.y + intBitsToFloat(0x3edc0000); +PV0f.y = -(R127f.y) + PV1f.w; +PV0f.z = -(R127f.z) + PV1f.x; +R123f.w = (mul_nonIEEE(R125f.x,R7f.y) + R127f.w); +PV0f.w = R123f.w; +// 17 +R123f.x = (intBitsToFloat(uf_remappedPS[0].z) * intBitsToFloat(0x3e700000) + PV0f.w); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(PV0f.y,R7f.y) + R127f.y); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(PV0f.z,R7f.y) + R127f.z); +PV1f.z = R123f.z; +R126f.w = mul_nonIEEE(PV0f.w, R1f.x); +R127f.w = -(R126f.z) + PV0f.x; +PS1f = R127f.w; +// 18 +R125f.x = PV1f.y; +PV0f.x = R125f.x; +R127f.y = mul_nonIEEE(PV1f.z, R1f.x); +PV0f.y = R127f.y; +PV0f.z = PV1f.x + intBitsToFloat(0x3ec80000); +R123f.w = (intBitsToFloat(uf_remappedPS[0].z) * intBitsToFloat(0x3df00000) + PV1f.z); +PV0f.w = R123f.w; +PS0f = PV1f.y; +// 19 +PV1f.x = -(PV0f.x) + PS0f; +PV1f.y = -(PV0f.y) + PV0f.w; +PV1f.z = -(R126f.w) + PV0f.z; +R1f.x = (mul_nonIEEE(R127f.w,R7f.x) + R126f.z); +PS1f = R1f.x; +// 20 +R1f.y = (mul_nonIEEE(PV1f.z,R7f.x) + R126f.w); +R1f.z = (mul_nonIEEE(PV1f.y,R7f.x) + R127f.y); +R1f.w = (mul_nonIEEE(PV1f.x,R7f.x) + R125f.x); +// export +if( ((vec4(R1f.x, R1f.y, R1f.z, R1f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, R1f.w); +}