Skip to content

Commit

Permalink
gc: wait after each submit
Browse files Browse the repository at this point in the history
some games hates use synchronization primitives, make them happy with slow shader compilation
  • Loading branch information
DHrpcs3 committed Nov 1, 2024
1 parent 73397a0 commit 2dbbabe
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion rpcsx/iodev/gc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit 2dbbabe

Please sign in to comment.