English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 24 November 2017, 16:09   #141
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by Amiga68k View Post
WinUAE (Public Beta 8, 2017.11.20) fixes the crash I experienced after selecting Direct3D 11.

winuae64.7z isn't updated I noticed?
winuae64.7z is only updated if there is some 64-bit only fix. Alpha versions are always 32-bit only.

Quote:
Originally Posted by Saghalie View Post
B8 is not working for me with D3D11 - it keeps crashing. Not sure if my configuration is all wrong - it works with D3D9 though.
http://www.winuae.net/files/b/winuae.7z should fix it? (It looks like it was above mentioned RTG HW sprite issue)
Toni Wilen is offline  
Old 24 November 2017, 22:41   #142
Saghalie
Registered User
 
Saghalie's Avatar
 
Join Date: Nov 2014
Location: FT Lewis, WA
Posts: 374
TONI: http://www.winuae.net/files/b/winuae.7z should fix it? (It looks like it was above mentioned RTG HW sprite issue)

Yes it worked. But it is not the 64-bit version. Sorry, I should have mentioned that I was using the 64-bit version that I'm having issues with.
Saghalie is offline  
Old 25 November 2017, 11:22   #143
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
- D3D11 fullscreen mode + GUI can work strangely. (GUI may open on desktop with black background, exiting GUI may not restore fullscreen or cause mode to become minimized)
Toni, this morning I did some tests with latest winuae.7z with full screen mode. I guess this may have been touched upon before, but just to be sure.

I noticed that if I change buffer method between double and triple (or vice versa) after calling GUI, the screen is normally restored without minimization bug.

So in D3D11 fullscreen two scenarios:

A) call GUI and exit GUI in full screen mode will always minimize WinUAE screen on my setup, pressing icon in taskbar will restore screen

B) call GUI, change buffer method (double to triple buffer or vice versa), exit GUI and screen is correctly restored (no minimization)

Both scenario's can be repeated with same results.

I guess the difference between them is that in scenario B the screen is completely re-initialized?

Last edited by Dr.Venom; 25 November 2017 at 11:35. Reason: Edit: emphasized that it's about switching between double and triple buffer
Dr.Venom is offline  
Old 25 November 2017, 15:45   #144
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Same thing happens in both cases. This is something that probably isn't officially supported (gdi window on top of DXGI fullscreen surface), it is also timing sensitive (due to window messaging being async) and I can randomly duplicate it but it is far too rare.

So, so far it is simply unsupported.
Toni Wilen is offline  
Old 26 November 2017, 11:26   #145
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
Same thing happens in both cases. This is something that probably isn't officially supported (gdi window on top of DXGI fullscreen surface), it is also timing sensitive (due to window messaging being async) and I can randomly duplicate it but it is far too rare.

So, so far it is simply unsupported.
You may have touched upon these already, but maybe the answer on this page is of some help, see quote below:

Quote:
I actually fought this problem a lot during last week - but I've got it all working! Here is a list of things you should know/do to make it all work:
Keep the following in mind when using this method:
You must create the surface by using the D3D11_RESOURCE_MISC_GDI_COMPATIBLE flag for a surface or by using the DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE flag for swap chains, otherwise this method fails.
•You must release the device and call the IDXGISurface1::ReleaseDC method before you issue any new Direct3D commands.
•This method fails if an outstanding DC has already been created by this method.
•The format for the surface or swap chain must be DXGI_FORMAT_B8G8R8A8_UNORM_SRGB or DXGI_FORMAT_B8G8R8A8_UNORM.
•On GetDC, the render target in the output merger of the Direct3D pipeline is unbound from the surface. You must call the ID3D11DeviceContext::OMSetRenderTargets method on the device prior to Direct3D rendering after GDI rendering.
•Prior to resizing buffers you must release all outstanding DCs.
  • If you're going to use it in the back buffer, remember to re-bind render target after you've called ReleaseDC. It is not neccessary to manually unbind RT before calling GetDC as this method does that for you.
  • You can not use any Direct3D drawing between GetDC() and ReleaseDC() calls as the surface is excusively locked out by DXGI for GDI. However you can mix GDI and D3D rendering provided that you call GetDC()/ReleaseDC() every time you need to use GDI, before moving on to D3D.
  • This last bit may sounds easy, but you'd be surprised how many developers fall into this issue - when you draw with GDI on the back buffer, remember that this is the back buffer, not a framebuffer, so in order to actually see what you've drawn, you have to re-bind RT to OM and call swapChain->Present() method so the backbuffer will become a framebuffer and its contents will be displayed on the screen.
