GS-hw: Implement missing st_int shader bit.

Was causing bad shader errors in GT4.
This commit is contained in:
lightningterror 2022-10-23 18:55:45 +02:00
parent ac1f31f2cd
commit cdb886a454
4 changed files with 4 additions and 3 deletions

View File

@ -674,7 +674,7 @@ float4 ps_color(PS_INPUT input)
#if PS_FST == 0 && PS_INVALID_TEX0 == 1
// Re-normalize coordinate from invalid GS to corrected texture size
float2 st = (input.t.xy * WH.xy) / (input.t.w * WH.zw);
// no st_int yet
float2 st_int = (input.ti.zw * WH.xy) / (input.t.w * WH.zw);
#elif PS_FST == 0
float2 st = input.t.xy / input.t.w;
float2 st_int = input.ti.zw / input.t.w;

View File

@ -577,7 +577,7 @@ vec4 ps_color()
#if (PS_FST == 0) && (PS_INVALID_TEX0 == 1)
// Re-normalize coordinate from invalid GS to corrected texture size
vec2 st = (PSin.t_float.xy * WH.xy) / (vec2(PSin.t_float.w) * WH.zw);
// no st_int yet
vec2 st_int = (PSin.t_int.zw * WH.xy) / (vec2(PSin.t_float.w) * WH.zw);
#elif (PS_FST == 0)
vec2 st = PSin.t_float.xy / vec2(PSin.t_float.w);
vec2 st_int = PSin.t_int.zw / vec2(PSin.t_float.w);

View File

@ -906,7 +906,7 @@ vec4 ps_color()
#if PS_FST == 0 && PS_INVALID_TEX0 == 1
// Re-normalize coordinate from invalid GS to corrected texture size
vec2 st = (vsIn.t.xy * WH.xy) / (vsIn.t.w * WH.zw);
// no st_int yet
vec2 st_int = (vsIn.ti.zw * WH.xy) / (vsIn.t.w * WH.zw);
#elif PS_FST == 0
vec2 st = vsIn.t.xy / vsIn.t.w;
vec2 st_int = vsIn.ti.zw / vsIn.t.w;

View File

@ -725,6 +725,7 @@ struct PSMain
if (!FST && PS_INVALID_TEX0)
{
st = (in.t.xy * cb.wh.xy) / (in.t.w * cb.wh.zw);
st_int = (in.ti.zw * cb.wh.xy) / (in.t.w * cb.wh.zw);
}
else if (!FST)
{