mirror of https://github.com/PCSX2/pcsx2.git
VIF: Always update MTVU thread with Row/Col Changes
Fixes graphical issues in Fatal Frame 2 when swapping to MTVU
This commit is contained in:
parent
9534b2af1d
commit
839b243bf1
|
@ -415,7 +415,7 @@ void VU_Thread::WaitVU()
|
||||||
if (IsDone())
|
if (IsDone())
|
||||||
break;
|
break;
|
||||||
//DevCon.WriteLn("WaitVU()");
|
//DevCon.WriteLn("WaitVU()");
|
||||||
pxAssert(THREAD_VU1);
|
//pxAssert(THREAD_VU1);
|
||||||
KickStart();
|
KickStart();
|
||||||
std::this_thread::yield(); // Give a chance to the MTVU thread to actually start
|
std::this_thread::yield(); // Give a chance to the MTVU thread to actually start
|
||||||
ScopedLock lock(mtxBusy);
|
ScopedLock lock(mtxBusy);
|
||||||
|
@ -463,6 +463,7 @@ void VU_Thread::WriteMicroMem(u32 vu_micro_addr, void* data, u32 size)
|
||||||
Write(size);
|
Write(size);
|
||||||
Write(data, size);
|
Write(data, size);
|
||||||
CommitWritePos();
|
CommitWritePos();
|
||||||
|
KickStart();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VU_Thread::WriteDataMem(u32 vu_data_addr, void* data, u32 size)
|
void VU_Thread::WriteDataMem(u32 vu_data_addr, void* data, u32 size)
|
||||||
|
@ -474,6 +475,7 @@ void VU_Thread::WriteDataMem(u32 vu_data_addr, void* data, u32 size)
|
||||||
Write(size);
|
Write(size);
|
||||||
Write(data, size);
|
Write(data, size);
|
||||||
CommitWritePos();
|
CommitWritePos();
|
||||||
|
KickStart();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VU_Thread::WriteCol(vifStruct& _vif)
|
void VU_Thread::WriteCol(vifStruct& _vif)
|
||||||
|
|
|
@ -537,7 +537,7 @@ vifOp(vifCode_STCol) {
|
||||||
}
|
}
|
||||||
pass2 {
|
pass2 {
|
||||||
u32 ret = _vifCode_STColRow<idx>(data, &vifX.MaskCol._u32[vifX.tag.addr]);
|
u32 ret = _vifCode_STColRow<idx>(data, &vifX.MaskCol._u32[vifX.tag.addr]);
|
||||||
if (idx && THREAD_VU1) { vu1Thread.WriteCol(vifX); }
|
if (idx) { vu1Thread.WriteCol(vifX); }
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
pass3 { VifCodeLog("STCol"); }
|
pass3 { VifCodeLog("STCol"); }
|
||||||
|
@ -554,7 +554,7 @@ vifOp(vifCode_STRow) {
|
||||||
}
|
}
|
||||||
pass2 {
|
pass2 {
|
||||||
u32 ret = _vifCode_STColRow<idx>(data, &vifX.MaskRow._u32[vifX.tag.addr]);
|
u32 ret = _vifCode_STColRow<idx>(data, &vifX.MaskRow._u32[vifX.tag.addr]);
|
||||||
if (idx && THREAD_VU1) { vu1Thread.WriteRow(vifX); }
|
if (idx) { vu1Thread.WriteRow(vifX); }
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
pass3 { VifCodeLog("STRow"); }
|
pass3 { VifCodeLog("STRow"); }
|
||||||
|
|
Loading…
Reference in New Issue