English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 13 December 2017, 23:18   #121
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,935
Excellent! That could be useful in other cases too, e.g. maybe some virtualisation packages provide emulated DX9-class graphics.
mark_k is offline  
AdSense AdSense  
Old 14 December 2017, 19:35   #122
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
It looks like https://github.com/Microsoft/FX11 can be used to load D3D9,10 and 11 .fx "effect/technique" files and they work in D3D11 mode.

So it seems old shader files can be fully (?) supported in D3D11 mode relatively painlessly. Maybe.
Toni Wilen is online now  
Old 16 December 2017, 13:16   #123
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
I converted most of D3D9 mode shader support code to D3D11 but one problem remains: after .fx file has been loaded&parsed (by D3DCompileFromFile) and parsed even more (FX11 CEffectLoader::LoadEffect), number of groups (m_GroupCount) and techniques (m_TechniqueCount) is zero. All the other data seems to be included. I tried multiple .fx files, always same zero technique result.

Code:
			if (strcmpi(ParamDesc.Semantic, "COMBINETECHNIQUE") == 0) {
				pstrTechnique = hParam->AsString();
				pstrTechnique->GetString(&name);
				s->m_CombineTechniqueEffectHandle = effect->GetTechniqueByName(name);
m_CombineTechniqueEffectHandle points to g_InvalidTechnique because it does not exist.. ("name" is correct, contains name of technique)

D3DCompileFromFile() notices technique -lines because renaming it causes error and renaming to for example technique10 returns error (shader model 2 is not level 10 technique compatible).

What goes wrong? I do something incorrectly? Old fx files are not compatible and needs modifications (but using compatibility mode does load it with some unrelated warnings). Or something else?

My only goal is to keep compatibility with D3D9 shaders in D3D11 mode.

EDIT: Stupid effectcompiler ignores d3d9 techniques by design, without any warning messages.. Replacing them with technique10 and vs_2_0 and ps_2_0 with vs_4_0_level_9_1 and ps_4_0_level_9_1 returned non-zero number of techniques.

EDIT2: It works now.

Last edited by Toni Wilen; 17 December 2017 at 16:50.
Toni Wilen is online now  
Old 20 December 2017, 20:46   #124
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,935
Would you be able to add a GUI option to use the WARP device? Just specify D3D_DRIVER_TYPE_WARP instead of D3D_DRIVER_TYPE_HARDWARE to D3D11CreateDevice(). That would be easier (no need to install Windows SDK) than using dxcpl to force WARP use. Could be useful with no or buggy graphics driver, or in a VM.
mark_k is offline  
Old 21 December 2017, 21:20   #125
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
DirectDraw surface mode option killed and replaced with D3D11 hardware/software option.
Toni Wilen is online now  
Old 22 December 2017, 17:35   #126
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,935
Thanks (for the software option, not for killing DirectDraw memory type selection! ). I noticed a little glitch in that, e.g. if you start emulation in D3D9 mode then open setting and change to D3D11. Graphics API Options drop-down is empty.

Is no DD memory selection just a temporary thing? Because it was useful for a couple of reasons:
- Different performance characteristics, the optimal setting for different hardware/OS setups can vary. (I guess that was why the option was added initially?)
- On my system, the point/bilinear control in filter settings is disabled in DirectDraw mode. But I can choose between point and bilinear by changing DD memory type: SystemRAM uses point filtering, whereas DefaultRAM forces bilinear.
mark_k is offline  
Old 22 December 2017, 18:35   #127
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
It is back. Also: buy a new PC.

EDIT: D3D9 software mode is horrible slow (about 5 frames/sec without any custom shaders..), don't ask to add it

Last edited by Toni Wilen; 22 December 2017 at 18:42.
Toni Wilen is online now  
Old 22 December 2017, 20:32   #128
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,935
Quote:
Originally Posted by Toni Wilen View Post
EDIT: D3D9 software mode is horrible slow (about 5 frames/sec without any custom shaders..), don't ask to add it
D3D_DRIVER_TYPE_REFERENCE and D3D_DRIVER_TYPE_SOFTWARE would probably give similar (slow) results in D3D11 mode. (I wonder what difference there is between them?)
mark_k is offline  
Old 29 December 2017, 19:07   #129
Retro-Nerd
Missile Command Champion

Retro-Nerd's Avatar
 
Join Date: Aug 2005
Location: Germany
Age: 46
Posts: 11,049
This device for verifying real input latency looks much more convincing than the high speed camera tests. Which results i still don't believe. Sadly 60Hz only yet, so you can't do proper PAL tests. And course only for the lag of the displays itself and a connected video scaler.

https://www.videogameperfection.com/...tester-review/

Last edited by Retro-Nerd; 29 December 2017 at 19:35.
Retro-Nerd is offline  
Old 12 January 2018, 20:48   #130
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,935
WinUAE seems to remember separate GUI font settings for full-screen and windowed modes. There's no way to change both from the GUI. As far as I can tell, to set both you'd need to set windowed (or full-window) mode, select GUI font, then switch to full-screen mode, press F12 and select GUI font there too.

Anyway, the main point of this post is: in D3D11 full-screen mode, when you press F12 to open the settings window WinUAE uses the full-screen GUI font. However you revert to showing the desktop in that case, so using the windowed/full-window GUI font would make more sense.
mark_k is offline  
Old 12 January 2018, 21:16   #131
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,935
I noticed a tiny issue when you do this:
- Set D3D11 full-screen mode, start emulation.
- Press F12. WinUAE returns to desktop and the settings window opens.
- Click Quit. The screen flashes/blinks black for a moment.

Is that flash/blink due to WinUAE (e.g. maybe it restores D3D11 full-screen mode before immediately exiting), or down to Windows or the graphics driver?
mark_k is offline  
Old 13 January 2018, 11:28   #132
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
Quote:
Originally Posted by mark_k View Post
WinUAE seems to remember separate GUI font settings for full-screen and windowed modes. There's no way to change both from the GUI. As far as I can tell, to set both you'd need to set windowed (or full-window) mode, select GUI font, then switch to full-screen mode, press F12 and select GUI font there too.

Anyway, the main point of this post is: in D3D11 full-screen mode, when you press F12 to open the settings window WinUAE uses the full-screen GUI font. However you revert to showing the desktop in that case, so using the windowed/full-window GUI font would make more sense.
Both options make sense, neither is better.

It is still considered fullscreen mode and GUI should have different config (including position) than normal windowed mode GUI. For example if fullscreen mode is in different monitor (than monitor you use for windowed), you probably want the GUI positioned in same monitor.

Quote:
Originally Posted by mark_k View Post
I noticed a tiny issue when you do this:
- Set D3D11 full-screen mode, start emulation.
- Press F12. WinUAE returns to desktop and the settings window opens.
- Click Quit. The screen flashes/blinks black for a moment.

Is that flash/blink due to WinUAE (e.g. maybe it restores D3D11 full-screen mode before immediately exiting), or down to Windows or the graphics driver?
Fixed. Useless fullscreen mode (when pressing Quit or Restart) was already fixed previously but test got broken later.
Toni Wilen is online now  
Old 19 March 2018, 12:58   #133
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
New rendering method that removes latency almost completely:

https://www.blurbusters.com/blur-bus...or-developers/
Toni Wilen is online now  
Old 19 March 2018, 14:23   #134
Retro-Nerd
Missile Command Champion

Retro-Nerd's Avatar
 
Join Date: Aug 2005
Location: Germany
Age: 46
Posts: 11,049
Too much technics talk for me. But when i read it correctly it should work on 50Hz capable displays too, not only in 60Hz. Is this something you want to try for WinUAE?
Retro-Nerd is offline  
Old 19 March 2018, 15:58   #135
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 384
Quote:
Originally Posted by Toni Wilen View Post
New rendering method that removes latency almost completely:

https://www.blurbusters.com/blur-bus...or-developers/
That's a very exciting development. Who would have ever thought that racing the beam would possibly find its way into emulators like this?

From the forum thread on blurbusters I understand you may be implementing this for WinUAE. We have the reference latency measurements for real Amiga in this thread so it will be really interesting to see how this pans out. Could be the most important development on the input latency front since Low Latency Vsync was implemented!

For others interested there's some more technical discussion on implementation here:

Advanced Post For Emulator Developers
Dr.Venom is offline  
Old 19 March 2018, 18:23   #136
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
Quote:
Originally Posted by Retro-Nerd View Post
Too much technics talk for me. But when i read it correctly it should work on 50Hz capable displays too, not only in 60Hz. Is this something you want to try for WinUAE?
Yes and yes.

Quote:
Originally Posted by Dr.Venom View Post
That's a very exciting development. Who would have ever thought that racing the beam would possibly find its way into emulators like this?
I couldn't believe this kind of simple hack can work so nicely. I'd have expected it to be very unstable and jittery.

It is back to racing the beam like CRTs did, only without actual beam
Toni Wilen is online now  
Old 19 March 2018, 18:42   #137
Retro-Nerd
Missile Command Champion

Retro-Nerd's Avatar
 
Join Date: Aug 2005
Location: Germany
Age: 46
Posts: 11,049
Sounds great. I will do side by side tests then, WinUAE vs. real Amiga 1200+CRT TV. I'm no friend of the scientific mumbo jumbo stuff with high speed cameras and blinking diodes.
Retro-Nerd is offline  
Old 19 March 2018, 21:33   #138
Octopus66
Registered User

 
Join Date: Feb 2016
Location: London
Posts: 72
A very exciting development for the future of WinUAE. Can't wait to see the results.
Octopus66 is offline  
Old 22 March 2018, 14:09   #139
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 384
Quote:
Originally Posted by Toni Wilen View Post
Yes and yes.
It is back to racing the beam like CRTs did, only without actual beam
Just want to say that I'm very much looking forward to this feature.

Would be very nice if the number of slices can be made configurable. Possibly it will scale well from older hardware with integrated CPU (or portables) to high-end with dedicated GPU?

For example that with a setting of two slices it will still work on lower end hardware up to maybe a tenfold of that for very capable hardware. Really curious how well this is going to work..

Also have you thought about a name yet?

Will there be an option in the Vsync pull-down menu called "Beam racing"?
Dr.Venom is offline  
Old 22 March 2018, 14:21   #140
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,175
Quote:
Originally Posted by Dr.Venom View Post
Just want to say that I'm very much looking forward to this feature.

Would be very nice if the number of slices can be made configurable. Possibly it will scale well from older hardware with integrated CPU (or portables) to high-end with dedicated GPU?

For example that with a setting of two slices it will still work on lower end hardware up to maybe a tenfold of that for very capable hardware. Really curious how well this is going to work..

Also have you thought about a name yet?

Will there be an option in the Vsync pull-down menu called "Beam racing"?
Slice count will be configurable. (3 will be minimum, 2 is not going to happen)

I'll just replace low latency vsync behavior, with perhaps new name. I am not going to add yet another option..

Test version will appear very soon.
Toni Wilen is online now  
AdSense AdSense  
 


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

Similar Threads
Thread Thread Starter Forum Replies Last Post
A method for further improving latency (input lag) in FS-UAE Dr.Venom support.FS-UAE 4 12 September 2017 16:49
Photos and/or measurements of Amiga 500 bLAZER request.Other 143 29 June 2017 17:42
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

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 19:39.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.11159 seconds with 15 queries