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:
SarahW 2020-10-09 17:20:25 +01:00
commit d254f41817

View file

@ -698,7 +698,10 @@ static uint32_t banshee_status(banshee_t *banshee)
int fifo_size = 0xffff - fifo_entries;
int swap_count = voodoo->swap_count;
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;
ret = 0;