I also noted that "Alt-Enter" doesn't really work (it leaves a black screen). According to this tutorial Lesson 4: Going Fullscreen, they make it "as simple" as setting the following flag:
Quote:
3. Set DirectX to automatically switch when Alt-Enter is used.
This step is quite simple. All we need to do is add a flag to the scd struct. The rest is handled for us. We can put this flag in the Flags member of the DXGI_SWAP_CHAIN_DESC.
void initD3D(HWND hWnd)
{
DXGI_SWAP_CHAIN_DESC scd; // create a struct to hold various swap chain information

ZeroMemory(&scd, sizeof(DXGI_SWAP_CHAIN_DESC)); // clear out the struct for use

scd.BufferCount = 1; // one back buffer
scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; // use 32-bit color
scd.BufferDesc.Width = SCREEN_WIDTH; // set the back buffer width
scd.BufferDesc.Height = SCREEN_HEIGHT; // set the back buffer height
scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; // how swap chain is to be used
scd.OutputWindow = hWnd; // the window to be used
scd.SampleDesc.Count = 1; // how many multisamples
scd.SampleDesc.Quality = 0; // multisample quality level
scd.Windowed = TRUE; // windowed/full-screen mode
scd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; // allow full-screen switching

// ...
Dr.Venom is offline  
Old 26 November 2017, 11:37   #146
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
GDI_COMPATIBLE makes no difference, it is only needed if you need to modify or read the surface using GDI functions (Which is not needed, there are better and faster ways).

ALT-Enter is obviously disabled because Amiga has both Alt and Enter keys!
Toni Wilen is offline  
Old 26 November 2017, 12:53   #147
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
GDI_COMPATIBLE is now temporary added, if it makes a difference with other windows versions or something..
Toni Wilen is offline  
Old 26 November 2017, 13:40   #148
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
GDI_COMPATIBLE is now temporary added, if it makes a difference with other windows versions or something..
Makes no difference indeed, at least for me (tested on Win 10 + NVidia setup).

Quote:
Originally Posted by Toni Wilen View Post
ALT-Enter is obviously disabled because Amiga has both Alt and Enter keys!
Ah of course . In its current form it does do something in D3D11 mode though.. Pressing Left Alt + Enter makes the screen go black, pressing it again restores screen. So it seems the combination is not entirely disabled?
Dr.Venom is offline  
Old 26 November 2017, 17:17   #149
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by Dr.Venom View Post
Ah of course . In its current form it does do something in D3D11 mode though.. Pressing Left Alt + Enter makes the screen go black, pressing it again restores screen. So it seems the combination is not entirely disabled?
Fixed. This needed some extra code that was not mentioned in documentation. (swapChain->GetParent() and then use returned IDXGIFactory to call MakeWindowAssociation method)
Toni Wilen is offline  
Old 27 November 2017, 10:47   #150
Amiga68k
Registered User
 
Amiga68k's Avatar
 
Join Date: Oct 2017
Location: Amsterdam
Posts: 231
Something goes wrong here with the latest beta when selecting RTG Full-window mode in combination with D3D11 (issue not seen in D3D9 mode).

Problem: Full-window mode only shows the bottom half of the RTG screen on the top half of the display. The mouse disappears when going all the way up, so I assume something is there

Steps:
1. I startup the WinUAE GUI
2. I load my configuration
3. Change settings to D3D11
4. Start (Windowed)
5. F12 -> Change Windowed to Full-window

Log entry from WinUAE Beta 7 after doing step 5:

Code:
D3D11 free start
D3D11 freed3d start
D3D11 freed3d end
D3D11 free end
Notify error code = 80004005 (-2147467259)
Notify error code = 80004005 (-2147467259)
D3D11 free start
D3D11 freed3d start
D3D11 freed3d end
D3D11 free end
D3D11 init start
D3D11 freed3d start
D3D11 freed3d end
D3D11 resize 1920 1080, 1920 1080
D3D11 initd3d start
D3D11 initd3d end
D3D11 init end
Buffer size (1920*1080) RTG
NTSC mode V=59.2804Hz H=15590.7473Hz (227x262+1) IDX=-1 (<?>) D=0 RTG=1/1
RTGFREQ: 262*59.2804 = 15531.4666 / 59.3 = 262
Log entry from WinUAE (Public Beta 8, 2017.11.26):

Code:
WM_SIZE
D3D11_resize 0 0 0 (0)
D3D11 init start
D3D11 Device: Intel(R) HD Graphics 4600 [\\.\DISPLAY1] (0,0,1920,1080)
D3D11_resize 0 0 0 (0)
D3D11 freed3d start
D3D11 freed3d end
D3D11 resize 1920 1080, 1920 1080
D3D11 initd3d start
D3D11 Shader error: error X3501: 'PS_PostPlain': entrypoint not found
Trying built-in shader.
D3D11 Shader error: error X3501: 'PS_PostMask': entrypoint not found
Trying built-in shader.
D3D11 Shader error: error X3501: 'PS_PostAlpha': entrypoint not found
Trying built-in shader.
-> -960.000000 540.000000 960.000000 -540.000000 1.000000 1.000000
D3D11 initd3d end
POS (0 0 1920 1080) - (0 0 1365 768)[1365,768] (-170 0)
447 -156 1 1
-> -721.582336 978.750000 1979.076782 -540.000000 1.406593 1.406250
D3D11 init end
POS (0 0 1920 1080) - (0 0 1365 768)[1365,768] (-170 0)
447 -156 1 1
-> -721.582336 978.750000 1979.076782 -540.000000 1.406593 1.406250
Buffer size (1920*1080) RTG
NTSC mode V=59.2804Hz H=15590.7473Hz (227x262+1) IDX=-1 (<?>) D=0 RTG=1/1
RTGFREQ: 262*59.2804 = 15531.4666 / 59.3 = 262
What I find strange in above entries is the appearance of 1365 768. Not sure if it is related, but that is very close to the resolution of my Primary display (laptop; 1366x768 where width is actually 1365.3 I read somewhere) which is turned off (all output is shown on the external display)
Amiga68k is offline  
Old 27 November 2017, 18:06   #151
mutetus
Registered User
 
Join Date: May 2015
Location: Helsinki
Posts: 12
Not that it's any help, just saying, that the 64-bit version still seems to crash randomly for me. First issue was with some shell extension crashing every time I selected a file from the open file dialog, but I got rid of that. Now it's crashing somewhere else after doing this and that couple of times, I'll try to find out where if I ever get the 64-bit build to compile, got 32 working already.
mutetus is offline  
Old 28 November 2017, 17:15   #152
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by Amiga68k View Post
Something goes wrong here with the latest beta when selecting RTG Full-window mode in combination with D3D11 (issue not seen in D3D9 mode).
Attach complete logs (winuaebootlog.txt and winuaelog.txt) and config file using current winuae.7z, thanks.
Toni Wilen is offline  
Old 28 November 2017, 19:37   #153
mutetus
Registered User
 
Join Date: May 2015
Location: Helsinki
Posts: 12
Managed to compile the 64-bit build after all, crashed immediately after trying to open the file dialog, went to the linker configuration and removed zeros from stack reserve and stack commit size, success.
mutetus is offline  
Old 28 November 2017, 19:53   #154
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
So thats were the shell extension issue really comes from. I thought it was bug in some extensions because I made extremely small test program that only calls the Windows file dialog but unfortunately I used same project settings..

It must have been some old MSVC weirdness because I have never touched those linker stack values. I saw them but assumed zero means not set or default...
Toni Wilen is offline  
Old 28 November 2017, 20:10   #155
mutetus
Registered User
 
Join Date: May 2015
Location: Helsinki
Posts: 12
Yeah never guessed the cause until finally saw the stack overflow myself. 0 is definitely 0, empty is default. Now why they have been automatically set to 0, beats me as well.
mutetus is offline  
Old 29 November 2017, 09:27   #156
Amiga68k
Registered User
 
Amiga68k's Avatar
 
Join Date: Oct 2017
Location: Amsterdam
Posts: 231
Quote:
Originally Posted by Toni Wilen View Post
Attach complete logs (winuaebootlog.txt and winuaelog.txt) and config file using current winuae.7z, thanks.
Please find the requested files attached. Steps are the same:

1. I startup the WinUAE GUI
2. I load my configuration
3. Change settings to D3D11
4. Start (Windowed)
5. F12 -> Change Windowed to Full-window

Latest version used (WinUAE (Public Beta 8, 2017.11.28)).
Attached Files
File Type: uae OS3.9_Amiga4000_68060_Picasso96.uae (13.8 KB, 75 views)
File Type: txt winuaebootlog.txt (16.6 KB, 90 views)
File Type: txt winuaelog.txt (52.0 KB, 77 views)
Amiga68k is offline  
Old 29 November 2017, 20:11   #157
mutetus
Registered User
 
Join Date: May 2015
Location: Helsinki
Posts: 12
I'm feeling quite optimistic here. I've been trying different games for hours without any problems, whereas with the previous 64-bit builds, including the latest, I've had frequent crashes with no particular reason. Also got the uaeunp project finally built, switched the configuration type from application to static lib
mutetus is offline  
Old 02 December 2017, 17:49   #158
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
http://www.winuae.net/files/b/winuae_3600b9.7z
http://www.winuae.net/files/b/winuae64_3600b9.7z

Beta 9:

- Added workaround that disables RTG HW sprite if enabled in D3D11 mode. (HW sprite is not yet supported in D3D11)
- Fixed D3D11 position calculation bug that for example caused full window RTG to be partially off-screen.
- 16-bit color depth is now supported in D3D11 mode.
- D3D11 to D3D9 fall back didn't work correctly, it tried D3D11 twice and then selected DirectDraw.
- READ CD-DA (MSF) really works now.
- KS 1.2 autoboot didn't work without extra reset if UAE autoconfig board wasn't first board in autoconfig chain.
- Fixed AdIDE emulation, AdIDE data line "scrambling" got broken in b1.
- Added untested ATAPI tape drive support.
- Selecting index.tape directly (instead of selecting directory where it is located) will also mount the tape in directory mode.
- Tape emulation ignored new index file if tape was first written, rewound and read in same session.
- Tape emulation accuracy improvements.
- Added Toshiba Gary to Advanced chipset, if ticked, 0xe80000 to 0xf7ffff has chip ram access speed.
- Added ROM is slow (Toshiba Gary without transistor fix), KS ROM space also has chip ram access speed.
- 68030 data cache emulation didn't work correctly if write was cached and address was odd. (Bug found by Hatari developers)
- ECS Denise BPLCON2 ECS-only bits were masked unless AGA was selected, ECS-specific KILLEHB linetoscr was not implemented. Seven Seas/Andromeda now shows correctly corrupted palette if ECS Denise.
- IDE FORMAT TRACK fixed, it needs to transfer single block of data (and then toss it away). Fixes Gigatron Arriba installer.
- Emulated Gigatron Arriba IDE controller. ROM dump not available.
- 64-bit only bad stack linker setting correctded, caused random crashes and caused file dialogs to crash if certain shell extensions were installed. (Thanks mutetus!)
Toni Wilen is offline  
Old 02 December 2017, 18:37   #159
DualC
Registered User
 
Join Date: Nov 2017
Location: Rimbo
Posts: 19
I get crashes in beta9 when i switch to dx11 it crash directly when i press start.

Attaching logfiles.
Attached Files
File Type: dmp winuae_x64_3.6.0_b9_2017.12.02_18.29.03.dmp (68.4 KB, 81 views)
File Type: txt winuaebootlog.txt (11.3 KB, 84 views)
File Type: txt winuaelog.txt (13.0 KB, 86 views)

Last edited by DH; 03 December 2017 at 16:39. Reason: Deleted Direct Signature
DualC is offline  
Old 02 December 2017, 18:50   #160
Amiga68k
Registered User
 
Amiga68k's Avatar
 
Join Date: Oct 2017
Location: Amsterdam
Posts: 231
Quote:
Originally Posted by Toni Wilen View Post
Beta 9:

- Fixed D3D11 position calculation bug that for example caused full window RTG to be partially off-screen.
Confirmed
Amiga68k is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
WinUAE Development. Better than the real thing...yet? antiriad76 support.WinUAE 6 18 May 2017 14:25

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 03:43.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.11822 seconds with 16 queries