VOGONS


First post, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

I'm working on a D3D12 backend for dgVoodoo. It's still in development but I publish the first experimental version here.

Please report a problem, like bad performance, crash, erroneous rendering, here only if it's D3D12-specific (the problem doesn't come with D3D11).

This version is compiled from the main branch and versioned as 2.7 but it writes config files with version 2.63 to be compatible with the 'stable' builds.
What you must know about it:
- D3D12 is only available for DirectX modules for the time being, Glide is still D3D11-only.
- You must explicitly select D3D12 in the config if you want it, 'Best available' will never choose it until it's in experimental state.
- If D3D12 doesn't appear in the OutputAPI combobox in the CPL then your OS (Win10 required) or video card doesn't support it.

This is an initial implementation and I myself am aware of present problems like some unsolved crashes, worse performance for certain API-driving patterns, etc.
(Like setting gamma ramp not working in fullscreen, or, having waiting bubbles in the frame presentation calls that aren't there with D3D11... I wish somebody from Microsoft would explain those to me.)
But, I want to change and polish things in the implementation in the future and I hope it gets matured by time.

http://dege.fw.hu/temp/dgVoodooWIP71.zip
http://dege.fw.hu/temp/dgVoodooWIP71_dbg.zip

I still haven't done very extensive testing but I hope I'll get some good catches here (like last time with Blood2) that helps me.
32 bit D3D12 is a pain in the ass because of the lack of graphics debuggers.

Reply 1 of 29, by WSH303

User metadata
Rank Newbie
Rank
Newbie

I tried it with Aliens vs Predator 2, everything works fine, no graphics bugs, no stuttering, Reshade works too (but entering DX12 tab crashes the game, may be Reshade issue, may be dgVoodooo). I think I have a GTA2 somewhere, will try later.

edit.

GTA2 in Direct3D mode seems to work without any issues too.

GTA1 seems to work fine too.

Reply 3 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Report for Armor Command:

Version: WIP71
WIP71 D3D12 backend: Main menu works, but crashes to desktop when starting game from menu.
WIP71 D3D11 backend: Game "works", barring the usual white texture shenangigans associated with the current AMD drivers on RX/R9 cards.
WIP71 WARP backend: Works fine, obviously with the performance caveats associated with WARP.
2.54: Works perfectly.

Debug log for D3D12 backend is attached.

Dege, are testing reports structured in this way useful to you?

Attachments

  • Filename
    Armor Command.LOG
    File size
    353.73 KiB
    Downloads
    6 downloads
    File comment
    dgVoodoo WIP71 D3D12 debug log for "Armor Command"
    File license
    Public domain

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 5 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie
ZellSF wrote on 2020-05-04, 10:51:

Unrelated to the D3D12 backend, but because of a resolution forcing issue you want to be using old versions of dgVoodoo for Armor Command anyway.

That issue wouldn't happen to cause the main menu text to disappear would it? If so, I've encountered it.

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 6 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Taito Legends, Taito Legends 2, Batman (the Retrospec remake) and Head over Heels (the Retrospec remake) all work perfectly under the D3D12 backend.

(Taito Legends 1 & 2 are especially relevant as dgVoodoo allows the games to be displayed without bilinear filtering and a 1920x1080 resolution makes the underlying framebuffers of the arcade games look much cleaner).

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 7 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Report for Midway Arcade Treasures 2:

Version: WIP71
WIP71 D3D12 backend: Splash videos open up to a black "ActiveMovie Window", but once they're closed (and they're unimportant), the games work perfectly.
WIP71 D3D11 backend: Same problem as D3D12, plus the usual white texture shenangigans associated with the current AMD drivers on RX/R9 cards.
WIP71 WARP backend: Works fine, obviously with the performance caveats associated with WARP.
2.54: n/a (DX9 game)

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 8 of 29, by ZellSF

User metadata
Rank Oldbie
Rank
Oldbie
jamyskis wrote on 2020-05-04, 11:24:
ZellSF wrote on 2020-05-04, 10:51:

