Merge pull request #13345 from Tilka/unswap_depth

Fix depth texture being incorrectly affected by swap table
This commit is contained in:
JosJuice
2025-03-15 14:30:19 +01:00
committed by GitHub
4 changed files with 19 additions and 11 deletions

View File

@ -465,6 +465,11 @@ void Tev::Draw()
std::memset(texel, 0, 4);
}
RawTexColor.r = texel[u32(ColorChannel::Red)];
RawTexColor.g = texel[u32(ColorChannel::Green)];
RawTexColor.b = texel[u32(ColorChannel::Blue)];
RawTexColor.a = texel[u32(ColorChannel::Alpha)];
const auto& swap = bpmem.tevksel.GetSwapTable(ac.tswap);
TexColor.r = texel[u32(swap[ColorChannel::Red])];
TexColor.g = texel[u32(swap[ColorChannel::Green])];
@ -549,13 +554,13 @@ void Tev::Draw()
switch (bpmem.ztex2.type)
{
case ZTexFormat::U8:
ztex += TexColor[ALP_C];
ztex += RawTexColor[ALP_C];
break;
case ZTexFormat::U16:
ztex += TexColor[ALP_C] << 8 | TexColor[RED_C];
ztex += RawTexColor[ALP_C] << 8 | RawTexColor[RED_C];
break;
case ZTexFormat::U24:
ztex += TexColor[RED_C] << 16 | TexColor[GRN_C] << 8 | TexColor[BLU_C];
ztex += RawTexColor[RED_C] << 16 | RawTexColor[GRN_C] << 8 | RawTexColor[BLU_C];
break;
default:
PanicAlertFmt("Invalid ztex format {}", bpmem.ztex2.type);

View File

@ -107,6 +107,7 @@ class Tev
// color order: ABGR
Common::EnumMap<TevColor, TevOutput::Color2> Reg;
std::array<TevColor, 4> KonstantColors;
TevColor RawTexColor;
TevColor TexColor;
TevColor RasColor;
TevColor StageKonst;