dgVoodoo 2 for DirectX 11

General information and assistance with dgVoodoo.

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-10-29 @ 23:02

galneon wrote:It's astonishing the rate and severity in which Windows 10 updates break things. This new system of constant minor version "upgrades" is rattling, coming from years and years of infrequent service packs. It sucks that Microsoft is now a mobile company.

Commandos 2 broken too (or so it seems).

Edit: Commandos 3 is working well.
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-10-30 @ 21:10

lowenz wrote:
galneon wrote:It's astonishing the rate and severity in which Windows 10 updates break things. This new system of constant minor version "upgrades" is rattling, coming from years and years of infrequent service packs. It sucks that Microsoft is now a mobile company.

Commandos 2 broken too (or so it seems).

Edit: Commandos 3 is working well.

Solved.

The culprit was Destination Paris 1.44.

So no problem with Win10 ;)
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-11-01 @ 20:49

I've just updated to Fall Creators Update so I can only have a look now what's going on.
Dege
Oldbie
 
Posts: 1219
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-11-01 @ 20:51

Thanks! Splinter Cell (1) minimizes by itself for no reason @menu screen. Pandora Tomorrow runs with no problems.
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-11-01 @ 21:24

What I can see is no matter what application I start through dgVoodoo, all my maximized windows on the desktop becomes invisible for the mouse input after I quit. They are at their place but mouse input goes through them as if they weren't there and a minimize/maximize action is need by clicking their icon on the tray. :dead: :dead:
I sometimes experienced such a symptom on earlier builds of Windows 10, but it always came after I detached and re-attached one of my monitors and Windows re-arranged desktop windows automatically to the visible displays.

I have a feeling something is really fucked up in FCU around setting full screen display mode through DXGI (I guess the 2 problems have the same root).
Also, for some games, the game window even loses its active state, it can be clearly seen when they are run in windowed mode.
That's why Splinter Cell is minimized by dgVoodoo (there are entries about it in the log from the spec-release build). It can be workarounded by disabling 'Disable Alt-Enter...' in the CPL.
:dead:
Dege
Oldbie
 
Posts: 1219
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-11-01 @ 21:30

.....but in this way the widescreen mod (->ThirteenAG) can't run correctly. The game get windowed :p
And yes, the window is inactive and you see the "cross" cursor of the Unreal Engine, not the arrow one of the game.
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-11-02 @ 06:44

Debugging Splinter Cell, turns out that the WM_ACTIVATE message causing deactivating the window comes from DXGI when dgVoodoo calls Present. I've found this:

Code: Select all
5EF6A220 FF 15 F8 40 FA 5E    call        dword ptr [__imp__GetForegroundWindow@0 (5EFA40F8h)] 
5EF6A226 3B 86 C0 00 00 00    cmp         eax,dword ptr [esi+0C0h] 
5EF6A22C 75 23                jne         ATL::CComObject<CDXGILightweightDevice>::Release+0F931h (5EF6A251h) 
5EF6A22E FF 15 FC 40 FA 5E    call        dword ptr [__imp__GetDesktopWindow@0 (5EFA40FCh)]                                    <----
5EF6A234 50                   push        eax 
5EF6A235 FF 15 00 41 FA 5E    call        dword ptr [__imp__SetForegroundWindow@4 (5EFA4100h)]                                 <---- WTF?? Setting the desktop window as the foreground????? (we run on this path)
5EF6A23B 85 C0                test        eax,eax 
5EF6A23D 75 12                jne         ATL::CComObject<CDXGILightweightDevice>::Release+0F931h (5EF6A251h) 
5EF6A23F FF 15 40 20 FA 5E    call        dword ptr [__imp__GetLastError@0 (5EFA2040h)] 
5EF6A245 51                   push        ecx 
5EF6A246 68 10 B9 F3 5E       push        offset string "SetForegroundWindow failed to sw"... (5EF3B910h)                        <---- Even there is an error message: "SetForegroundWindow failed to switch away from the app"
5EF6A24B 50                   push        eax 
5EF6A24C E8 6F DB FD FF       call        CModule::RecordJournalImpl (5EF47DC0h) 
5EF6A251 6A 00                push        0 
5EF6A253 6A 00                push        0 
5EF6A255 8B CE                mov         ecx,esi 
5EF6A257 E8 71 C1 FE FF       call        CDXGISwapChain::ScenarioEnterOrLeaveFullscreen (5EF563CDh) 


I must check it out how it worked on an earlier Windows build. The problem maybe is DXGI doesn't detect the game window as the current foreground one for some reason and it tries to switch away from the application.

Update: Yes, this code sequence is missing from Win10 Creators Update. DXGI::Present seems to have a lot of changes in FCU.
When Splinter Cell starts up then the foreground window is its hidden log window even on older Windows builds, so at least in message handling there is no compatibility break, old DXGI just didn't checked against this.
New one does, so when message pumping starts up at the game menu screen then the deactivate message sent by SetForegroundWindow gets processed immediately and the window gets minimalized.

What really worrying about that code sequence is that child windows cannot be foreground ones, only their top-level parents, as far as I know. So, this means DX11 cannot be used for rendering into dialog child windows anymore.
I hope I'm wrong and Microsoft didn't think it all seriously, I'll check it out when got home.
Dege
Oldbie
 
Posts: 1219
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-11-03 @ 13:35

I debugged IDXGISwapChain::Present with Splinter Cell, on Windows FCU and CU to see the difference.
Every single call to Present checks if the rendering window is occluded by others, and if it is, then it forces the rendering window into windowed mode. That's how it worked so far.

Shortly, the difference:
- FCU now checks if the rendering windows is FULLY occluded, and if it is, then it not only pushes it back to windowed mode but 'switches away' from the application (the code snippet I posted).
- The occlusion detection algorhytm seems to be the same for both CU and FCU but on FCU (without going into the details) it finds that the rendering window occludes ITSELF :dead: , fully occludes, so it switches away from the game. On CU, this never happened.

Unfortunately it's an issue that I cannot workaround or 'fix'. I reported it in an MS developer forum, only they can fix it all.
So, currently I cannot recommend dgVoodoo for Fall Creators Update because this issue affects way more game than Splinter Cell. I may roll back to Creators Update temporarily. :blah:
Dege
Oldbie
 
Posts: 1219
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby galneon » 2017-11-03 @ 16:51

Very worrying. I recommend others who care about legacy compatibility switch to the business update branch and defer "feature" updates for 365 days (the maximum officially allowed). Every new "feature" update breaks stuff and the best we can do is give them time to fix it (or dual boot Windows 7).

This won't affect security updates.
galneon
Newbie
 
Posts: 54
Joined: 2004-4-15 @ 19:31

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-11-03 @ 17:11

Just wow.....the importance of re-testing everything :p
Last edited by lowenz on 2017-11-03 @ 17:15, edited 1 time in total.
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

Re: dgVoodoo 2 for DirectX 11

Postby DosFreak » 2017-11-03 @ 17:14

If everyone deferred updates then they wouldn't notice issues like this and it would be much harder to identify when things break. The better idea would be to keep a VM (probably not likely unless you are doing pass-thru) or another PC handy that always uses the latest builds of Windows 10 for testing purposes.
User avatar
DosFreak
l33t++
 
Posts: 9713
Joined: 2002-6-30 @ 16:35
Location: Your Head

Re: dgVoodoo 2 for DirectX 11

Postby AWesker » 2017-11-03 @ 23:07

Is there anyone able to run Enemy Zero?

I noticed there's an old message in this thread refering to the game.

