VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 280 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

A bit off-topic, but you might be talking about different problems entirely:

1: Whatever lowenz is talking about, which I've never noticed since I don't play games at above my display's refresh rate (120hz). Can confirm that it actually happens though. I'm assuming it locks to refresh rate anyway; I haven't noticed any games locking to 60hz (then again, if I did I would just assume it was the game and not a compatibility issue).

2: Some software is locked to 30 FPS in Windows 8, there are two different problems and workarounds. First is NoGDIHWAcceleration ACT flag. Second is DXPrimaryEmulation ACT flag with -DisableMaxWindowedMode parameter.

3: 8-bit and 16-bit color software has performance (and compatibility) issues in Windows 8. That's because it's no longer supported and is run through an emulation layer. Solutions include using something that does that emulation faster than Windows (D3DWindower, DXWnd) or using wrappers (DXGL, dgVoodoo2, ddhack, cnc-ddraw, etc).

On-topic again: Please say you have any idea about my problem Dege 🙁. My last 60hz monitor is gone soon.

Reply 281 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

In my experiments the infamous "Windows 8.1 slowdown" with pre-DX8 games isn't a real slowdown at all 'cause it only happens in fullscreen mode.
If you can set the windowed mode (with Unreal Engine games it's simple, there's a convenient option in the engine configuration file) there's no more slowdown, and yes, without using any other tool.
The image before is taken from unmodded Clive Barker Undying, running in a borderless 1920x1080 window and you can see the 120 FPS (engine hardcoded limit IMHO). In fullscreen mode I can barely touch 27-28 FPS.

Or you can play flawlessy in fullscreen mode with dgvoodoo2, thanks to DX11 wrapping (no fullscreen problem with DX>=8).

Reply 282 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

I was saying what you discovered is just one out of three problems with slowdowns in Windows 8.

Try running 8-bit or 16-bit color software in a window. You won't get good results. Undying automatically falls back to 32-bit btw.

Try running software that doesn't support window mode in window mode. You still won't get good results.

Reply 283 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie
ZellSF wrote:

Undying automatically falls back to 32-bit btw.

You're right, it reverts to 32 automatically. But I get 150 FPS too, so the FPS value isn't locked to refresh rate factors.

