mirror of https://github.com/PCSX2/pcsx2.git
GS/HW: ignore lower 3 bits of 16bit color for AEM check
This commit is contained in:
parent
e2ae28741d
commit
badede2e2d
|
@ -631,7 +631,7 @@ float4 sample_color(float2 st, float uv_w)
|
||||||
}
|
}
|
||||||
else if(PS_AEM_FMT == FMT_16)
|
else if(PS_AEM_FMT == FMT_16)
|
||||||
{
|
{
|
||||||
c[i].a = c[i].a >= 0.5 ? TA.y : !PS_AEM || any(c[i].rgb) ? TA.x : 0;
|
c[i].a = c[i].a >= 0.5 ? TA.y : !PS_AEM || any(int3(c[i].rgb * 255.0f) & 0xF8) ? TA.x : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -580,7 +580,7 @@ vec4 sample_color(vec2 st)
|
||||||
c[i].a = ( (PS_AEM == 0) || any(bvec3(c[i].rgb)) ) ? TA.x : 0.0f;
|
c[i].a = ( (PS_AEM == 0) || any(bvec3(c[i].rgb)) ) ? TA.x : 0.0f;
|
||||||
//c[i].a = ( (PS_AEM == 0) || (sum > 0.0f) ) ? TA.x : 0.0f;
|
//c[i].a = ( (PS_AEM == 0) || (sum > 0.0f) ) ? TA.x : 0.0f;
|
||||||
#elif (PS_AEM_FMT == FMT_16)
|
#elif (PS_AEM_FMT == FMT_16)
|
||||||
c[i].a = c[i].a >= 0.5 ? TA.y : ( (PS_AEM == 0) || any(bvec3(c[i].rgb)) ) ? TA.x : 0.0f;
|
c[i].a = c[i].a >= 0.5 ? TA.y : ( (PS_AEM == 0) || any(bvec3(ivec3(c[i].rgb * 255.0f) & ivec3(0xF8))) ) ? TA.x : 0.0f;
|
||||||
//c[i].a = c[i].a >= 0.5 ? TA.y : ( (PS_AEM == 0) || (sum > 0.0f) ) ? TA.x : 0.0f;
|
//c[i].a = c[i].a >= 0.5 ? TA.y : ( (PS_AEM == 0) || (sum > 0.0f) ) ? TA.x : 0.0f;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -817,7 +817,7 @@ vec4 sample_color(vec2 st)
|
||||||
#if (PS_AEM_FMT == FMT_24)
|
#if (PS_AEM_FMT == FMT_24)
|
||||||
c[i].a = (PS_AEM == 0 || any(bvec3(c[i].rgb))) ? TA.x : 0.0f;
|
c[i].a = (PS_AEM == 0 || any(bvec3(c[i].rgb))) ? TA.x : 0.0f;
|
||||||
#elif (PS_AEM_FMT == FMT_16)
|
#elif (PS_AEM_FMT == FMT_16)
|
||||||
c[i].a = (c[i].a >= 0.5) ? TA.y : ((PS_AEM == 0 || any(bvec3(c[i].rgb))) ? TA.x : 0.0f);
|
c[i].a = (c[i].a >= 0.5) ? TA.y : ((PS_AEM == 0 || any(bvec3(ivec3(c[i].rgb * 255.0f) & ivec3(0xF8)))) ? TA.x : 0.0f);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -702,7 +702,7 @@ struct PSMain
|
||||||
if (PS_AEM_FMT == FMT_24)
|
if (PS_AEM_FMT == FMT_24)
|
||||||
c[i].a = !PS_AEM || any(c[i].rgb != 0) ? cb.ta.x : 0.f;
|
c[i].a = !PS_AEM || any(c[i].rgb != 0) ? cb.ta.x : 0.f;
|
||||||
else if (PS_AEM_FMT == FMT_16)
|
else if (PS_AEM_FMT == FMT_16)
|
||||||
c[i].a = c[i].a >= 0.5 ? cb.ta.y : !PS_AEM || any(c[i].rgb != 0) ? cb.ta.x : 0.f;
|
c[i].a = c[i].a >= 0.5 ? cb.ta.y : !PS_AEM || any((int3(c[i].rgb * 255.0f) & 0xF8) != 0) ? cb.ta.x : 0.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PS_LTF)
|
if (PS_LTF)
|
||||||
|
|
Loading…
Reference in New Issue