From 521cf3bd8de0a59d9f47d90f98e4af57c59f99b9 Mon Sep 17 00:00:00 2001 From: NAVras-Z Date: Fri, 6 Oct 2017 10:14:51 +0800 Subject: [PATCH] fix camera rune dof blur using the same method as zl focus (#91) * fix camera rune dof blur using the same method as zl focus * too much? compared screenshot, previous radius seems too large * fix NAVrasZ The Fuzzy Head --- .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ .../c92c1c4c0a2fb839_0000000000001e49_ps.txt | 151 ++++++++++++++++++ 10 files changed, 1510 insertions(+) create mode 100644 Enthusiast/BreathOfTheWild_2880p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Enthusiast/BreathOfTheWild_4320p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Enthusiast/BreathOfTheWild_5760p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_1080p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_1080pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_1440p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_1440pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_1800p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_2160p/c92c1c4c0a2fb839_0000000000001e49_ps.txt create mode 100644 Quality/BreathOfTheWild_2160pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt diff --git a/Enthusiast/BreathOfTheWild_2880p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Enthusiast/BreathOfTheWild_2880p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Enthusiast/BreathOfTheWild_2880p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Enthusiast/BreathOfTheWild_4320p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Enthusiast/BreathOfTheWild_4320p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Enthusiast/BreathOfTheWild_4320p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Enthusiast/BreathOfTheWild_5760p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Enthusiast/BreathOfTheWild_5760p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Enthusiast/BreathOfTheWild_5760p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_1080p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_1080p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_1080p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_1080pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_1080pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_1080pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_1440p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_1440p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_1440p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_1440pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_1440pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_1440pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_1800p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_1800p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_1800p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_2160p/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_2160p/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_2160p/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +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/Quality/BreathOfTheWild_2160pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt b/Quality/BreathOfTheWild_2160pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt new file mode 100644 index 00000000..fc1b8573 --- /dev/null +++ b/Quality/BreathOfTheWild_2160pUW/c92c1c4c0a2fb839_0000000000001e49_ps.txt @@ -0,0 +1,151 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +// shader c92c1c4c0a2fb839 +uniform ivec4 uf_remappedPS[5]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf46ac800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x5) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf4813000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem2; +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() +{ +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))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[4].w))); +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 ) { + +vec2 R9f = vec2( passParameterSem2.x, passParameterSem2.y ); //center point +ivec2 ires = textureSize(textureUnitPS1,0); +vec2 res = vec2( float(ires.x), float(ires.y) ); +int r = int(floor(1.0 / uf_fragCoordScale.y + 0.5)); +vec3 R10f = vec3(0.0); +float count = 0.0; +for( int x=-r; x<=r; x++ ) { + for( int y=-r; y<=r; y++ ) { + if( pow(x,2) + pow(y,2) <= pow(r,2) ) { + R10f += textureLod( textureUnitPS1, R9f + vec2(x,y)/res, intBitsToFloat(R1i.w) ).xyz; + count += 1.0; + } + } + } +R2i.xyz = floatBitsToInt(R10f/count); + +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +// export +passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +}