gsdx sw: missing texture due to wrong optimization fix

Typical bug, missing/wrong texture on the SW renderer but working fine on the HW renderer

Debugged on ATV Quad Power Racing 2 but I suspect couple of game are impacted

Bug description:
GSdx flatten the Q value of sprite. So m_vt.m_eq.q is true when Q(2N+1) are the same.
Q(2N) values could be random. The fix replaces Q0 by Q1 for the uniform Q value.
This commit is contained in:
Gregory Hainaut 2017-03-05 20:23:59 +01:00
parent 438fbf31cf
commit 0a5f796c33
1 changed files with 3 additions and 1 deletions

View File

@ -1163,7 +1163,9 @@ bool GSRendererSW::GetScanlineGlobalData(SharedData* data)
{ {
gd.sel.fst = 1; gd.sel.fst = 1;
const GSVector4& t = v[data->index[0]].t; // Q is flat on sprite (at least GSdx is based on this Hypothesis). So it means
// that Q0 could be invalid for example ATV Quad Power Racing 2.
const GSVector4& t = v[data->index[primclass == GS_SPRITE_CLASS ? 1 : 0]].t;
if(t.z != 1.0f) if(t.z != 1.0f)
{ {