From d3faa054798640e967e67bc71430c8573455ceca Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Wed, 13 Apr 2022 01:23:59 -0500 Subject: [PATCH] GS:MTL: Avoid uchar in shaders Intel compiler's uchar codegen is buggy --- pcsx2/GS/Renderers/Metal/tfx.metal | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pcsx2/GS/Renderers/Metal/tfx.metal b/pcsx2/GS/Renderers/Metal/tfx.metal index 58cc187bfa..8c61f7b649 100644 --- a/pcsx2/GS/Renderers/Metal/tfx.metal +++ b/pcsx2/GS/Renderers/Metal/tfx.metal @@ -338,7 +338,7 @@ struct PSMain c.z = sample_c(uv.xw).a; c.w = sample_c(uv.zw).a; - uchar4 i = uchar4(c * 255.5f); // Denormalize value + uint4 i = uint4(c * 255.5f); // Denormalize value if (PS_PAL_FMT == 1) return float4(i & 0xF) / 255.f; @@ -504,9 +504,9 @@ struct PSMain } else { - uchar4 rt = uchar4(fetch_raw_color() * 255.5f); - uchar green = (rt.g >> cb.channel_shuffle.green_shift) & cb.channel_shuffle.green_mask; - uchar blue = (rt.b >> cb.channel_shuffle.blue_shift) & cb.channel_shuffle.blue_mask; + uint4 rt = uint4(fetch_raw_color() * 255.5f); + uint green = (rt.g >> cb.channel_shuffle.green_shift) & cb.channel_shuffle.green_mask; + uint blue = (rt.b >> cb.channel_shuffle.blue_shift) & cb.channel_shuffle.blue_mask; return float4(green | blue); } } @@ -800,8 +800,8 @@ struct PSMain if (PS_SHUFFLE) { - uchar4 denorm_c = uchar4(C); - uchar2 denorm_TA = uchar2(cb.ta * 255.5f); + uint4 denorm_c = uint4(C); + uint2 denorm_TA = uint2(cb.ta * 255.5f); C.rb = PS_READ_BA ? C.bb : C.rr; if (PS_READ_BA)