rsx: Recover from invalid writes to CELL_GCM_NV4097_SET_INDEX_ARRAY_DMA

Also: Trigger a FIFO recovery when encountering an invalid method.
This commit is contained in:
Eladash 2019-10-09 20:45:24 +03:00 committed by kd-11
parent 2eaf5df60b
commit 06017cb14e
7 changed files with 47 additions and 6 deletions

View file

@ -2340,6 +2340,15 @@ namespace rsx
fifo_ctrl->sync_get();
}
void thread::recover_fifo()
{
// Error. Should reset the queue
fifo_ctrl->set_get(restore_point);
fifo_ret_addr = saved_fifo_ret;
std::this_thread::sleep_for(1ms);
invalid_command_interrupt_raised = false;
}
void thread::read_barrier(u32 memory_address, u32 memory_range)
{
zcull_ctrl->read_barrier(this, memory_address, memory_range);