VOGONS


dgVoodoo 2.7.x and related WIP versions

Topic actions

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

Reply 100 of 474, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie
legion_pheonix wrote on 2020-08-17, 07:09:

Dege, please add Direct3D 9 support to Output API.

Why? D3D9 will be dump in the next future. DX9c = 16 years ago. Nvidia, AMD (and maybe Intel) drivers (9a,9b) are already broken, it's why Dege already gave us the D3D9 wrapper.
If you want a D3D8to9 wrapper: https://github.com/crosire/d3d8to9

Reply 101 of 474, by legion_pheonix

User metadata
Rank Newbie
Rank
Newbie
lowenz wrote on 2020-08-17, 07:40:

Why? D3D9 will be dump in the next future. DX9c = 16 years ago. Nvidia, AMD (and maybe Intel) drivers (9a,9b) are already broken, it's why Dege already gave us the D3D9 wrapper.

Some games refuse to work with dgvoodoo Direct3D 11 with DXVK and therefore won't start.
Therefore, I would like to be able to combine D3DImm.dll, DDraw.dll from dgvoodoo2 with D3D9.dll from DXVK.

lowenz wrote on 2020-08-17, 07:40:

If you want a D3D8to9 wrapper: https://github.com/crosire/d3d8to9

Where DirectX 8 is used, I already use it. But there are games that work with DirectX 6.7 versions.

Reply 102 of 474, by Dege

User metadata
Rank l33t
Rank
l33t

No, D3D9 does have no point to be present as an output API. As Lowenz pointed out, it's old. Even MS will replace it with 9on12 when it'll be getting broken because of insufficient vendor support.

Also, plz (@everybody), don't bring dxvk and linux here. I won't do any development in favor of them. If dgVoodoo works then works, otherwise bummer.

Reply 103 of 474, by Dege

User metadata
Rank l33t
Rank
l33t
Maarcis12 wrote on 2020-08-16, 17:53:
Maarcis12 wrote on 2020-08-12, 22:21:
Dege wrote on 2020-08-12, 20:14:

I did a quick try with FIFA09 demo but everything worked as expected. Do I need the full version? Or some special in-game settings, or mod?

That's weird, i tried the demo myself, but it has the same issue as with the full version. Here are my settings below and the bug itself (although the final version has more options to choose):

I'm on another machine now and I can repro the issue. No difference between dgVoodoo and native d3d9. For the time being, I have no a clue why it is.

Ok, thanks for the answer. But will it be tackled in future?

TBH, I don't think because the bug is not in dgVoodoo. It'd require experimenting on various hw environments to discover the cause.

Reply 105 of 474, by therealdadbeard

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2020-08-16, 15:51:
Is there a tutorial how to install these custom levels and cars? I overwrote the Aquatica level with the improved one, but I'm […]
Show full quote
therealdadbeard wrote on 2020-08-15, 00:45:

Thief 2 now looks great without issues but nfs4 with my modded cars and tracks still has the glitch. Glide though looks fine though so I will just gonna use it.

Is there a tutorial how to install these custom levels and cars? I overwrote the Aquatica level with the improved one, but I'm not sure if that had effect.
Also, for the car you linked, there is a readme containing 'copy this file somewhere under the NFS4 folder' (or sg like that). How to make a custom car? I tried to create a new folder and copy car.vid into that but didn't see the car in the game menu.
(I've just noticed that I tried to repro the issue with forced z-buffer bit depth to 24bit as minimum, I don't know if that matters.)

Didn't touch the z-buffer settings. I just looked at the readme and it's just the worst instructions ever 🤣 wtf. Of course someone who never modded the game. I looked at the file and it has an ID of 43 which is not used so you just create a new folder P959 under Data\Cars. It should be then available. Don't forget the newest beta from the modern patch http://veg.by/files/nfs4/nfs4_modern_patch_beta.7z and use the dx7 renderer that you set in the nfs4.ini.

Reply 106 of 474, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

Descent Freespace freezes in D3D mode with dgVoodoo but it doesnt happen when using Windows libs.
Log provided

Attachments

previously known as Discrete_BOB_058

Reply 108 of 474, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

@Dege
I'm not sure how helpful this is or if you're aware of it but there is this wrapper that is designed specifically for translating DX9 calls to 12 for Guild Wars 2: https://github.com/megai2/d912pxy

Maybe some of it's code might be helpful in getting some pointers for implementing it in dgVoodoo?

My creations and essays:
https://xjdhdr.gitlab.io/

Reply 109 of 474, by Taz83

User metadata
Rank Newbie
Rank
Newbie

