mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-08-02 22:30:39 +00:00
rsx: Improve FIFO recovery from flip
This commit is contained in:
parent
06017cb14e
commit
9242f16560
1 changed files with 13 additions and 2 deletions
|
@ -117,8 +117,19 @@ namespace rsx
|
||||||
void semaphore_release(thread* rsx, u32 /*_reg*/, u32 arg)
|
void semaphore_release(thread* rsx, u32 /*_reg*/, u32 arg)
|
||||||
{
|
{
|
||||||
rsx->sync();
|
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))
|
if (LIKELY(g_use_rtm))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue