Skip to content

Commit

Permalink
GS: Check CLUT dirty write on vertex kick
Browse files Browse the repository at this point in the history
  • Loading branch information
refractionpcsx2 committed Dec 14, 2021
1 parent b2ac035 commit 42dad4a
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 7 deletions.
2 changes: 1 addition & 1 deletion pcsx2/GS/GSClut.cpp
Expand Up @@ -155,8 +155,8 @@ void GSClut::Write(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT)
{
m_write.TEX0 = TEX0;
m_write.TEXCLUT = TEXCLUT;
m_write.dirty = false;
m_read.dirty = true;
m_write.dirty = false;

(this->*m_wc[TEX0.CSM][TEX0.CPSM][TEX0.PSM])(TEX0, TEXCLUT);
}
Expand Down
9 changes: 7 additions & 2 deletions pcsx2/GS/GSState.cpp
Expand Up @@ -2546,8 +2546,13 @@ __forceinline void GSState::VertexKick(u32 skip)
__assume(0);
}

if (auto_flush && PRIM->TME && (m_context->FRAME.Block() == m_context->TEX0.TBP0))
FlushPrim();
if (m_context->FRAME.FBMSK != 0xFFFFFFFF)
{
m_mem.m_clut.Invalidate(m_context->FRAME.Block());

if (auto_flush && PRIM->TME && (m_context->FRAME.Block() == m_context->TEX0.TBP0))
FlushPrim();
}
}

void GSState::GetTextureMinMax(GSVector4i& r, const GIFRegTEX0& TEX0, const GIFRegCLAMP& CLAMP, bool linear)
Expand Down
2 changes: 0 additions & 2 deletions pcsx2/GS/Renderers/HW/GSRendererHW.cpp
Expand Up @@ -1009,7 +1009,6 @@ void GSRendererHW::SwSpriteRender()
}

m_tc->InvalidateVideoMem(dpo, m_r);
m_mem.m_clut.Invalidate();
}

bool GSRendererHW::CanUseSwSpriteRender()
Expand Down Expand Up @@ -2279,7 +2278,6 @@ bool GSRendererHW::OI_PointListPalette(GSTexture* rt, GSTexture* ds, GSTextureCa
m_mem.WritePixel32(x, y, c, FBP, FBW);
}
m_tc->InvalidateVideoMem(m_context->offset.fb, m_r);
m_mem.m_clut.Invalidate();
return false;
}
return true;
Expand Down
2 changes: 0 additions & 2 deletions pcsx2/GS/Renderers/SW/GSRendererSW.cpp
Expand Up @@ -578,8 +578,6 @@ void GSRendererSW::Queue(GSRingHeap::SharedPtr<GSRasterizerData>& item)
if (sd->global.sel.fwrite)
{
m_tc->InvalidatePages(sd->m_fb_pages, sd->m_fpsm);

m_mem.m_clut.Invalidate(m_context->FRAME.Block());
}

if (sd->global.sel.zwrite)
Expand Down

0 comments on commit 42dad4a

Please sign in to comment.