mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
gc: wait after each submit
some games hates use synchronization primitives, make them happy with slow shader compilation
This commit is contained in:
parent
73397a0fea
commit
2dbbabedd3
|
|
@ -92,7 +92,7 @@ static orbis::ErrorCode gc_ioctl(orbis::File *file, std::uint64_t request,
|
|||
{args->cmds + i * 4, 4});
|
||||
}
|
||||
|
||||
// gpu.waitForIdle();
|
||||
gpu.waitForIdle();
|
||||
} else {
|
||||
return orbis::ErrorCode::BUSY;
|
||||
}
|
||||
|
|
@ -138,6 +138,7 @@ static orbis::ErrorCode gc_ioctl(orbis::File *file, std::uint64_t request,
|
|||
// ORBIS_LOG_ERROR("submit and write eop", args->eopValue,
|
||||
// args->waitFlag);
|
||||
gpu.submitWriteEop(gcFile->gfxPipe, args->waitFlag, args->eopValue);
|
||||
gpu.waitForIdle();
|
||||
} else {
|
||||
return orbis::ErrorCode::BUSY;
|
||||
}
|
||||
|
|
@ -251,6 +252,7 @@ static orbis::ErrorCode gc_ioctl(orbis::File *file, std::uint64_t request,
|
|||
if (auto gpu = amdgpu::DeviceCtl{orbis::g_context.gpuDevice}) {
|
||||
gpu.submitComputeQueue(args->meId, args->pipeId, args->queueId,
|
||||
args->nextStartOffsetInDw);
|
||||
gpu.waitForIdle();
|
||||
} else {
|
||||
return orbis::ErrorCode::BUSY;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue