Skip to content

Commit babb5dd

Browse files
committed
Fix shader
1 parent c74e524 commit babb5dd

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

bin/resources/shaders/vulkan/tfx.glsl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,16 +1062,16 @@ vec4 ps_color()
10621062
void ps_fbmask(inout vec4 C)
10631063
{
10641064
#if PS_FBMASK
1065-
if (PS_HDR && !PS_COLCLIP_HW)
1065+
if (PS_HDR == 1 && PS_COLCLIP_HW == 0)
10661066
{
10671067
vec4 RT = sample_from_rt() * 255.0f;
1068-
bvec4 hi_bit = (FbMask & 0x80) != 0;
1069-
RT = hi_bit ? RT : min(RT, 255.0f);
1070-
C = hi_bit ? min(C, 255.0f) : C;
1071-
uvec4 RTi = (uvec4)(RT + 0.5f);
1072-
uvec4 Ci = (uvec4)(C + 0.5f);
1073-
uvec4 mask = ((ivec4)FbMask << 24) >> 24; // Sign extend mask
1074-
C = (vec4)((Ci & ~mask) | (RTi & mask));
1068+
bvec4 hi_bit = bvec4((FbMask.x & uint(0x80)) != 0, (FbMask.y & uint(0x80)) != 0, (FbMask.z & uint(0x80)) != 0, (FbMask.w & uint(0x80)) != 0);
1069+
RT = vec4(hi_bit.x ? RT.x : min(RT.x, 255.0f), hi_bit.y ? RT.y : min(RT.y, 255.0f), hi_bit.z ? RT.z : min(RT.z, 255.0f), hi_bit.w ? RT.w : min(RT.w, 255.0f));
1070+
C = vec4(hi_bit.x ? min(C.x, 255.0f) : C.x, hi_bit.y ? min(C.y, 255.0f) : C.y, hi_bit.z ? min(C.z, 255.0f) : C.z, hi_bit.w ? min(C.w, 255.0f) : C.w);
1071+
uvec4 RTi = uvec4(RT + 0.5f);
1072+
uvec4 Ci = uvec4(C + 0.5f);
1073+
uvec4 mask = (ivec4(FbMask) << 24) >> 24; // Sign extend mask
1074+
C = vec4((Ci & ~mask) | (RTi & mask));
10751075
}
10761076
else
10771077
{

0 commit comments

Comments
 (0)