From: Toni Wilen Date: Thu, 1 Jun 2023 17:31:29 +0000 (+0300) Subject: Waiting for blitter hang fix X-Git-Tag: 5.0.0~1 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=07b628ff8c85764d524a4bc2e951ebe5e8b2e8d0;p=francis%2Fwinuae.git Waiting for blitter hang fix --- diff --git a/blitter.cpp b/blitter.cpp index 6764ee6e..d13efecf 100644 --- a/blitter.cpp +++ b/blitter.cpp @@ -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--;