Unrelated to the D3D12 backend, but because of a resolution forcing issue you want to be using old versions of dgVoodoo for Armor Command anyway.

That issue wouldn't happen to cause the main menu text to disappear would it? If so, I've encountered it.

No, I'm talking about the FMVs flickering.

Reply 9 of 29, by willow

User metadata
Rank Member
Rank
Member

GT Legends
D3D11 backend: lots of stuttering and bad framerate with only one single thread (game use only one single thread at start. You can change with task manager). Good framerate and no stuttering with multihread. Alt+tab works well
D3D12 backend: good framerate and nearly no stuttering with only one single thread. Good framerate and no stuttering with multihread. . Alt+tab may crash the game and has problem with the game
D3D9 native: no stuttering, bad framerate (better than with d3d11 backend) with only one single thread. Good framerate and no stuttering with multihread. Alt+tab works well.

Reply 10 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Report for Midway Arcade Treasures 3:

Need to break down by game here as each game is basically a self-contained package, complete with executable:

Hydro Thunder:
D3D12: Crashes at title screen after pressing ENTER (returns to main menu, produces absolutely no debug log for some reason apart from "[13656] Could not create force feedback effect on this device.")
D3D11: Crashes at title screen after pressing ENTER (returns to main menu)

San Francisco Rush 2049: D3D12 works fine (game is a direct port of Dreamcast version and uses D3D so resolution forcing is effective)
Offroad Thunder: D3D12 works fine (game is a direct port of Dreamcast version and uses D3D so resolution forcing is effective)
Rush the Rock: D3D12 works fine (game is a direct port of Dreamcast version and uses D3D so resolution forcing is effective)
STUN Runner: D3D12 works fine (game is emulated version of arcade version and so only uses DX9 for rendering the display)
Badlands: D3D12 works fine (game is emulated version of arcade version and so only uses DX9 for rendering the display)
Super Off-Road: D3D12 works fine (game is emulated version of arcade version and so only uses DX9 for rendering the display)

(Odd but irrelevant glitch - the transitional loading screen between the compilation menu and the game itself ignores the dgVoodoo aspect ratio setting despite displaying the dgVoodoo logo)

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 11 of 29, by ZellSF

User metadata
Rank Oldbie
Rank
Oldbie

Last time I tried Hydro Thunder (using an older D3D11 version) from that compilation I got:

[6400] [dgVoodoo] WARNING: Direct3DSurface9 (04221CD0)::Lock: D3DLOCK_DISCARD flag is specified for a non-discardable (non-dynamic) surface.
[6400] [dgVoodoo] ERROR: Direct3DDevice9 (0453EC98)::GetBackBuffer: Invalid adapter head index (-1)

Not sure if it was the same issue, but it was recently (2020-03-21).

Reply 12 of 29, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
willow wrote on 2020-05-03, 21:47:

What do we expect with d3d12 instead of d3d11 for dgvoodoo 2?

Working on AMD's, somewhat better performance here and there + being more future proof. At least, I hope.

jamyskis wrote on 2020-05-04, 10:14:

Dege, are testing reports structured in this way useful to you?

Yes, it's fine, thanks!
I can't promise to fix them quickly though as there are a lot other things to do.

