Skip to content

Commit

Permalink
rsx: Improve FIFO recovery from flip
Browse files Browse the repository at this point in the history
  • Loading branch information
elad335 committed Oct 10, 2019
1 parent 2b9f335 commit 0b090be
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions rpcs3/Emu/RSX/rsx_methods.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,19 @@ namespace rsx
void semaphore_release(thread* rsx, u32 /*_reg*/, u32 arg)
{
rsx->sync();
rsx->sync_point_request = true;
const u32 addr = get_address(method_registers.semaphore_offset_406e(), method_registers.semaphore_context_dma_406e());

const u32 offset = method_registers.semaphore_offset_406e();
const u32 ctxt = method_registers.semaphore_context_dma_406e();

// By avoiding doing this on flip's semaphore release
// We allow last gcm's registers reset to occur in case of a crash
const bool is_flip_sema = (offset == 0x10 && ctxt == CELL_GCM_CONTEXT_DMA_SEMAPHORE_R);
if (!is_flip_sema)
{
rsx->sync_point_request = true;
}

const u32 addr = get_address(offset, ctxt);

if (LIKELY(g_use_rtm))
{
Expand Down

0 comments on commit 0b090be

Please sign in to comment.