VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

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

Reply 1541 of 3949, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie

The banding in Unreal looks more like a problem with colour gamut not being enough to accurately deal with every shade of colour you could possibly do with Lights.

Hell I even see such banding in games like Fallout 3 and Oblivion when watching the sky transition to\from night\day.

Would it be insane that I wish I could use this wrapper on Wine?

EDIT: or better yet if WineD3D had the options and features dgvoodoo has.

Steam Profile
YouTube Channel
Seal of Nehahra

Reply 1542 of 3949, by galneon

User metadata
Rank Newbie
Rank
Newbie
DracoNihil wrote:

Hell I even see such banding in games like Fallout 3 and Oblivion when watching the sky transition to\from night\day.

I can't speak specifically for those examples, but most of the time when banding is observed in modern games, post-processing is to blame. Vignetting (which is almost always lame anyway) is especially bad about this, and it's most evident in dark skies.

Reply 1543 of 3949, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie

Nah, even in games with no post-processing I can see banding when colours get too vibrant and deep into the contrast. This depends on monitors but it also hinges on the fact that 24-bit RGB is pretty limited in itself.

Steam Profile
YouTube Channel
Seal of Nehahra

Reply 1544 of 3949, by Tafferwocky

User metadata
Rank Newbie
Rank
Newbie

Tested WIP version. American Conquest: Divided Nation works now! Still some weird issue with the in-game pause menu text, and oddly poor performance for a 2D game like that (30-50 fps). Also the mouse cursor can't reach the right or bottom of the screen in 1920x1080, but I'm not sure if these issues can be fixed in dgVoodoo.

A regression I found: Sacrifice now hangs on exit with a black window and unmovable mouse cursor.

Reply 1545 of 3949, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote:

Unreal's textures are all natively paletted, Voodoo supports palettes natively and Unreal shouldn't be converting to 16-bit color textures for Glide. It should be doing that for its Direct3D renderer though, since many D3D cards at the time didn't support that, and 16-bit color textures are less precise than what you could work with on a indexed, 256-color palette.

Indeed, I remember UT's menu textures being paletted, I forgot about that.

DracoNihil wrote:

Nah, even in games with no post-processing I can see banding when colours get too vibrant and deep into the contrast. This depends on monitors but it also hinges on the fact that 24-bit RGB is pretty limited in itself.

Yes, this is true. (If texture colors get multiplied by low intensity coming from the lighting then the 0-255 RGB interval is also pressed into a 16bit-like 0-31 or so interval.)
But dgVoodoo lowers the quality towards 16 bit if dithering is not enabled (4x4 is the default in Glide), but I doubt Unreal disables that.

DracoNihil wrote:
The banding in Unreal looks more like a problem with colour gamut not being enough to accurately deal with every shade of colour […]
Show full quote

The banding in Unreal looks more like a problem with colour gamut not being enough to accurately deal with every shade of colour you could possibly do with Lights.

Hell I even see such banding in games like Fallout 3 and Oblivion when watching the sky transition to\from night\day.

Would it be insane that I wish I could use this wrapper on Wine?

EDIT: or better yet if WineD3D had the options and features dgvoodoo has.

😀

If WineD3D supports wrapping DX10.1 then it should work. 😀
I didn't jump into the deepness of WineD3D but I don't know how DX's multithread capability is wrapped to OpenGL (maybe through a worker thread but that brings another problems into) because OpenGL is not a multithread API. Ok, it is, but multiple threads cannot drive the same context at the same time, while in DX1-11 can. So unfortunately dgVoodoo can't have OpenGL output (especially at OGL 2.x level). 😐

Tafferwocky wrote:

Tested WIP version. American Conquest: Divided Nation works now! Still some weird issue with the in-game pause menu text, and oddly poor performance for a 2D game like that (30-50 fps). Also the mouse cursor can't reach the right or bottom of the screen in 1920x1080, but I'm not sure if these issues can be fixed in dgVoodoo.

A regression I found: Sacrifice now hangs on exit with a black window and unmovable mouse cursor.

Thanks, I'll check it.

Reply 1546 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

*dgVoodoo Unreal clouds (altered gamma):
image.png

*nGlide Unreal clouds (altered gamma):
image.png

As you can see castle/wall textures have the same banding problem BUT the clouds don't. nGlide rendering doesn't show any banding.
And yes, I forced "FullscreenColorBits=16" for either dgVoodoo and nGlide.