What I know of at the moment (so plz don't report them) (D3D12):
- Blade Of Darkness: crash at start
- Gothic II: stucks at start
- The Witcher: TDR and crash when entering a game + corrupted polygons (but I think the two are related)
- Carrier Command Gaia Mission: bad rendering of some terrain elements (grass)
- Split Second: device removal + crash after entering a race

ZellSF wrote on 2020-05-04, 15:23:
Last time I tried Hydro Thunder (using an older D3D11 version) from that compilation I got: […]
Show full quote

Last time I tried Hydro Thunder (using an older D3D11 version) from that compilation I got:

[6400] [dgVoodoo] WARNING: Direct3DSurface9 (04221CD0)::Lock: D3DLOCK_DISCARD flag is specified for a non-discardable (non-dynamic) surface.
[6400] [dgVoodoo] ERROR: Direct3DDevice9 (0453EC98)::GetBackBuffer: Invalid adapter head index (-1)

Not sure if it was the same issue, but it was recently (2020-03-21).

Oh, I forgot about that.

Reply 13 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Maybe Dege's only enabled debug output for the D3D12 backend in WIP71 as I'm also not getting anything from the D3D11 backend.

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 14 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2020-05-04, 16:42:

Yes, it's fine, thanks!
I can't promise to fix them quickly though as there are a lot other things to do.

No worries. I can usually fall back to 2.54 if there are specific problems on my RX 580, and failing that, there's always DXWnd. I'm just interested in providing you with as much data as possible for the D3D12 so that you can kill as many birds with one stone when you do have the time to work on it.

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 15 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Report for Puzzle Bobble (GameBank version):

Version: WIP71
WIP71 D3D12 backend: Windowed mode is fine, but does not appear to use Direct X (a similar situation I believe with many of the GameBank ports such as Earthworm Jim SE, Fatal Fury 3, Toshinden 2). Fullscreen mode displays a dgVoodoo logo but is otherwise completely black. Debug log attached.
WIP71 D3D11 backend: Same problem as D3D12.
WIP71 WARP backend: Same problem.
2.54: Same problem.
Vanilla: Same problem, only displays a white window with a freeze frame of the original window instead of black.

Attachments

  • Filename
    Puzzle Bobble.LOG
    File size
    100.75 KiB
    Downloads
    2 downloads
    File comment
    Puzzle Bobble WIP71 log
    File license
    Public domain

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 16 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie
ZellSF wrote on 2020-05-04, 15:23:
Last time I tried Hydro Thunder (using an older D3D11 version) from that compilation I got: […]
Show full quote

Last time I tried Hydro Thunder (using an older D3D11 version) from that compilation I got:

[6400] [dgVoodoo] WARNING: Direct3DSurface9 (04221CD0)::Lock: D3DLOCK_DISCARD flag is specified for a non-discardable (non-dynamic) surface.
[6400] [dgVoodoo] ERROR: Direct3DDevice9 (0453EC98)::GetBackBuffer: Invalid adapter head index (-1)

Not sure if it was the same issue, but it was recently (2020-03-21).

Probably would have helped if I hadn't accidentally installed the non-debug DLLs 😀

Here's the log for Dege - there's a lot of crap to sift through here (the debug logging caused an intolerable amount of slowdown). Zipped because it is 18MB unpacked.

Attachments

  • Filename
    Hydro Thunder.zip
    File size
    1.55 MiB
    Downloads
    6 downloads
    File comment
    Hydro Thunder MAT3 WIP17 log
    File license
    Public domain

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 17 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

Report for Croc 2:

Version: WIP71
WIP71 D3D12 backend: Game crashes after splash screen. Debug log attached.
WIP71 D3D11 backend: Seems to largely work fine, barring AMD white texture problem. Can get into gameplay (unlike D3D12).
WIP71 WARP backend: Works fine.
2.54: Works fine.
Vanilla: Works fine.

Attachments

  • Filename
    Croc 2.LOG
    File size
    85.71 KiB
    Downloads
    5 downloads
    File comment
    Croc 2 WIP71 log
    File license
    Public domain

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro

Reply 18 of 29, by jamyskis

User metadata
Rank Newbie
Rank
Newbie

And as final reports for the day, Hydro Thunder (the 2001 Midway version, not the MAT3 version by Digital Eclipse), Slam Tilt and Oddworld: Abe's Odyssey all work perfectly under the WIP71 D3D12 backend.

Ryzen 5 3600 @ 4.2GHz per core
16GB RAM DDR4
AMD RX 580
6TB hard drive over three hard drives
Windows 10 Pro