From e9ac262cd3c5aebb22cf2228d8909ead2ec24b51 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Mon, 25 Mar 2024 21:36:48 -0500 Subject: [PATCH] GS:MTL: RTA correction shader is used to scale textures Can't use a DirectReadTextureIn, which reads from the pixel with the same location --- pcsx2/GS/Renderers/Metal/convert.metal | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pcsx2/GS/Renderers/Metal/convert.metal b/pcsx2/GS/Renderers/Metal/convert.metal index bd643935a1..e92ffefdc9 100644 --- a/pcsx2/GS/Renderers/Metal/convert.metal +++ b/pcsx2/GS/Renderers/Metal/convert.metal @@ -126,15 +126,15 @@ fragment float4 ps_primid_rta_init_datm0(float4 p [[position]], DirectReadTextur return tex.read(p).a > (254.5f / 255.f) ? -1 : FLT_MAX; } -fragment float4 ps_rta_correction(float4 p [[position]], DirectReadTextureIn tex) +fragment float4 ps_rta_correction(ConvertShaderData data [[stage_in]], ConvertPSRes res) { - float4 in = tex.read(p); + float4 in = res.sample(data.t); return float4(in.rgb, in.a / (127.5f / 255.0f)); } -fragment float4 ps_rta_decorrection(float4 p [[position]], DirectReadTextureIn tex) +fragment float4 ps_rta_decorrection(ConvertShaderData data [[stage_in]], ConvertPSRes res) { - float4 in = tex.read(p); + float4 in = res.sample(data.t); return float4(in.rgb, in.a * (128.25f / 255.0f)); }