Skip to content

Commit 183981c

Browse files
committed
GS/HW: Disable HPO on texture shuffles.
Quad conversion in texture shuffles is not intended to interact with HPO.
1 parent 06616ec commit 183981c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

pcsx2/GS/Renderers/HW/GSRendererHW.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,8 @@ GSVector4 GSRendererHW::RealignTargetTextureCoordinate(const GSTextureCache::Sou
12671267
{
12681268
if (GSConfig.UserHacks_HalfPixelOffset <= GSHalfPixelOffset::Normal ||
12691269
GSConfig.UserHacks_HalfPixelOffset >= GSHalfPixelOffset::Native ||
1270-
GetUpscaleMultiplier() == 1.0f || m_downscale_source || tex->GetScale() == 1.0f)
1270+
GetUpscaleMultiplier() == 1.0f || m_downscale_source || tex->GetScale() == 1.0f ||
1271+
m_texture_shuffle) // Do not apply HPO on texture shuffles as it already aligns the coordinates.
12711272
{
12721273
return GSVector4(0.0f);
12731274
}
@@ -7520,7 +7521,8 @@ __ri void GSRendererHW::EmulateTextureSampler(const GSTextureCache::Target* rt,
75207521

75217522
// Can be seen with the cabin part of the ship in God of War, offsets are required when using FST.
75227523
// ST uses a normalized position so doesn't need an offset here, will break Bionicle Heroes.
7523-
if (GSConfig.UserHacks_HalfPixelOffset == GSHalfPixelOffset::NativeWTexOffset)
7524+
// Do not apply HPO on texture shuffles as it already aligns the coordinates.
7525+
if (GSConfig.UserHacks_HalfPixelOffset == GSHalfPixelOffset::NativeWTexOffset && !m_texture_shuffle)
75247526
{
75257527
const u32 psm = rt ? rt->m_TEX0.PSM : ds->m_TEX0.PSM;
75267528
const bool can_offset = m_r.width() > GSLocalMemory::m_psm[psm].pgs.x || m_r.height() > GSLocalMemory::m_psm[psm].pgs.y;

0 commit comments

Comments
 (0)