diff options
| author | JosJuice <josjuice@gmail.com> | 2025-03-15 14:30:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-15 14:30:19 +0100 |
| commit | 3fb4084e25b1da3857d5d449dbc4417d731f3490 (patch) | |
| tree | c4bbc9f7f1494d9f18936adc7e1ec50fed8c2d62 /Source/Core/VideoBackends/Software | |
| parent | fd2c6918fa395d79ba20e377176d74f65b9b39f8 (diff) | |
| parent | 4e460a7968aa58365205bfb4a30e5df88ae0c1d4 (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.cpp | 11 | ||||
| -rw-r--r-- | Source/Core/VideoBackends/Software/Tev.h | 1 |
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; |
