07 March 2012, 22:11 | #1 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
Automatic scaling issues
I tested WinUAE 2.4.0b20 in Windows XP SP3 (VirtualBox VM) and noticed some issues with automatic scaling. This doesn't seem specific to the beta as 2.3.3 showed pretty much the same issues.
1680x1050 Windows desktop. Aspect Ratio Correction disabled. Emulated Amiga NTSC with ECS Agnus running OS 3.1, PAL high-res laced Workbench screen, 640x560 pixels (I increased vertical text overscan). Using a checkerboard WB background pattern which shows up any scaling artifacts clearly. The first two issues below I saw in Windows XP in VirtualBox, but not when running under Wine. Could this be due to a bug in the VirtualBox graphics driver? Can anyone reproduce on native Windows? 1. With Null filter, No scaling, the Amiga display is shrunk vertically by 31 or 32 rows. Rows of pixels are missing regularly all the way down the screen. Changing the filter to none, the Workbench is shown 1:1 without missing pixels. 2. With Null filter again and enabling Integer scaling, the display is clearly being scaled by a non-integer amount. The next issues happen for me in both XP/VirtualBox and Wine. 3. Enable Automatic scaling in Filter Settings. The Workbench display "jitters". The effect is hard to describe, but it's as if parts are jumping up and down. If I run a program which opens a non-laced screen the problem stops, until I drag the new screen down revealing the Workbench behind, then the whole screen starts jittering again. The problem only seems to happen when the display is interlaced. (Dragging a non-laced screen down to reveal another non-laced screen there is no jittering.) If I change PAL overscan back to the default (so 640x512 WB), the screen does not jitter. 4. This applies to both the 640x560 and normal 640x512 screen: With the WB screen the only one open, dragging it down causes it to expand vertically, with the top of the screen remaining at the top of the emulation window, until the display is fully-expanded, after which it does move down as you continue dragging. 5. If instead of Automatic scaling I select Automatic resize in Filter Settings, when the screen would be jittering there's just a black screen and shortly after that WinUAE crashes. Dump file for that attached if it's any help. |
08 March 2012, 10:38 | #2 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
1-2: logs needed. D3D and DirectDraw? Usually it is VM problem, they really seem to hate dynamic surfaces/textures (whole big surface is updated 50fps using the CPU).
3: probably a bug. 4: it is normal, autoscale only calculates (and sometimes guesses) where display starts and ends using custom chipset register values. It does not know (and can't know) nothing about dragging, scrolling etc.. |
08 March 2012, 10:59 | #3 |
Registered User
Join Date: May 2001
Location: ?
Posts: 19,654
|
I have been trying to get a nice picturr with the filters too. I tried for a scale that would exactly double the resolution, but you can easily see in wb patterns that the pixels are deformed. I perhaps am not making it right, first time i mess with the shaders, but i's like to get an image that maintains pixel proportion but is as big as my display allows.
|
08 March 2012, 11:20 | #4 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Quote:
Integer scaling option or 1x/2x.. select boxes should always enable pixel perfect mapping without blurring (unless DirectDraw..) (Not really on-topic..) |
|
08 March 2012, 15:55 | #5 | |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
Quote:
Strangely, when testing again I couldn't reproduce the "integer scaling not scaling by integer amount" issue in VirtualBox. |
|
08 March 2012, 16:28 | #6 |
Registered User
Join Date: May 2001
Location: ?
Posts: 19,654
|
|
09 March 2012, 15:43 | #7 | |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
An update on one of the points I mentioned before...
Quote:
When I set scaling to Integer scaling (still with Direct3D gfx API), there are no missing lines. |
|
10 March 2012, 21:42 | #8 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Quote:
|
|
11 March 2012, 10:39 | #9 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
Attached is an archive of prefs settings for overscan, screenmode and wbpattern. (Note: due to the EAB forum only accepting certain file extensions, I added a .zip suffix to the filename. You'll need to remove that before unpacking the gzipped tar archive.)
Take a Workbench 3.1 disk. Copy the prefs files from the attached archive into Prefs/Env-Archive/Sys, then boot from the disk. Hopefully that should be sufficient to show the problem. I see the jittering when Workbench loads. If it's relevant the emulation settings I used were PAL, ECS Agnus, immediate blitter, A2000 chipset extra. |
11 March 2012, 12:42 | #10 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Screen is still stable.
|
11 March 2012, 14:13 | #11 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
I've confirmed the jittering effect on native Windows Vista too. It happens with both WinUAE 2.3.3 and 2.4.0b21. Can you see the problem using the attached settings file?
Since it's not allowed to attach a modified Workbench disk here, I've created a patch file so you can recreate the disk image I'm using for testing. Starting with a Workbench 3.1 ADF file (MD5: 1fb61921fcaebe926d78257ff658431b), you can use GPatch to create the modified WB3.1 disk. Get GPatch from Aminet: http://aminet.net/util/misc/gpatch.lha (Amiga binaries), http://aminet.net/misc/emu/gpatchix.tgz (Unix/Linux binaries), or http://aminet.net/misc/emu/gpatchwin.zip (Windows binaries). |
11 March 2012, 16:56 | #12 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Thanks.
I thought interlace always started from even line but it wasn't true (for some reason I couldn't duplicate this by testing different overscan settings). Now autoscale only checks long fields if interlace is active. |
26 March 2012, 20:35 | #13 | |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
Quote:
With the emulated Amiga set to NTSC, ECS Agnus, using a 640x560 PAL overscan Workbench I see the missing rows of pixels. However, with the same config except the emulated Amiga set to PAL, with the same 640x560 PAL Workbench there are no missing rows. The attached logs and config file (created running under Wine) probably won't help with figuring out this issue. But they were created by running WinUAE, loading a config file then starting emulation (NTSC Amiga). After workbench loads showing missing rows of pixels, bring up GUI, set Amiga to PAL and reset. Boot to Workbench with no missing lines. |
|
27 March 2012, 13:43 | #14 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
I've been able to reproduce the missing lines issue in native Windows Vista too.
Attached are config files which should be identical apart from the PAL/NTSC setting. The NTSC config shows missing lines, the other one doesn't. To show the problem: load the NTSC config file. Boot a WB 3.1 floppy. Run the PAL monitor driver from the 3.1 Storage disk, then run screenmode prefs and set Workbench to PAL interlaced. You can use WBPattern prefs to set a checkerboard WB backdrop pattern so the missing lines are easily visible. There are also missing lines when you set Workbench to PAL non-interlaced, but (at least with a checkerboard WB pattern) they are more visible with an interlaced WB. Toni: I can send a bootable floppy image which will hopefully allow you to reproduce the problem if that would be easier. You could also use the "jitter test" ADF if you copy the PAL monitor driver to DEVS:Monitors. Edit: I've attached a WBPattern.prefs file which shows the missing rows more clearly (alternate horizontal lines are white then black in the pattern). Edit 2: So the issue seems to be this: With an NTSC emulated Amiga showing a PAL display [so ECS Agnus, full ECS, or AGA needed], when using Null filter + No scaling the output image is shrunk in height by 32 pixels. Last edited by mark_k; 27 March 2012 at 21:44. |
28 March 2012, 13:33 | #15 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,349
|
Here are another couple of screenshots taken in Windows Vista.
In both cases the emulated Amiga is showing a 640x560 PAL Workbench. The one with missing lines (and shifted-up display position with black space at the bottom) is an NTSC machine, the correct-looking one is a PAL machine. The same missing lines issue is present with both Direct3D and DirectDraw graphics API modes. |
29 March 2012, 16:58 | #16 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Quote:
Technically it is correct but as you have noticed, it may not look too good |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Pre-Scaling before Bilinear Scaling? | rsn8887 | request.UAE Wishlist | 6 | 05 September 2015 19:13 |
Off-by-one problem with 2x scaling | mark_k | support.WinUAE | 0 | 05 February 2013 22:41 |
automatic scaling font distortion | Falcon Flight | support.WinUAE | 4 | 05 February 2010 18:25 |
Automatic scaling testing (from beta thread) | TCD | support.WinUAE | 59 | 24 April 2009 19:40 |
REQ: Automatic resolution change ; automatic resolution detection | Borg_Number_One | request.UAE Wishlist | 3 | 21 August 2004 14:16 |
|
|