29 May 2023, 11:42 | #1 |
Moderator
Join Date: Jun 2009
Location: France
Age: 46
Posts: 1,982
|
Blocking dead-end emulation
I found a rather annoying bug. WinUAE completely freezes even the GUI remains accessible. Reset, Restart and Quit have no effect.
The task must be killed to quit WinUAE! - Config Quickstart A1200 non-expanded Best compatibility - Disable CPU Caches in boot menu (really important) - Load Doodlebug - Bug-Bash 2 (1992)(Core)[cr FLT] (In The Zone!) - Skip cracktro - Lockup on Loading - Please wait.. screen Last working version 4.9.1 Test 4.10.0 > NOK Test 4.10.1 > NOK Test 5.0.0b15 > NOK |
29 May 2023, 14:31 | #2 |
Registered User
Join Date: May 2022
Location: Boston / USA
Age: 46
Posts: 38
|
Confirmed, and it appears to be related to a blit that never finishes. Sometimes this happens with the caches on, but less often. 24/32 bit CPU or NTSC/PAL doesn't matter. With caches off, infinite loop always happens so logs aren't written and I can't open the debugger to dump blitter state. With caches on, sometimes it exists the loop, which at least allowed me to get some info from the log.
Infinite loop in blitter.cpp::waitingblits(): Code:
bool waited = false; while ((blt_info.blit_main || blt_info.blit_finald) && dmaen (DMA_BLITTER)) { // * LOOPS FOREVER waited = true; x_do_cycles (8 * CYCLE_UNIT); } Code:
blt_info {...} bltinfo blitzero 0x00000001 int bltadat 0xffff unsigned short bltbdat 0x0000 unsigned short bltcdat 0x0000 unsigned short bltddat 0x0000 unsigned short bltaold 0xffff unsigned short bltahold 0x0000 unsigned short bltbold 0x0000 unsigned short bltbhold 0x0000 unsigned short bltafwm 0xffff unsigned short bltalwm 0xffff unsigned short vblitsize 0x00000010 int hblitsize 0x00000001 int bltamod 0x00000000 int bltbmod 0x00000000 int bltcmod 0x00000000 int bltdmod 0x00000000 int got_cycle 0x00000001 int nasty_cnt 0x00000000 int wait_nasty 0x00000000 int blitter_nasty 0x00000000 int blit_interrupt 0x00000000 int blitter_dangerous_bpl 0x00000000 int blit_main 0x00000001 int blit_finald 0x00000000 int blit_pending 0x00000000 int blit_queued 0x00000004 int finishhpos 0xffffffff int blt_info.blit_finald 0x00000000 int blt_info.blit_main 0x00000001 int waited true bool Code:
2023-05-29 08:22:53 53-085 [15 140=002]: Illegal bget at 00a00000 PC=f8011a 53-085 [15 189=002]: SERIAL: period=372, baud=9600, hsyncs=14, bits=8, PC=f8018a 53-086 [15 188=005]: B-Trap F201 at 00F80CA0 -> 00F80CC0 53-086 [15 134=012]: Illegal lput at 00200000=ffffffff PC=f80266 53-086 [15 025=021]: Illegal wput at 00c3f09a=00003fff PC=f8039e 53-086 [15 026=021]: Illegal wget at 00c3f01c PC=f803a4 53-086 [15 029=021]: Illegal wput at 00c3f09a=ffffbfff PC=f803aa 53-086 [15 031=021]: Illegal wget at 00c3f01c PC=f803b0 53-086 [15 034=021]: Illegal wput at 00c3f09a=00000000 PC=f803b8 53-086 [15 037=021]: Illegal wput at 00c3f09a=fffff2d4 PC=f803c4 53-086 [15 038=021]: Illegal wget at 00c3f09a PC=f803c8 53-365 [32 000-000]: SNDRATE 262.0*227.5*59.826099=3565934.750000 53-365 [32 000-000]: NTSC mode V=59.8261Hz H=15665.4053Hz (228x262+1) IDX=11 (NTSC) D=0 RTG=0/0 57-605 [284 221-176]: BEAMCON0 = 0020, PC=00008660 57-605 [284 057-177]: Illegal instruction: 4afc at 000457E6 -> 000457E8 57-621 [286 000-000]: SNDRATE 313.0*227.0*50.379940=3579545.000000 57-621 [286 000-000]: PAL mode V=50.3799Hz H=15768.9209Hz (227x312+1) IDX=10 (PAL) D=0 RTG=0/0 57-622 [286 000-000]: D3D11 754x574 main texture allocated 57-622 [286 000-000]: POS (0 0 720 568) - (17 3 737 679)[720,676] (0 -54) S=720*568 B=754*574 57-622 [286 000-000]: Buffer 0 size (754*574) Native 57-623 [286 000-000]: RTGFREQ: 312*50.3799 = 15718.5410 / 50.4 = 312 57-623 [286 000-000]: D3D11 Shader and extra textures restored 57-625 [286 000-000]: BEAMCON0=0020 VTOTAL=2047 HTOTAL=255 (0FF) 57-625 [286 000-000]: HS=0000-0000 HB=0000-0000 HC=0000 57-625 [286 000-000]: VS=0000-0000 VB=0001-0000 57-625 [286 000-000]: HSYNCSTART=00F0.0 HSYNCEND=0018.0 57-625 [286 000-000]: Lines=26-313 57-625 [286 000-000]: PC=00045f7c COP=0002b844 2023-05-29 08:23:03 03-138 [563 011-261]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (11 261) 03-138 [563 011-261]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 03-138 [563 011-261]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 07-192 [563 076-263]: waiting_blits detected PC=0000c346 09-847 [564 000-001]: ShowCursor 0 09-863 [564 115-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (115 260) 09-863 [564 115-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-863 [564 115-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 09-883 [565 113-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (113 260) 09-883 [565 113-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-883 [565 113-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 09-902 [566 113-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (113 260) 09-902 [566 113-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-902 [566 113-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 09-922 [567 114-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (114 260) 09-922 [567 114-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-922 [567 114-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 09-942 [568 114-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (114 260) 09-942 [568 114-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-942 [568 114-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 09-962 [569 114-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (114 260) 09-962 [569 114-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-962 [569 114-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 09-982 [570 112-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (112 260) 09-982 [570 112-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 09-982 [570 112-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-002 [571 046-278]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (46 278) 10-002 [571 046-278]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-002 [571 046-278]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-021 [572 115-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (115 260) 10-021 [572 115-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-021 [572 115-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-041 [573 115-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (115 260) 10-041 [573 115-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-041 [573 115-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-061 [574 115-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (115 260) 10-061 [574 115-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-061 [574 115-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-081 [575 113-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (113 260) 10-081 [575 113-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-081 [575 113-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-101 [576 112-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (112 260) 10-101 [576 112-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-101 [576 112-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-121 [577 145-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (145 260) 10-121 [577 145-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-121 [577 145-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-140 [578 116-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (116 260) 10-140 [578 116-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-140 [578 116-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-160 [579 114-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (114 260) 10-160 [579 114-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-160 [579 114-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-180 [580 118-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (118 260) 10-180 [580 118-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-180 [580 118-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 10-200 [581 112-260]: BLITTER: BLTCON0 0100 -> 0ffe BLTCON1 0000 -> 0000 PC=0000c2da (112 260) 10-200 [581 112-260]: Blitter shifter bits 0: CH=---D (0-0-0-0 O=0) PC=0000c2da 10-200 [581 112-260]: Blitter shifter bits 0: CH=ABCD (0-0-0-0 O=0) PC=0000c2da 14-230 [785 000-000]: SETSYSTIME |
29 May 2023, 16:48 | #3 |
Old retro god.
Join Date: Apr 2002
Location: Northolt, West London
Age: 62
Posts: 857
|
Nice to see a core group of very technical folks to aid Toni with some problem solving. Great work people.
|
29 May 2023, 17:57 | #4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,510
|
Blitter gets stuck because blitter register is written while blitter is active, probably because 68020 is too fast and code is stupid (few NOPs instead of blit wait!).
I'll fix it by allowing "Wait for Blitter" option to exit if blitter hung or it waited too long (multiple frames). |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Integrating x87 FPU emulation from PCem into Bridgeboard emulation | superfrog | request.UAE Wishlist | 2 | 31 July 2020 16:39 |
Blocking of WinUAE | Crashdisk | support.WinUAE | 3 | 01 January 2020 19:19 |
A1200 is dead, Rasp-Pi 3 - emulation - worth of it? | wlcina | support.Hardware | 32 | 31 July 2017 17:49 |
Non-blocking CD-ROM archive decompression | Leandro Jardim | support.WinUAE | 1 | 07 November 2016 08:24 |
Is emulation/retro gaming coming to an end? | mrbob2 | Retrogaming General Discussion | 73 | 03 February 2008 12:18 |
|
|