But the exact cause of fullscreen mode slowdown(and I run all games capable of 32 bit colors @32, so the color depth isn't a variable) is still unknown?

Reply 284 of 3949, by Silanda

User metadata
Rank Member
Rank
Member
ZellSF wrote:

2: Some software is locked to 30 FPS in Windows 8, there are two different problems and workarounds. First is NoGDIHWAcceleration ACT flag.

Thank you, thank you, a thousand times thank you! I've been overlooking that flag and it fixes numerous games/programs for me.

Reply 286 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Maaaaaan, this wrapper is an awesome piece of tweaking software!
And your little jewel solves this problem too (on Windows 8.1 with fullscreen games)! http://forums.guru3d.com/showthread.php ... ost4945748

Thanks!
Great news!! 😎

Is it possible (in future releases) to show the original DX version of the game engine? (DX5/DX6/DX7)

I think it would be possible, but only if the game uses D3D. Detecting DX version is not so evident because "DX version" means only version of interface used to access a DX object but more than one versions of interfaces can be used simultaneously for the same object.
The only pivot point is the d3d device object. This object allows excatly one interface for access (D3D 3/5/6/7).

Why is there a 60 FPS cap without forcing the VSync (and with no VSync in game too)? With UT99 and original DX renderer (+ your wrapper) I can't go past 60 FPS

The only way I (thought could be) found is setting 'UseVSync=true' in the UnrealTournament.ini in the [D3DDrv.D3DRenderDevice] section but it works for me. It alters between 250 and 1100 FPS depending on the current scene. (The game runs faster by native DX 😒 )
A Win8 issue again?

Or you can play flawlessy in fullscreen mode with dgvoodoo2, thanks to DX11 wrapping (no fullscreen problem with DX>=8).

So that's why I heard complaints from others using Win8. I was made sure that there is no significant difference between Win7 and 8 in the respect of the graphics drivers and architecture but I'm changing my standpoint.

Initialization problem (Win 7 SP1 64 and Win 8.1 64) for 3DMark2000 1.1 and dgVoodoo 2.4 (DX):

I'm aware of that. I tried the wrapper with 3DMark 99 and got the same. The problem is that 3DMark's D3D renderer tries to initialize D3D from its DllMain entry point 😵 and DX11 (detecting that) refuses to work inside dgVoodoo, that's why the error msg comes. Old native DX works from within DllMain so its not a problem there but as it is well-known, doing anything 'serious' inside DllMain is a bad programming practice. I have no idea how could that be workarounded, for the moment.

Reply 287 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

On-topic again: Please say you have any idea about my problem Dege 🙁. My last 60hz monitor is gone soon.

dgVoodoo's DDraw always reports the refreshrate the desktop runs at, to the applications, so I guess all games should use that because it's common that refresh rate is set to 0 (default) or the one they queried from DDraw.

1. Could you see what refresh rates are supported for your monitor, through dgVoodooSetup?
2. Have you any problems running Glide games (they usually use 60Hz if not overriden in the setup)?
3. What FPS Fraps shows if you runs a DX game with forced vsync?

Reply 288 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie
Dege wrote:

The only way I (thought could be) found is setting 'UseVSync=true' in the UnrealTournament.ini in the [D3DDrv.D3DRenderDevice] section but it works for me. It alters between 250 and 1100 FPS depending on the current scene. (The game runs faster by native DX 😒 )
A Win8 issue again?

I obviously set to FALSE that setting in Undying (to test :p)
No, it's not Win8 again this time, this happens on Win 7 too, with dgVoodoo ON and in fullscreen mode! With dgVoodoo ON but in windowed mode the FPS is *not* capped to 60 (I reach the maximum: 200).

Reply 289 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Hmm.. Testing with UT99, it turned out that UseVsync = True means 'vsync off' and UseVsync = False means 'vsync on', for some reasons (False is the default). Right the opposite of I would expect.

How do you set windowed mode? Through dgVoodoo or the game config (somehow)?
(I can only test UT right now)

Reply 290 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie
Dege wrote:

Hmm.. Testing with UT99, it turned out that UseVsync = True means 'vsync off' and UseVsync = False means 'vsync on', for some reasons (False is the default). Right the opposite of I would expect.

How do you set windowed mode? Through dgVoodoo or the game config (somehow)?
(I can only test UT right now)

Config files! (StartupFullscreen variable in WinDrv.WindowsClient section)
I'll test UT99 (GOTY edition) with original DX renderer (is it D3D6 or D3D7?) and I'll report here 😁

Last edited by lowenz on 2014-12-23, 21:28. Edited 1 time in total.

Reply 291 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

Update: you're right, Dege! For some reasons on modern systems (tested with Win7SP1 64 bit) Unreal Engine D3D setting "UseVSync" bit is swapped, 🤣!
Tested with Undying and UT99 original D3D renderer, "True" actually is interpreted as "False" and viceversa!

OK, so that issue isn't a dgVoodoo issue at all!

Reply 292 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

So that's why I heard complaints from others using Win8. I was made sure that there is no significant difference between Win7 and 8 in the respect of the graphics drivers and architecture but I'm changing my standpoint.

Dege, here's a ddraw generic fix for Windows 8 and Windows 8.1: http://www.blitzbasic.com/Community/post.php? … 77&post=1202630

Can you implement the fix (Windows 8/8.1 only) in future versions of dgVoodoo?

Reply 293 of 3949, by teleguy

User metadata
Rank Member
Rank
Member
Dege wrote:

I'm aware of that. I tried the wrapper with 3DMark 99 and got the same. The problem is that 3DMark's D3D renderer tries to initialize D3D from its DllMain entry point 😵 and DX11 (detecting that) refuses to work inside dgVoodoo, that's why the error msg comes. Old native DX works from within DllMain so its not a problem there but as it is well-known, doing anything 'serious' inside DllMain is a bad programming practice. I have no idea how could that be workarounded, for the moment.

Don't know if it helps but 3dMark 2000 works fine in Wine for Windows.

Reply 294 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t
Dege wrote:
dgVoodoo's DDraw always reports the refreshrate the desktop runs at, to the applications, so I guess all games should use that b […]
Show full quote

On-topic again: Please say you have any idea about my problem Dege 🙁. My last 60hz monitor is gone soon.

dgVoodoo's DDraw always reports the refreshrate the desktop runs at, to the applications, so I guess all games should use that because it's common that refresh rate is set to 0 (default) or the one they queried from DDraw.

1. Could you see what refresh rates are supported for your monitor, through dgVoodooSetup?
2. Have you any problems running Glide games (they usually use 60Hz if not overriden in the setup)?
3. What FPS Fraps shows if you runs a DX game with forced vsync?

1: only place in dgVoodoo setup that shows resolutions and refresh rates is "Resolution" in the "Glide" tab. According to that setting, my 120hz monitor does not support resolutions or refresh rates at all: Unenforced is the only option. Replace 120hz monitor with 60hz monitor and I get lots of options.

2: Outlaws and Undying (Glide renders) work, but they don't really ask dgVoodoo2 for supported resolutions: they have a set list of resolutions to choose from.

3: 120 FPS.

lowenz wrote:

So that's why I heard complaints from others using Win8. I was made sure that there is no significant difference between Win7 and 8 in the respect of the graphics drivers and architecture but I'm changing my standpoint.

Dege, here's a ddraw generic fix for Windows 8 and Windows 8.1: http://www.blitzbasic.com/Community/post.php? … 77&post=1202630

Can you implement the fix (Windows 8/8.1 only) in future versions of dgVoodoo?

That was one of the things I mentioned at the top of this page.

Reply 295 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
lowenz wrote:

So that's why I heard complaints from others using Win8. I was made sure that there is no significant difference between Win7 and 8 in the respect of the graphics drivers and architecture but I'm changing my standpoint.

Dege, here's a ddraw generic fix for Windows 8 and Windows 8.1: http://www.blitzbasic.com/Community/post.php? … 77&post=1202630

Can you implement the fix (Windows 8/8.1 only) in future versions of dgVoodoo?

But dgVoodoo does not need those ACT fixes since it uses DX11 not old DX (if I got it right you were after all managed to reach no-vsync in Undying and UT99 so everything is working perfectly 😀 ).
Or, were you meaning including the fixed version of the MS ddraw in the pack?

1: only place in dgVoodoo setup that shows resolutions and refresh rates is "Resolution" in the "Glide" tab. According to that setting, my 120hz monitor does not support resolutions or refresh rates at all: Unenforced is the only option. Replace 120hz monitor with 60hz monitor and I get lots of options.

Hm. It's strange because the enumerated resolutions and refresh rates are queried from the system.
What if you try to set the desktop resolution and refresh freq through the system GUI? You get only 1 (the native) resolution as the only choice? Also, 120Hz under 'Advanced' options? It looks as if your monitor need a driver but it is currently uninstalled and the system recognizes the hw as 'general display' or something like that.

2: Outlaws and Undying (Glide renders) work, but they don't really ask dgVoodoo2 for supported resolutions: they have a set list of resolutions to choose from.

3: 120 FPS.

So if Glide works OK then it means your monitor doesn't have problems with 60Hz (but it have with 120Hz for whatever reason).
DX emulation works as expected because it detects your desktop running at 120Hz and so it applies the same for the games.
I wish I could tell you a way to force the DX refresh rate to 60Hz and try that way.
I was about to enable choosing refresh rates for DX as well as for Glide but since it's part of the resolution selector combo box, and resolution overriding is unsupported, I finally ditched the idea. I think I will after all enable this combo box in the next version, to enable manual refresh rate overriding.

Reply 296 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
teleguy wrote:

Don't know if it helps but 3dMark 2000 works fine in Wine for Windows.

Thanks, but the problem is in 3DMarks' code which, according to the facts, does not cause any problem in driving OpenGL through Wine.
MS is very strict in its new APIs (like DX11) in the respect of observing the driving rules (which is the right direction) that's why this old-fashioned driving does not work. A new way is needed to avoid this case, like a deferred initialization or something, I'll see.

Reply 297 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Dege: See attachments. Windows reports all resolutions and refresh rates available*. Other software does (I play modern games, so I've probably even tried other DX11 software). dgVoodoo2 does not.

* Obviously except those below 1024x768, like Win7 won't allow you to select resolutions below 800x600, Win8 wants minimum 1024x768 outside of software that specifically request less.

Attachments

  • Clipboard03.png
    Filename
    Clipboard03.png
    File size
    15.96 KiB
    Views
    3470 views
    File license
    Fair use/fair dealing exception
  • Clipboard02.png
    Filename
    Clipboard02.png
    File size
    43.23 KiB
    Views
    3470 views
    File license
    Fair use/fair dealing exception
  • Clipboard01.png
    Filename
    Clipboard01.png
    File size
    32.77 KiB
    Views
    3470 views
    File license
    Fair use/fair dealing exception