summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2025-03-15 14:30:19 +0100
committerGitHub <noreply@github.com>2025-03-15 14:30:19 +0100
commit3fb4084e25b1da3857d5d449dbc4417d731f3490 (patch)
treec4bbc9f7f1494d9f18936adc7e1ec50fed8c2d62 /Source/Core/VideoBackends/Software
parentfd2c6918fa395d79ba20e377176d74f65b9b39f8 (diff)
parent4e460a7968aa58365205bfb4a30e5df88ae0c1d4 (diff)
Merge pull request #13345 from Tilka/unswap_depth
Fix depth texture being incorrectly affected by swap table
Diffstat (limited to 'Source/Core/VideoBackends/Software')
-rw-r--r--Source/Core/VideoBackends/Software/Tev.cpp11
-rw-r--r--Source/Core/VideoBackends/Software/Tev.h1
2 files changed, 9 insertions, 3 deletions
diff --git a/Source/Core/VideoBackends/Software/Tev.cpp b/Source/Core/VideoBackends/Software/Tev.cpp
index 51fbd11f5e..7b254cb490 100644
--- a/Source/Core/VideoBackends/Software/Tev.cpp
+++ b/Source/Core/VideoBackends/Software/Tev.cpp
@@ -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);
diff --git a/Source/Core/VideoBackends/Software/Tev.h b/Source/Core/VideoBackends/Software/Tev.h
index 5b48f60346..c6b6f87851 100644
--- a/Source/Core/VideoBackends/Software/Tev.h
+++ b/Source/Core/VideoBackends/Software/Tev.h
@@ -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;