22 October 2017, 16:35 | #41 |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,444
|
Works in windowed mode so far in Windows 10 1607. What tests do you need? It's very responsive but probably on the same level like D3D9 with the best latency settings set.
|
22 October 2017, 17:43 | #42 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Today's winuae.exe 16:29, I get this:
D3D11 free start D3D11 free end Max hardware surface size: 16384x16384 Allocated draw temp buffer (1600*1280*32) = 13093020 D3D11 init start CheckFeatureSupport(DXGI_FEATURE_PRESENT_ALLOW_TEARING) = 00000000 1 IDXGIDevice1 QueryInterface 00000000 Plugin path not found D3D11 free start D3D11 free end D3D11 free start D3D11 free end D3D11 ERROR! I'll make directory plugins/filtershaders/direct3d11 and try again (didn't realise that was essential). |
22 October 2017, 17:49 | #43 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
Works/not work status mainly.. and if someone wants to test windowed variable refresh rate mode. (When WinUAE window has focus, monitor refresh rate matches Amiga refresh rate. This needs Windows 10 Anniversary update. And obviously gsync or freesync hardware)
And someone to find projection calculation that does not use obsolete d3d9x (D3DXVECTOR3 and friends), also calculation that actually results in 1:1 pixel mapping (current does not). Latency stuff comes later when fullscreen works and other dxgi advanced stuff gets implemented. Quote:
|
|
22 October 2017, 18:03 | #44 |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,444
|
You mean the variable sync option? It's smooth and no sign of tearing. A general issue, not related to the selected refresh rate mode: I have to enable the null filter, without i get flickering and smearings when objects are in motion.
Last edited by Retro-Nerd; 22 October 2017 at 18:11. |
22 October 2017, 19:52 | #45 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
OK, working for me now. Both windowed and full-window mode are similar, there's no tearing (i.e. forced vsync). I think my graphics card is FreeSync capable, but my monitor isn't if that's relevant.
Edit: You probably know already, but trying to use low-latency or legacy vsync causes WinUAE to crash. |
22 October 2017, 20:03 | #46 | ||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
Quote:
Combined with gsync/freesync hardware: real refresh rate matches program's frame rate, even when windowed. (My display's OSD shows 100Hz when normal programs have focus, when winuae has focus, monitor's refresh rate changes to 50Hz/60Hz. It would also enable stable windowed black frame injection.) Quote:
EDIT: Vsync is not supported. It crashes by design |
||
22 October 2017, 20:16 | #47 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Now there's tearing in full-window but not in windowed mode. Maybe an AMD graphics driver difference/limitation vs Nvidia?
I couldn't see any off-by-one or other problem with scaling (Highgfx 1024×768 Workbench). In CameraClass_Render() I think d3d->m_rotationX/Y/Z are always 0.0f, so you could maybe try removing the calls to D3DXMatrixRotationYawPitchRoll() and D3DXVec3TransformCoord()? |
22 October 2017, 20:20 | #48 | |||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
Quote:
Quote:
(Note that resize still means complete re-creation of everything) Quote:
|
|||
22 October 2017, 20:24 | #49 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
I found post that told to replace vertex shader with this:
Code:
PixelInputType TextureVertexShader(VertexInputType input) { PixelInputType output; input.position.w = 1.0f; output.position = mul(input.position, projectionMatrix); output.position.z = 0.0f; output.tex = input.tex; return output; } |
22 October 2017, 20:24 | #50 | |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,444
|
Quote:
edit: In Full Window mode the monitor switches to 50Hz. But this happens with D3D9 in Full Window mode too. You probably don't have a Freesync monitor to test it, right? Last edited by Retro-Nerd; 22 October 2017 at 20:44. |
|
22 October 2017, 21:15 | #51 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
In direct3d11.cpp you have:
Code:
UINT presentFlags = d3d->m_tearingSupport ? DXGI_PRESENT_ALLOW_TEARING : 0; // Present as fast as possible. hr = d3d->m_swapChain->Present(0, 0); Code:
hr = d3d->m_swapChain->Present(0, presentFlags); Also Code:
// Set the width and height of the back buffer. swapChainDesc.Width = w_w; swapChainDesc.Height = w_h; ... [initialise various fields of swapChainDesc] ... fsSwapChainDesc.Windowed = isfullscreen() <= 0; Code:
swapChainDesc.Windowed = isfullscreen() <= 0; Last edited by mark_k; 22 October 2017 at 22:11. |
22 October 2017, 22:50 | #52 | ||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
Quote:
Quote:
|
||
26 October 2017, 11:28 | #53 | |
Registered User
Join Date: Jul 2008
Location: Netherlands
Posts: 485
|
Cool
It works for me in (full-)window mode.. Quote:
Great, looking forward to further progress! |
|
26 October 2017, 19:48 | #54 | ||||
Registered User
Join Date: Jun 2010
Location: PL?
Posts: 2,766
|
Quote:
USB latency can be verified for example with help of http://www.thesycon.de/eng/latency_check.shtml Quote:
No reason to not set 800x600 100 - 200fps mode on PC. Plenty of PC CRT's should be able to deal with such signal. Quote:
Quote:
For more accurate measurements oscilloscope can be used (stimulus from button can trig timebase in scope and for example cheap photodiode for example BPW34 can be used as light to electric current converter). |
||||
27 October 2017, 13:59 | #55 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Just updated AMD graphics driver to 17.Q4 from here. Now in D3D11 mode CPU% reads about 650%, FPS about 9.
I'll try a clean driver install to see if that fixes it. If not it looks like AMD broke something since 17.Q3.1. |
28 October 2017, 20:00 | #56 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
D3D11 Fullscreen mode should work now. (Still no filters etc..)
btw, DXGI fullscreen has also some weird issues, I originally used WM_ACTIVATE to detect when fullscreen is lost by calling SetFullscreenState(FALSE, NULL); and then minimizing the window but WM_ACTIVATE can come when execution happens inside Present() call (probably when it is waiting for vsync or similar). Calling any DXGI functions in this situation will cause crash inside Present().. So I had to store only a flag and do the mode change in uae main loop. |
28 October 2017, 20:33 | #57 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Testing with winuae.exe 2017-10-28 18:55, there's a "D3D11 ERROR!" dialog on starting emulation (windowed mode) and it falls back to using DirectDraw.
That's on Windows 10 1709 x64, with the 17.Q4 AMD driver which "works" albeit incredibly slowly as mentioned in post 55 with the earlier 2017-10-22 18:53 winuae.exe Log output: D3D11 free start D3D11 freed3d start D3D11 freed3d end D3D11 free end Max hardware surface size: 16384x16384 Allocated draw temp buffer (1600*1280*32) = 12C01020 D3D11 init start CheckFeatureSupport(DXGI_FEATURE_PRESENT_ALLOW_TEARING) = 00000000 1 D3D11CreateDevice 887a002d D3D11 free start D3D11 freed3d start D3D11 freed3d end D3D11 free end D3D11 free start D3D11 freed3d start D3D11 freed3d end D3D11 free end D3D11 ERROR! DirectDraw displays: There's an MSDN forum thread which could be related. One of the replies there says "Removing creationFlags |= D3D11_CREATE_DEVICE_DEBUG; in DEBUG mode did the trick in my case..." Last edited by mark_k; 28 October 2017 at 20:52. |
28 October 2017, 21:04 | #58 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
|
Updated. I forgot to remove debug flag..
|
28 October 2017, 23:32 | #59 |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,444
|
Yep, Fullscreen works fine and everything is still smooth.
|
29 October 2017, 11:08 | #60 | |
Registered User
Join Date: Jul 2008
Location: Netherlands
Posts: 485
|
Quote:
I noticed a different issue with regards to pixel mapping occuring in both full-screen, full-window and window mode. I noticed when testing on my CRT setup (which uses 1:1 pixel mapping), that the picture is scaled / distorted in single line mode.. This while double line mode is "pixel perfect". This can easily be seen on the corsair crack intro for Turrican 2. At the right bottom it says "corsair" drawn in tiny letters (I can upload the corsair cracked Turrican 2 to the zone if needed). I've attached the screenshots, with two enlarged crops of that section, that clearly show the issue in single line mode. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Photos and/or measurements of Amiga 500 | bLAZER | request.Other | 144 | 16 October 2018 01:40 |
A method for further improving latency (input lag) in FS-UAE | Dr.Venom | support.FS-UAE | 4 | 12 September 2017 16:49 |
Optimizing DirectX apps for low latency input and longer battery life | Dr.Venom | support.WinUAE | 2 | 24 April 2017 09:40 |
What are the measurements of Amiga 1200 case screws | Tallrot | support.Hardware | 9 | 15 June 2016 10:04 |
A1200 and B1230 Voltage Measurements for Dummies? | Jarin | support.Hardware | 2 | 23 January 2014 10:02 |
|
|