Silanda wrote:Enemy Zero: Works in DDraw mode, D3D mode is selectable (although it's listed as D3D secondary rather than primary) but doesn't seem to work and reverts to DDraw.


That problem was still in version 2.53, but in the current version 2.54 you are finally able to select the D3D (and in my case it's listed as primary, not secondary, was also in 2.53 anyway), but this game combines CG/FMV and 3D/polygon modes, and while it seems to start fine in the first CG when you awake in your room, when you get out of it and go the hall (which is 3D, in this game all rooms are CG and halls are 3D) then the game crashes. I tried it with both DDraw and D3D modes and it crashes with "uncontrolled win32 exception in EZERO.exe [4320]" message and nothing else, so I don't know what's related to.
AWesker
Newbie
 
Posts: 3
Joined: 2017-2-10 @ 00:09

Re: dgVoodoo 2 for DirectX 11

Postby galneon » 2017-11-04 @ 01:26

DosFreak wrote:If everyone deferred updates then they wouldn't notice issues like this and it would be much harder to identify when things break. The better idea would be to keep a VM (probably not likely unless you are doing pass-thru) or another PC handy that always uses the latest builds of Windows 10 for testing purposes.


Under no circumstances would everyone defer updates. My suggestion is unlikely to convince even two people to do it. :P Developers (like Dege) will typically be on the latest builds anyway, and the most productive testers as well. Deferring feature updates for a year is practical advice considering most people here aren't going to care about the latest "features" like Paint3D or whatever bullshit "XBox features" are being added--it's not going to doom the wrapper if some choose to take it to avoid the hassle.
galneon
Newbie
 
Posts: 54
Joined: 2004-4-15 @ 19:31

Re: dgVoodoo 2 for DirectX 11

Postby ZellSF » 2017-11-04 @ 12:51

AWesker wrote:Is there anyone able to run Enemy Zero?

I noticed there's an old message in this thread refering to the game.

Silanda wrote:Enemy Zero: Works in DDraw mode, D3D mode is selectable (although it's listed as D3D secondary rather than primary) but doesn't seem to work and reverts to DDraw.


That problem was still in version 2.53, but in the current version 2.54 you are finally able to select the D3D (and in my case it's listed as primary, not secondary, was also in 2.53 anyway), but this game combines CG/FMV and 3D/polygon modes, and while it seems to start fine in the first CG when you awake in your room, when you get out of it and go the hall (which is 3D, in this game all rooms are CG and halls are 3D) then the game crashes. I tried it with both DDraw and D3D modes and it crashes with "uncontrolled win32 exception in EZERO.exe [4320]" message and nothing else, so I don't know what's related to.

Works fine here. So I can't give much suggestions. Run it in admin mode and try another copy of the game (corrupted game data from both old discs and bad warez copies are common with old games). Resolution forcing also works which is nice since the game offers no resolution options:
EZERO_2017_11_04_13_44_33_102.jpg
PCem's ddraw renderer works. Sort of. It crashes a lot, but then again PCem does that for me natively too.

DOSBox says "Could not initialize video: DDraw didn't use SDL surface memory".

Of course neither particularly need dgVoodoo2. I was just trying to find the optimal way to play DOS games and did some experimenting.
ZellSF
Oldbie
 
Posts: 1071
Joined: 2006-1-01 @ 18:19

Re: dgVoodoo 2 for DirectX 11

Postby ZellSF » 2017-11-04 @ 13:06

So the Fall Creator's update thing... Does running games with issues in windowed mode work? How many games are affected? Do you have any ideas what to do about it if Microsoft doesn't patch it?
ZellSF
Oldbie
 
Posts: 1071
Joined: 2006-1-01 @ 18:19

Re: dgVoodoo 2 for DirectX 11

Postby Myloch » 2017-11-04 @ 14:29

I think that in usual Microsoft logic, things like directdraw are long dead and don't care a sxxt about making them run correctly anymore.
"Gamer & collector for passion, I firmly believe in the preservation and the diffusion of old/rare software, against all personal egoisms"
User avatar
Myloch
Member
 
Posts: 425
Joined: 2007-4-18 @ 22:13

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-11-04 @ 14:31

I didn't do extensive testing with many games, but according to the MS DXGI code only full screen scenarios are affected, windowed mode should work fine.
And currently I don't have any idea how to workaround this issue, which is related to the proxy window used hidden by MS for fullscreen state, deep in DXGI.
I gave an idea a go, just a quick try, but didn't work.
Dege
Oldbie
 
Posts: 1219
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-11-04 @ 15:16

Dege, how about implement borderless (windowed) fullscreen mode in dgVoodoo2? (and the forcing too)
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

Re: dgVoodoo 2 for DirectX 11

Postby willow » 2017-11-04 @ 15:31

Dege wrote:I didn't do extensive testing with many games, but according to the MS DXGI code only full screen scenarios are affected, windowed mode should work fine.
And currently I don't have any idea how to workaround this issue, which is related to the proxy window used hidden by MS for fullscreen state, deep in DXGI.
I gave an idea a go, just a quick try, but didn't work.

Have you seen this new option in compatibility ?
Image
Maybe check this option solve the problem

With fall creators update, dirext9 games can't turn on gsync in fullscreenmode. When i check this option gsync works in fullscreen mode like before.
willow
Newbie
 
Posts: 93
Joined: 2012-1-07 @ 22:37

Re: dgVoodoo 2 for DirectX 11

Postby lowenz » 2017-11-04 @ 16:46

Splinter Cell exhibits the same behaviour, no matter that option value :(
lowenz
Oldbie
 
Posts: 951
Joined: 2014-12-20 @ 01:30

PreviousNext

Return to dgVoodoo General

Who is online

Users browsing this forum: lowenz and 2 guests