Reply 1547 of 3949, by Expack3

User metadata
Rank Member
Rank
Member
lowenz wrote:
*dgVoodoo Unreal clouds (altered gamma): http://s2.postimg.org/s0whgzyhh/image.png […]
Show full quote

*dgVoodoo Unreal clouds (altered gamma):
image.png

*nGlide Unreal clouds (altered gamma):
image.png

As you can see castle/wall textures have the same banding problem BUT the clouds don't. nGlide rendering doesn't show any banding.
And yes, I forced "FullscreenColorBits=16" for either dgVoodoo and nGlide.

That's because nGlide always renders in 32-bits, even if 16-bit output is selected. To quote from the official FAQ:

Zeus wrote:

Does nGlide render in 16-bit color depth?

No. All is converted and rendered in 32-bit, no matter what color depth mode is selected in-game. This eliminates color banding problem.

Reply 1548 of 3949, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
lowenz wrote:
*dgVoodoo Unreal clouds (altered gamma): http://s2.postimg.org/s0whgzyhh/image.png […]
Show full quote

*dgVoodoo Unreal clouds (altered gamma):
image.png

*nGlide Unreal clouds (altered gamma):
image.png

As you can see castle/wall textures have the same banding problem BUT the clouds don't. nGlide rendering doesn't show any banding.
And yes, I forced "FullscreenColorBits=16" for either dgVoodoo and nGlide.

Ok, just checked it.
Glide renderer of Unreal sets GR_DITHER_2x2 for dithering, overwriting the default of 4x4, and it seems to be hardcoded.
So, dgVoodoo lowers the quality on purpose (because the render target buffer logically is 16 bit, as on a real Voodoo card).
(If I force it to 4x4 then there is no banding.)

Despite dgVoodoo always renders to 32 bit, the rules are the following:

DITHER_NONE = pure 16 bit quality
DITHER_4x4 = pure 32 bit quality
DITHER_2x2 = somewhere between the two

I guess nglide doesn't care about dithering at all.

So, it's not a bug, plz don't ask me to "fix it".

Reply 1549 of 3949, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie
Expack3 wrote:

That's because nGlide always renders in 32-bits, even if 16-bit output is selected.

dgVoodoo too, it's why I asked.

Despite dgVoodoo always renders to 32 bit, the rules are the following: […]
Show full quote

Despite dgVoodoo always renders to 32 bit, the rules are the following:

DITHER_NONE = pure 16 bit quality
DITHER_4x4 = pure 32 bit quality
DITHER_2x2 = somewhere between the two

Reply 1551 of 3949, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

I think I've traced down and workarounded the AMD bug causing driver crash in Glide rendering.

If anyone reading this from AMD: your driver or hardware crashes/gets into infinite loop if a pixelshader (4.1) reads the input position register (SV_POSITION) more than once, or more than one components from it.

Reply 1552 of 3949, by VEG

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:

I think I've traced down and workarounded the AMD bug causing driver crash in Glide rendering.

If anyone reading this from AMD: your driver or hardware crashes/gets into infinite loop if a pixelshader (4.1) reads the input position register (SV_POSITION) more than once, or more than one components from it.

Oh, that is cool. When are you planning to release a new version with this fix? 😊

Best regards, Evgeny

Reply 1553 of 3949, by Expack3

User metadata
Rank Member
Rank
Member
Dege wrote:
Expack, aren't you using an older GeForce with a "too new" driver? Similar happened to me recently, when I installed the newest […]
Show full quote

Expack, aren't you using an older GeForce with a "too new" driver? Similar happened to me recently, when I installed the newest one onto a GF 450 GTS, games started to crash or badly appear through dgVoodoo (didn't tested with anything else). So, I had to roll back to a 1-2 years old one to have it working properly.

Just got an AMD HD7850. Did some quick tests, all ATI tech demos work on that via dgVoodoo, as well as on my GF 560Ti and GF 450 GTS.
However, I forgot to say, sorry, nVidia tech demos don't work (except Chameleon), I didn't fixed them yet (btw, thanks for the video!! 😎 )

It also works through dgVoodoo though.

That would be accurate...I have a Game-Ready Driver, so all them last-minute optimizations for the latest games are probably messing with normal operation. So long as I don't find significant regressions with DX1-7 stuff, I'll stick with the driver until they release the next stable. Otherwise, back I go.

Reply 1554 of 3949, by Zaragon

User metadata
Rank Newbie
Rank
Newbie

