Banshee/Voodoo 3 status returns busy when FIFO thread is busy, regardless
of command/cmdfifo/render thread status. Fixes some 2D races where drivers start to write to framebuffer while (final) 2D blit command is still running.
This commit is contained in:
parent
086287809b
commit
d254f41817
1 changed files with 4 additions and 1 deletions
|
|
@ -698,7 +698,10 @@ static uint32_t banshee_status(banshee_t *banshee)
|
||||||
int fifo_size = 0xffff - fifo_entries;
|
int fifo_size = 0xffff - fifo_entries;
|
||||||
int swap_count = voodoo->swap_count;
|
int swap_count = voodoo->swap_count;
|
||||||
int written = voodoo->cmd_written + voodoo->cmd_written_fifo;
|
int written = voodoo->cmd_written + voodoo->cmd_written_fifo;
|
||||||
int busy = (written - voodoo->cmd_read) || (voodoo->cmdfifo_depth_rd != voodoo->cmdfifo_depth_wr) || voodoo->render_voodoo_busy[0] || voodoo->render_voodoo_busy[1];
|
int busy = (written - voodoo->cmd_read) || (voodoo->cmdfifo_depth_rd != voodoo->cmdfifo_depth_wr) ||
|
||||||
|
voodoo->render_voodoo_busy[0] || voodoo->render_voodoo_busy[1] ||
|
||||||
|
voodoo->render_voodoo_busy[2] || voodoo->render_voodoo_busy[3] ||
|
||||||
|
voodoo->voodoo_busy;
|
||||||
uint32_t ret;
|
uint32_t ret;
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue