mirror of https://github.com/PCSX2/pcsx2.git
GS/HW: Don't use TEXA on 16/24 bit when TCC is set to Vertex alpha
This commit is contained in:
parent
447054a14f
commit
5df0c95e51
|
@ -4190,7 +4190,7 @@ __ri void GSRendererHW::EmulateTextureSampler(const GSTextureCache::Target* rt,
|
||||||
|
|
||||||
// Force a 32 bits access (normally shuffle is done on 16 bits)
|
// Force a 32 bits access (normally shuffle is done on 16 bits)
|
||||||
// m_ps_sel.tex_fmt = 0; // removed as an optimization
|
// m_ps_sel.tex_fmt = 0; // removed as an optimization
|
||||||
m_conf.ps.aem = TEXA.AEM;
|
|
||||||
//ASSERT(tex->m_target);
|
//ASSERT(tex->m_target);
|
||||||
|
|
||||||
// Require a float conversion if the texure is a depth otherwise uses Integral scaling
|
// Require a float conversion if the texure is a depth otherwise uses Integral scaling
|
||||||
|
@ -4200,10 +4200,19 @@ __ri void GSRendererHW::EmulateTextureSampler(const GSTextureCache::Target* rt,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shuffle is a 16 bits format, so aem is always required
|
// Shuffle is a 16 bits format, so aem is always required
|
||||||
|
if (m_cached_ctx.TEX0.TCC)
|
||||||
|
{
|
||||||
|
m_conf.ps.aem = TEXA.AEM;
|
||||||
GSVector4 ta(TEXA & GSVector4i::x000000ff());
|
GSVector4 ta(TEXA & GSVector4i::x000000ff());
|
||||||
ta /= 255.0f;
|
ta /= 255.0f;
|
||||||
m_conf.cb_ps.TA_MaxDepth_Af.x = ta.x;
|
m_conf.cb_ps.TA_MaxDepth_Af.x = ta.x;
|
||||||
m_conf.cb_ps.TA_MaxDepth_Af.y = ta.y;
|
m_conf.cb_ps.TA_MaxDepth_Af.y = ta.y;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_conf.cb_ps.TA_MaxDepth_Af.x = 0;
|
||||||
|
m_conf.cb_ps.TA_MaxDepth_Af.y = 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
// The purpose of texture shuffle is to move color channel. Extra interpolation is likely a bad idea.
|
// The purpose of texture shuffle is to move color channel. Extra interpolation is likely a bad idea.
|
||||||
bilinear &= m_vt.IsLinear();
|
bilinear &= m_vt.IsLinear();
|
||||||
|
|
Loading…
Reference in New Issue