First, thanks for this amazing wrapper! This is the only wrapper that actually allows me to get working AA on Dungeon Keeper 2, which makes it awesome!

I've tried getting it to work with Red Alert 2 and Yuri's Revenge, and Tiberian Sun. All three of these games work mostly fine natively on my Win7 machine with my Nvidia GTX980 (driver version 359.06). Only RA2/Yuri has issues; the exit popup doesn't display natively, along with any other popups like that. You're forced to just... click randomly in the black space hoping you find the "OK" button.

I use forced Vsync with my global settings; this doesn't affect any of these games natively, but with dgVoodoo2 I had to slow/no fps issuewhen moving the mouse with RA2 and Yuri until I created an Nvidia Profile to force Vsync off for game.exe and gamemd.exe. After that they work great. You can even see the exit game and other popups properly.

Tiberian Sun is proving resistant to this solution though. Even though it uses the same executable name (game.exe), it seems to ignore the profile that forces Vsync back off. If I disable the global "Force Vsync" in the Nvidia Control panel, it works fine, but I use driver-forced Vsync for 99% of my games and it would be an awful lot of work to create a profile for all of the other programs to force it on.

Anyone know why the "use the game profile" to force the Vsync off doesn't work for Tiberian Sun?

Reply 1556 of 3949, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
VEG wrote:
Dege wrote:

I think I've traced down and workarounded the AMD bug causing driver crash in Glide rendering.

If anyone reading this from AMD: your driver or hardware crashes/gets into infinite loop if a pixelshader (4.1) reads the input position register (SV_POSITION) more than once, or more than one components from it.

Oh, that is cool. When are you planning to release a new version with this fix? 😊

I'd like to include the emulated aspect ratio scaling in a new version, so I can only share a wip:

http://dege.fw.hu/temp/dgVoodooWIP16.zip

I didn't make much change since the last wip though, only fixed the AMD bug and enumerating of the new texture formats in DDraw.
(Also modified DITHER_2x2 to be closer a little bit to 32 bit quality.)

Did some tests on my AMD HD7850 with Glide and it runs properly now. I hope it's true for other affected card types as well.

Zaragon wrote:

First, thanks for this amazing wrapper! This is the only wrapper that actually allows me to get working AA on Dungeon Keeper 2, which makes it awesome!

Thanks!

Zaragon wrote:

I've tried getting it to work with Red Alert 2 and Yuri's Revenge, and Tiberian Sun. All three of these games work mostly fine natively on my Win7 machine with my Nvidia GTX980 (driver version 359.06). Only RA2/Yuri has issues; the exit popup doesn't display natively, along with any other popups like that. You're forced to just... click randomly in the black space hoping you find the "OK" button.

Hm, DXGI may hide it when it's in fullscreen which is strange a little because DXGI should switch to windowed mode if it detects another window on top of its own.

Zaragon wrote:

I use forced Vsync with my global settings; this doesn't affect any of these games natively, but with dgVoodoo2 I had to slow/no fps issuewhen moving the mouse with RA2 and Yuri until I created an Nvidia Profile to force Vsync off for game.exe and gamemd.exe. After that they work great. You can even see the exit game and other popups properly.

Tiberian Sun is proving resistant to this solution though. Even though it uses the same executable name (game.exe), it seems to ignore the profile that forces Vsync back off. If I disable the global "Force Vsync" in the Nvidia Control panel, it works fine, but I use driver-forced Vsync for 99% of my games and it would be an awful lot of work to create a profile for all of the other programs to force it on.

Anyone know why the "use the game profile" to force the Vsync off doesn't work for Tiberian Sun?

This vSync thing is confusing a little bit. Others also complained about fps capping in spite of they have unforced vSync both in the global driver cpl and dgVoodoo.

Azurex wrote:

Anyone know how to get this working with Theme Park World / Sim Theme Park?

I'm a complete newbie when it comes to even the concept of wrappers, so I don't know if this is even possible

Copy 'ddraw.dll' and 'd3dimm.dll' into the game folder and just launch the game.
However I don't know if it works with Theme Park, I can't remember if I tested it with that.

Reply 1558 of 3949, by Azurex

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:

Copy 'ddraw.dll' and 'd3dimm.dll' into the game folder and just launch the game.
However I don't know if it works with Theme Park, I can't remember if I tested it with that.

Mm. I've tried that, and I can't seem to get it working at all.

uVNAYv2.png

I suppose it's just not compatible? Ah well.