mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Sync the GPU thread on list/draw sync.
Otherwise, the CPU gets ahead (inside the frame) and games get confused. I don't think there's any good workaround to avoid this.
This commit is contained in:
parent
408e570469
commit
abc396cbe1
1 changed files with 6 additions and 0 deletions
|
@ -48,6 +48,9 @@ void GPUCommon::PopDLQueue() {
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GPUCommon::DrawSync(int mode) {
|
u32 GPUCommon::DrawSync(int mode) {
|
||||||
|
// Sync first, because the CPU is usually faster than the emulated GPU.
|
||||||
|
SyncThread();
|
||||||
|
|
||||||
easy_guard guard(listLock);
|
easy_guard guard(listLock);
|
||||||
if (mode < 0 || mode > 1)
|
if (mode < 0 || mode > 1)
|
||||||
return SCE_KERNEL_ERROR_INVALID_MODE;
|
return SCE_KERNEL_ERROR_INVALID_MODE;
|
||||||
|
@ -92,6 +95,9 @@ void GPUCommon::CheckDrawSync() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int GPUCommon::ListSync(int listid, int mode) {
|
int GPUCommon::ListSync(int listid, int mode) {
|
||||||
|
// Sync first, because the CPU is usually faster than the emulated GPU.
|
||||||
|
SyncThread();
|
||||||
|
|
||||||
easy_guard guard(listLock);
|
easy_guard guard(listLock);
|
||||||
if (listid < 0 || listid >= DisplayListMaxCount)
|
if (listid < 0 || listid >= DisplayListMaxCount)
|
||||||
return SCE_KERNEL_ERROR_INVALID_ID;
|
return SCE_KERNEL_ERROR_INVALID_ID;
|
||||||
|
|
Loading…
Add table
Reference in a new issue