]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Do not wait for blitter if blit size is too large.
authorToni Wilen <twilen@winuae.net>
Sun, 10 Dec 2017 16:52:30 +0000 (18:52 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 10 Dec 2017 16:52:30 +0000 (18:52 +0200)
blitter.cpp

index 1b032a4e7e415119b197b158ab84ec48cb912f9d..914dbaed4ad1ad0c0441796ddd5b380bc2130000 100644 (file)
@@ -1469,6 +1469,15 @@ static bool waitingblits (void)
 {
        static int warned = 10;
 
+       // crazy large blit size? don't wait.. (Vital / Mystic)
+       if (blt_info.vblitsize * blt_info.hblitsize * 2 > 2 * 1024 * 1024) {
+               if (warned) {
+                       warned--;
+                       write_log(_T("Crazy waiting_blits detected PC=%08x W=%d H=%d\n"), M68K_GETPC, blt_info.vblitsize, blt_info.hblitsize);
+               }
+               return false;
+       }
+
        bool waited = false;
        while (bltstate != BLT_done && dmaen (DMA_BLITTER)) {
                waited = true;