If Voodoo FIFO is full and FIFO thread is waiting for swap to complete, process swap immediately. Fixes hangs in Carmageddon and TOCA 2.
This commit is contained in:
parent
a2f96effad
commit
17865d84bc
1 changed files with 1 additions and 1 deletions
|
|
@ -2681,7 +2681,7 @@ static void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p)
|
||||||
{
|
{
|
||||||
thread_wait_event(voodoo->wake_fifo_thread, -1);
|
thread_wait_event(voodoo->wake_fifo_thread, -1);
|
||||||
thread_reset_event(voodoo->wake_fifo_thread);
|
thread_reset_event(voodoo->wake_fifo_thread);
|
||||||
if (voodoo->swap_pending && voodoo->flush)
|
if ((voodoo->swap_pending && voodoo->flush) || FIFO_ENTRIES == 65536)
|
||||||
{
|
{
|
||||||
/*Main thread is waiting for FIFO to empty, so skip vsync wait and just swap*/
|
/*Main thread is waiting for FIFO to empty, so skip vsync wait and just swap*/
|
||||||
memset(voodoo->dirty_line, 1, 1024);
|
memset(voodoo->dirty_line, 1, 1024);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue