mirror of https://github.com/PCSX2/pcsx2.git
GS: Check CLUT dirty write on vertex kick
This commit is contained in:
parent
b2ac035862
commit
42dad4ade8
|
@ -155,8 +155,8 @@ void GSClut::Write(const GIFRegTEX0& TEX0, const GIFRegTEXCLUT& TEXCLUT)
|
||||||
{
|
{
|
||||||
m_write.TEX0 = TEX0;
|
m_write.TEX0 = TEX0;
|
||||||
m_write.TEXCLUT = TEXCLUT;
|
m_write.TEXCLUT = TEXCLUT;
|
||||||
m_write.dirty = false;
|
|
||||||
m_read.dirty = true;
|
m_read.dirty = true;
|
||||||
|
m_write.dirty = false;
|
||||||
|
|
||||||
(this->*m_wc[TEX0.CSM][TEX0.CPSM][TEX0.PSM])(TEX0, TEXCLUT);
|
(this->*m_wc[TEX0.CSM][TEX0.CPSM][TEX0.PSM])(TEX0, TEXCLUT);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2546,8 +2546,13 @@ __forceinline void GSState::VertexKick(u32 skip)
|
||||||
__assume(0);
|
__assume(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auto_flush && PRIM->TME && (m_context->FRAME.Block() == m_context->TEX0.TBP0))
|
if (m_context->FRAME.FBMSK != 0xFFFFFFFF)
|
||||||
FlushPrim();
|
{
|
||||||
|
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)
|
void GSState::GetTextureMinMax(GSVector4i& r, const GIFRegTEX0& TEX0, const GIFRegCLAMP& CLAMP, bool linear)
|
||||||
|
|
|
@ -1009,7 +1009,6 @@ void GSRendererHW::SwSpriteRender()
|
||||||
}
|
}
|
||||||
|
|
||||||
m_tc->InvalidateVideoMem(dpo, m_r);
|
m_tc->InvalidateVideoMem(dpo, m_r);
|
||||||
m_mem.m_clut.Invalidate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GSRendererHW::CanUseSwSpriteRender()
|
bool GSRendererHW::CanUseSwSpriteRender()
|
||||||
|
@ -2279,7 +2278,6 @@ bool GSRendererHW::OI_PointListPalette(GSTexture* rt, GSTexture* ds, GSTextureCa
|
||||||
m_mem.WritePixel32(x, y, c, FBP, FBW);
|
m_mem.WritePixel32(x, y, c, FBP, FBW);
|
||||||
}
|
}
|
||||||
m_tc->InvalidateVideoMem(m_context->offset.fb, m_r);
|
m_tc->InvalidateVideoMem(m_context->offset.fb, m_r);
|
||||||
m_mem.m_clut.Invalidate();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -578,8 +578,6 @@ void GSRendererSW::Queue(GSRingHeap::SharedPtr<GSRasterizerData>& item)
|
||||||
if (sd->global.sel.fwrite)
|
if (sd->global.sel.fwrite)
|
||||||
{
|
{
|
||||||
m_tc->InvalidatePages(sd->m_fb_pages, sd->m_fpsm);
|
m_tc->InvalidatePages(sd->m_fb_pages, sd->m_fpsm);
|
||||||
|
|
||||||
m_mem.m_clut.Invalidate(m_context->FRAME.Block());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sd->global.sel.zwrite)
|
if (sd->global.sel.zwrite)
|
||||||
|
|
Loading…
Reference in New Issue