Skip to content

Commit

Permalink
narco-terror: disable immediate mfc transfers
Browse files Browse the repository at this point in the history
TODO: this should be done via an mfc cmds latency simulation in debug settings. ie latency == 0 == immediate transfers, otherwise queue the command and execute by an mfc thread, and wait for latency period to be over.
  • Loading branch information
elad335 committed Oct 29, 2018
1 parent 2058d02 commit 76f8946
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions rpcs3/Emu/Cell/SPUThread.cpp
Expand Up @@ -1166,7 +1166,7 @@ bool spu_thread::process_mfc_cmd(spu_mfc_cmd args)
return false;
}

thread_ctrl::wait();
do_mfc(true);
}

spu::scheduler::concurrent_execution_watchdog watchdog(*this);
Expand Down Expand Up @@ -1366,7 +1366,7 @@ bool spu_thread::process_mfc_cmd(spu_mfc_cmd args)
{
if (LIKELY(args.size <= 0x4000))
{
if (LIKELY(do_dma_check(args)))
if (0 && LIKELY(do_dma_check(args)))
{
if (LIKELY(args.size))
{
Expand Down Expand Up @@ -1401,7 +1401,7 @@ bool spu_thread::process_mfc_cmd(spu_mfc_cmd args)
{
if (LIKELY(args.size <= 0x4000))
{
if (LIKELY(do_dma_check(args) && !(ch_stall_mask & 1u << args.tag)))
if (0 && LIKELY(do_dma_check(args) && !(ch_stall_mask & 1u << args.tag)))
{
if (LIKELY(do_list_transfer(args)))
{
Expand Down Expand Up @@ -1917,6 +1917,7 @@ bool spu_thread::set_ch_value(u32 ch, u32 value)

if (ch_tag_upd)
{
do_mfc(true);
const u32 completed = get_mfc_completed();

if (completed && ch_tag_upd == 1)
Expand All @@ -1943,6 +1944,7 @@ bool spu_thread::set_ch_value(u32 ch, u32 value)

const u32 completed = get_mfc_completed();

do_mfc(true);
if (!value)
{
ch_tag_upd = 0;
Expand Down

0 comments on commit 76f8946

Please sign in to comment.