]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Waiting for blitter hang fix
authorToni Wilen <twilen@winuae.net>
Thu, 1 Jun 2023 17:31:29 +0000 (20:31 +0300)
committerToni Wilen <twilen@winuae.net>
Thu, 1 Jun 2023 17:31:29 +0000 (20:31 +0300)
blitter.cpp

index 6764ee6e6a2f162b80b2885fab5e070fb0ab82e6..d13efecfc497890969bf18b3e4dde095f25a32e4 100644 (file)
@@ -1929,9 +1929,21 @@ static bool waitingblits (void)
        }
 
        bool waited = false;
+       int waiting = 0;
+       int vpos_prev = vpos;
        while ((blt_info.blit_main || blt_info.blit_finald) && dmaen (DMA_BLITTER)) {
                waited = true;
                x_do_cycles (8 * CYCLE_UNIT);
+               if (vpos_prev != vpos) {
+                       vpos_prev = vpos;
+                       waiting++;
+                       if (waiting > maxvpos * 5) {
+                               break;
+                       }
+               }
+               if (blitter_cycle_exact && blit_cyclecounter > 0 && !shifter[0] && !shifter[1] && !shifter[2] && !shifter[3]) {
+                       break;
+               }
        }
        if (warned && waited) {
                warned--;