Further fixes to framebuffer read hangs in Voodoo - fixes International Rally Championship.
This commit is contained in:
parent
685e2460d4
commit
a44be6194c
1 changed files with 7 additions and 1 deletions
|
|
@ -3404,8 +3404,13 @@ static uint32_t voodoo_readl(uint32_t addr, void *p)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SST_lfbMode:
|
case SST_lfbMode:
|
||||||
|
voodoo->flush = 1;
|
||||||
while (!FIFO_EMPTY)
|
while (!FIFO_EMPTY)
|
||||||
thread_wait_event(voodoo->not_full_event, -1);
|
{
|
||||||
|
wake_render_thread(voodoo);
|
||||||
|
thread_wait_event(voodoo->not_full_event, 1);
|
||||||
|
}
|
||||||
|
voodoo->flush = 0;
|
||||||
|
|
||||||
temp = voodoo->lfbMode;
|
temp = voodoo->lfbMode;
|
||||||
break;
|
break;
|
||||||
|
|
@ -3573,6 +3578,7 @@ static void render_thread(void *param)
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
thread_set_event(voodoo->not_full_event);
|
||||||
thread_wait_event(voodoo->wake_render_thread, -1);
|
thread_wait_event(voodoo->wake_render_thread, -1);
|
||||||
thread_reset_event(voodoo->wake_render_thread);
|
thread_reset_event(voodoo->wake_render_thread);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue