15 May 2010, 09:12 | #1 |
The Spanish Songstress
Join Date: Jul 2009
Location: Finland
Posts: 114
|
D3D windowed / full window switch -> black emulation screen
Now, first of all, I think this "bug" (it may very well not be a bug in winuae) is completely dependant on host OS/HW/drivers configuration, which in my case a "teeny bit" old XP x64 + ATI 4850 with Catalyst 10.4 (connected to CRT(main) & LCD TV(secondary)).
Second, this is not always even replicatable - most "reliable" way seems to be to start in windowed mode D3D and then switch to full window. I haven't figured out what exactly triggers this. Third, this did not happen in previous versions of winuae (now running v2.1.0) - but I'm not 100% sure if I tried with the same display drivers. Earlier versions had different issue where there was garbage in the bottom of the screen (where the LEDs are) after switching modes. I attached a simple "Host config" settings on which I have been able to replicate this - Amiga HW/SW config does not matter (well, RTG might) and I've used just the quickstarts to test this. The logs contain a single "failed" session. Started windowed -> immediately black screen -> changed to directdraw (ok display) -> changed to d3d (now ok here too) What happens is that when mode is changed between full window / windowed, all I get is black screen, with the overlaid "LEDS" visible only. Switching temporarily to directdraw mode and back restores the display. Note, I get this only when filter is "none" or "null filter" + overlay image is "none". Also, there's a different kind of corruption (sorry, no screenshot) when I change from some image overlay (like "Real_scanlines.png") to "none" - usually half of the screen (from upper left corner to lower right) turns black. Fixed again by temporarily switching to directdraw and back. The tricky part is, that when the corruption happens, not even restarting winuae fixes it (like what I replicated in the log files), which completely baffles me. Only by going the full cycle through directdraw helps. It is like something gets stored dynamically depending on the display config and gets deleted when I change to directdraw display, but I don't see it in configs at least. If I'm the only one with this issue and Toni can't replicate - forget it, as I have a workaround for it too. Nice to get the workaround "documented" here, though, and would be nice if directdraw won't be completely removed in some future version, as that's the workaround. |
15 May 2010, 09:26 | #2 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
Quote:
|
|
15 May 2010, 10:05 | #3 | |
The Spanish Songstress
Join Date: Jul 2009
Location: Finland
Posts: 114
|
Quote:
Would you still mind peeking at at the logs if there's anything telling what goes wrong (or something significant missing)? ...I have a little trouble deciphering them myself without looking at the code too (and would like to avoid that for now). Couldn't see anything obvious errors myself (not complaining about anything, PS/VS seems to be detected correctly etc etc). Edit: Just noticed winuae now has a git repository - I'll see if I can get this to compile now (been many, many years since I did it with winuae before) and if so, I'll try some D3D trickery (like flushing GPU after Present() or just resetting after mode change) if I can make this go away. (my D3D is a bit rusty, to say the least, so lets see what happens ) (that is, if I can make head or tails of your code to begin with - win32gui.cpp looks fun ) Last edited by Maccara; 15 May 2010 at 12:01. |
|
15 May 2010, 15:00 | #4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,570
|
WinUAE does not store anything interesting between sessions (there is something in registry but it is mainly for GUI stuff)
"Problem" with D3D is that it does not report any errors between BeginScene() and EndScene() in release mode (for performance, errors = missing textures or black screen), need debug build and D3D debug libraries installed to see possible errors. |
15 May 2010, 15:17 | #5 | |
The Spanish Songstress
Join Date: Jul 2009
Location: Finland
Posts: 114
|
Quote:
I have to update my dxsdk, enable the debug dlls (and check some other libs while I'm at it) and try to track this error on my system. Maybe there's a simple workaround which could be included in "official" code (if I manage to implement something which isn't a complete hack, I'll post a patch). Other than that, I'm probably the only one with this error, so no point in wasting anyone else's (your's ) time and preventing doing more interesting stuff. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Black screen in full screen but not full window Winuae all versions | Mixter | support.WinUAE | 18 | 30 June 2013 00:45 |
Black screen with 50 hz D3D not(DD) in WinUAE 2.3.3 from 60 hz setup in Win 7 | Mixter | support.WinUAE | 7 | 26 February 2012 19:19 |
On the fly full screen <-> full window switching | NewDeli | request.UAE Wishlist | 19 | 22 May 2010 17:40 |
Screen stays black in windowed mode with 32-bit desktop | h121 | support.WinUAE | 4 | 24 August 2005 08:36 |
Windowed/Full Screen Display Dialogs | Quickbeam | support.WinUAE | 3 | 09 July 2002 11:58 |
|
|