@Dege
is there any special setting i can do to make Warhammer online less load on cpu with dx12 features also i have a question regarding the Vram can i set it to 11264 to match the dedicated video memory on rtx 2080ti would that help , i also tried fast video memory access but the game crashed once i started it

been messing arround with the filtering and MSAA to figure out what is the best for crowded battle even the few fps gain does matter if the game is not gonna stutter or hang for 1 sec due to huge loading

is there a setting in the config that can lead to offload cpu and load it on gpu for better fps ?

Last edited by Taz83 on 2020-08-21, 18:08. Edited 1 time in total.

Reply 111 of 474, by Dege

User metadata
Rank l33t
Rank
l33t

Ok, the real last WIP before the next version: 😀

=========================
WIP76.1:
=========================

- Minor D3D bug, fixed (Polska Goola again)
- 2D blit bug, fixed (Euro Track Simulator)
- Minor D3D9 frontend bug that affected D3D12 backend, fixed (Astebreed)
- Finetuning alpha testing (Diggles - The Myth of Fenris)
- DDraw pixel format validator incompatibility, fixed (Lords Of Magic Special Edition)
- Bugs in base D3D12 infrastructure, fixed (Powerslide demo)

http://dege.fw.hu/temp/dgVoodooWIP76_1.zip
http://dege.fw.hu/temp/dgVoodooWIP76_1_dbg.zip

I'd like to begin testing, so I'm not going to fix any subsequent reported bug, unless it proves to be an easy and undangerous fix.

Last edited by Dege on 2020-08-23, 20:08. Edited 1 time in total.

Reply 112 of 474, by Dege

User metadata
Rank l33t
Rank
l33t
Taz83 wrote on 2020-08-21, 12:30:

is there a setting in the config that can lead to offload cpu and load it on gpu for better fps ?

There is no, I'm afraid. I don't remember the cpu usage of the game, but the body of the D3D calls are already outsourced to a background thread (D3D12) to ease the game calling thread, so if the game is still cpu-bottlenecked then probably it is the game rendering logic that consumes too much cpu.

Reply 113 of 474, by BMickey

User metadata
Rank Newbie
Rank
Newbie

Hi,
Recently upgraded to Win10 2004 and started to test some old games. As far as I can see removing native none-32 bit video modes finally ended retro-gaming w/o wrappers from the community; good work M$, at least Xbox UI bar blends fashionably, everybody was waiting for that. Win7 is better. But 2 out of 2 OpenGL games work out-of-the-box — there's nothing like a good standard.
First case:
The Sting! — low fps performance, even with '8And16BitAggregateBlts' compatibility flag, game cursor distorted (pink background — no alpha). With WIP 75/76/76.1 game works ok with D3D11/12 mode (D3D12 was crashing in WIP74). The only problem is slow loading: 8 s native vs. 53 s via dgvoodoo (loading bar appears to be stuck for some time). In the log (16MB!) I see there is a massive amount of duplicated operations, but it's beyond my expertise. I figured out that with 'Shadowmaps' turned off in game, loading is back to normal (as is the log size).

Filename
sting-level_0.7z
File size
912.94 KiB
Downloads
63 downloads
File license
CC-BY-4.0
Filename
sting-level_0_shadowmaps_off.7z
File size
18.62 KiB
Downloads
73 downloads
File license
CC-BY-4.0

Second case:
Rally Championship/Mobil 1 rally — works ok in D3D12 WIP 75/76/76.1, but loading somehow slow — black screen is shown about half a minute before intro videos.

Filename
rc-level_0.7z
File size
19.63 KiB
Downloads
69 downloads
File license
CC-BY-4.0

Reply 115 of 474, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie
BMickey wrote on 2020-08-24, 22:20:

As far as I can see removing native none-32 bit video modes finally ended retro-gaming w/o wrappers from the community;

As xcomcmdr said above, 16-bit colour hasn't been supported since Win8. However, because MS cares about backwards compatibility as far as feasible, they provided a compatibility setting you can enable for programs that require 16-bit colour. This is actually superior to Win7. On Win10, I only have to reduce the game itself to 16-bit colour. To achieve the same compatibility on Win7, I have to reduce the entire system to 16-bit.

BMickey wrote on 2020-08-24, 22:20:

But 2 out of 2 OpenGL games work out-of-the-box — there's nothing like a good standard.

Cherry Picking is not going to help your case.

My creations and essays:
https://xjdhdr.gitlab.io/

Reply 116 of 474, by ZellSF

User metadata
Rank l33t
Rank
l33t

At a risk of going even further off topic, I don't think the 8/16-bit color depreciation in Windows 10 actually hurt retro game compatibility that much. Last time I reinstalled Windows 7 I found out that most 8/16-bit color games wouldn't work well without graphic wrappers anyway. Drivers/hardware/updates have killed compatibility with those much more than Windows 10.

