mirror of https://github.com/PCSX2/pcsx2.git
gsdx: use psm.bpp flag to improve code reading
This commit is contained in:
parent
dd98a0b913
commit
a149d6b26f
|
@ -398,11 +398,13 @@ void GSRendererHW::Draw()
|
|||
|
||||
if(PRIM->TME)
|
||||
{
|
||||
const GSLocalMemory::psm_t& tex_psm = GSLocalMemory::m_psm[m_context->TEX0.PSM];
|
||||
|
||||
/*
|
||||
|
||||
// m_tc->LookupSource will mess with the palette, should not, but we do this after, until it is sorted out
|
||||
|
||||
if(GSLocalMemory::m_psm[context->TEX0.PSM].pal > 0)
|
||||
if(tex_psm.pal > 0)
|
||||
{
|
||||
m_mem.m_clut.Read32(context->TEX0, env.TEXA);
|
||||
}
|
||||
|
@ -421,7 +423,7 @@ void GSRendererHW::Draw()
|
|||
}
|
||||
|
||||
// FIXME: Could be removed on openGL
|
||||
if(GSLocalMemory::m_psm[context->TEX0.PSM].pal > 0)
|
||||
if(tex_psm.pal > 0)
|
||||
{
|
||||
m_mem.m_clut.Read32(context->TEX0, env.TEXA);
|
||||
}
|
||||
|
@ -430,7 +432,8 @@ void GSRendererHW::Draw()
|
|||
// Initially code also tested the RT but it gives too much false-positive
|
||||
//
|
||||
// Both input and output are 16 bits and texture was initially 32 bits!
|
||||
m_texture_shuffle = (context->FRAME.PSM & 0x2) && ((context->TEX0.PSM & 3) == 2) && (m_vt.m_primclass == GS_SPRITE_CLASS) && tex->m_32_bits_fmt;
|
||||
m_texture_shuffle = (GSLocalMemory::m_psm[context->FRAME.PSM].bpp == 16) && (tex_psm.bpp == 16)
|
||||
&& (m_vt.m_primclass == GS_SPRITE_CLASS) && tex->m_32_bits_fmt;
|
||||
|
||||
// Texture shuffle is not yet supported with strange clamp mode
|
||||
ASSERT(!m_texture_shuffle || (context->CLAMP.WMS < 3 && context->CLAMP.WMT < 3));
|
||||
|
@ -439,7 +442,7 @@ void GSRendererHW::Draw()
|
|||
// Be sure texture shuffle detection is properly propagated
|
||||
// Otherwise set or clear the flag (Code in texture cache only set the flag)
|
||||
// Note: it is important to clear the flag when RT is used as a real 16 bits target.
|
||||
rt->m_32_bits_fmt = m_texture_shuffle || !(context->FRAME.PSM & 0x2);
|
||||
rt->m_32_bits_fmt = m_texture_shuffle || (GSLocalMemory::m_psm[context->FRAME.PSM].bpp != 16);
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
|
|
|
@ -282,7 +282,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, int
|
|||
|
||||
dst = t;
|
||||
|
||||
dst->m_32_bits_fmt |= !(TEX0.PSM & 2);
|
||||
dst->m_32_bits_fmt |= (GSLocalMemory::m_psm[TEX0.PSM].bpp != 16);
|
||||
dst->m_TEX0 = TEX0;
|
||||
|
||||
break;
|
||||
|
@ -1028,7 +1028,7 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con
|
|||
}
|
||||
#endif
|
||||
|
||||
if (TEX0.PSM < PSM_PSMT8 || TEX0.PSM > PSM_PSMT4HH) {
|
||||
if (GSLocalMemory::m_psm[TEX0.PSM].bpp > 8) {
|
||||
src->m_32_bits_fmt = dst->m_32_bits_fmt;
|
||||
}
|
||||
src->m_target = true;
|
||||
|
@ -1635,7 +1635,7 @@ GSTextureCache::Target::Target(GSRenderer* r, const GIFRegTEX0& TEX0, uint8* tem
|
|||
, m_depth_supported(depth_supported)
|
||||
{
|
||||
m_TEX0 = TEX0;
|
||||
m_32_bits_fmt |= !(TEX0.PSM & 2);
|
||||
m_32_bits_fmt |= (GSLocalMemory::m_psm[TEX0.PSM].bpp != 16);
|
||||
m_dirty_alpha = (TEX0.PSM != PSM_PSMCT24) && (TEX0.PSM != PSM_PSMZ24);
|
||||
|
||||
m_valid = GSVector4i::zero();
|
||||
|
|
Loading…
Reference in New Issue