Reply 117 of 474, by Squall Leonhart

User metadata
Rank Newbie
Rank
Newbie

hey Dege, do you do any DXT unpacking before uploading to the graphics card?

It's come to my attention recently that nvidia has broken dithering in their DXT3/5 support but it only seems to affect dx9 (sims 3 in particular), trying to work out if recommending dgvoodoo to the affected users would be a solution.

https://forums.thesims.com/en_US/discussion/9 … tion-issues/p17

Dege wrote on 2020-06-17, 19:58:

Isn't that only a kind of partial D3D12 implementation for a game (D3D12 needs newer WDDM version available only on Win10)?
Anyway, I don't know. If you have that version of d3d12.dll, copy it next to the dgVoodoo dll's and see what happens. If it behaves like Win10 D3D12 then it should be recognized and used.

Edit: Cancel... It just came to my mind that I use a Win32 API along with DX12 that's only available in Win8 and up.

its a complete implementation of D3D12's 3D api's including raytracing, it does not include DirectX 12 Video (DXVA) capabilities, DirectML, or DXGI presentation capabilities specific to 8/10.
You'd have to intentionally write your D3D12 instantiation based on the 12on7 documentation so its loaded on 7.
https://microsoft.github.io/DirectX-Specs/d3d … d-dlls-properly

Reply 118 of 474, by GokuSS4

User metadata
Rank Newbie
Rank
Newbie

any benefits using original hardware over dgvoodoo? seems like there are a lot of advantages using dgvoodoo

Win10 Ryzen 7 5800X | TUF B450M-Pro | 32GB DDR4-3800 CL16 | RX 6800 XT
WinXP Core i3-3220 | H77 Pro4-M | 8GB DDR3-1600 CL9 | X1950 Pro
Win98SE Pentium E5800 | 775i65G R3.0 | 512MB DDR1-400 CL2 | X850 XT

Reply 119 of 474, by Dege

User metadata
Rank l33t
Rank
l33t
Squall Leonhart wrote on 2020-09-03, 16:06:

hey Dege, do you do any DXT unpacking before uploading to the graphics card?

Only if a texture is created with auto gen-mipmap flag (D3D9). It's uploaded in unaltered form otherwise.
I don't know if the former is the case with Sims3 (btw, I didn't even know there is texture dithering... 😀 ) but it could be checked out:
enable tracing in dgVoodoo and look at Direct3DDevice9::CreateTexture calls with Format = D3DFMT_DXT1/2/3/4/5. If Usage & 0x400 is not 0 then it's the autogen-mipmap case.

If it's a problem, I think I could workaround it by replacing hw mip-level generation with my DXTC compressor from DirectDraw.

Squall Leonhart wrote on 2020-09-03, 16:06:

its a complete implementation of D3D12's 3D api's including raytracing, it does not include DirectX 12 Video (DXVA) capabilities, DirectML, or DXGI presentation capabilities specific to 8/10.

Well, yeah, that's one of the problems: the other part of modern DirectX, DXGI is completely missing in return. So, D3D12on7 doesn't support swap chains, which play an important role in dgVoodoo D3D11/12 common backend impl.
I'd have to implement dummy swapchains or the real ones on my own.
The other problem is it all can only be tested on Win7, so I'd need to install/dual boot Win7 with up-to-date drivers.
Oh, and there is no 32 bit version available.

See my earlier post:

Thanks for the links, I didn't get deep into 12On7 so far but now I did some initial experiments. I asked someone from MS D3D te […]
Show full quote

Thanks for the links, I didn't get deep into 12On7 so far but now I did some initial experiments. I asked someone from MS D3D team if they would release the 32bit version of 12on7 but it's very unlikely (they won't).
Even if they did, there'd be 2 problems with it:
- I'd need a Win7 machine with updated GPU drivers to test it at all. Win10 DX debug layer can be switched to Win7-emulation mode for developing but it only validates usage of objects that are common with 12 and 12on7. Win10 doesn't provide the 12on7 interfaces, and d3d12.dll of 12on7 cannot be used on Win10 of course.
- 12on7 cannot co-operate with the (outdated) version of win7 DXGI, so it doesn't support swapchains. Only windowed presentation is available which questions the point of dgVoodoo d3d12 over plain d3d11 on win7.

By now I think my concern about the windowed presentation is wrong, because DX12 on Win10 (with flip effect FLIP_DISCARD which is mandatory) always presents into a window too and let the desktop compositor do the rest, even in fullscreen mode (though the compositor of Win10 is more advanced).