dxvk icon indicating copy to clipboard operation
dxvk copied to clipboard

[d3d9] Much lower performance in Halo PC when run purely with DXVK compared to running dgVoodoo2+DXVK on the same system

Open Aerocatia opened this issue 4 years ago • 20 comments

Halo PC (2003) runs about ~50% slower on DXVK alone compared with using the d3d9 wrapper dgVoodoo2 to translate the game to d3d11, and then DXVK to translate that d3d11 to Vulkan. (also applies to the demo)

There must be a major bottleneck in the d3d9 code as using two wrappers and going through another API should not be faster than only one translation.

Software information

Halo PC, max settings with unlocked framerate. Chimera mod to fix a whole bunch of game issues, this has no effect on the performance difference.

System information

  • GPU: AMD RX 580
  • Driver:Mesa/radv 20.1.2
  • Wine version: wine-staging 5.11
  • DXVK version: v1.7-2e37825

Log files

-- no log as there is nothing to log --

Aerocatia avatar Jun 26 '20 01:06 Aerocatia

Still applies to c4f37d3981e027fcb8d759a92293d6ddbc80fdc3

Aerocatia avatar Jun 26 '20 01:06 Aerocatia

Are you CPU-bound or GPU-bound? What settings? Apitrace?

-- no log as there is nothing to log --

wtf?

doitsujin avatar Jun 26 '20 11:06 doitsujin

Please provide an apitrace.

Joshua-Ashton avatar Jun 26 '20 11:06 Joshua-Ashton

This game has issues with apitrace. It can only be traced if you use the fall back fixed function video mode, one that hides this issue somewhat. This video mode is also completely broken.

I know that's extremely unhelpful but the only reliable way to reproduce this game is to run the demo version.

Aerocatia avatar Jun 26 '20 18:06 Aerocatia

This is still an issue. According to the DXVK HUD, pure DXVK does not max out the GPU.

Pure DXVK: image DXVK with dgVoodoo2 d3d9>d3d11 translation stacked on top: image

Aerocatia avatar Dec 03 '20 00:12 Aerocatia

Please provide an apitrace so someone actually has the ability to look into this.

K0bin avatar Dec 03 '20 00:12 K0bin

Unfortunately apitrace does not work properly with this game.

Aerocatia avatar Dec 03 '20 00:12 Aerocatia

Here is a working trace. This was made on Windows with an nvidia GPU however. Hopefully this helps. http://vaporeon.io/hosted/halo/misc/halo_trace.7z

Aerocatia avatar Dec 03 '20 01:12 Aerocatia

Game doesn't even work with dgvoodoo here:

image

I also can't repro any performance issues. I get like 1000+ fps everywhere in this game.

Joshua-Ashton avatar Dec 04 '20 21:12 Joshua-Ashton

Out of curiosity, can you tell me how this one performs on your end?

d3d9.zip

Joshua-Ashton avatar Dec 04 '20 21:12 Joshua-Ashton

This build seems to perform worse than the 1.7.3 release.

image

As for dgvoodoo, my Halo install is using the 1.10 update with the chimera mod, I have not tried it in any other configuration.

Aerocatia avatar Dec 05 '20 01:12 Aerocatia

I'll try with that mod.

Joshua-Ashton avatar Dec 05 '20 01:12 Joshua-Ashton

This dgVoodoo.conf is also known to work.

EDIT: you also need d3dx9_43 either way.

Aerocatia avatar Dec 05 '20 01:12 Aerocatia

@Vaporeon Friendly ping. Could i get you to retest this with latest dxvk? :slightly_smiling_face:

Blisto91 avatar Aug 06 '22 21:08 Blisto91

Not sure why I've pinged Vaporeon here 🤔

@Aerocatia Are you able to retest this?

Blisto91 avatar Jan 19 '23 07:01 Blisto91

Yeah I did a cheeky username switcharoo. I will retest this very soon, I have the correct Linux setup again to do this.

Aerocatia avatar Jan 19 '23 19:01 Aerocatia

I have retested this on the exact same hardware however using whatever the current Mesa on Arch is and the latest release of DXVK.

Performance is the same, wine3d is performing much faster than DXVK on this setup. I can't get dgVoodoo to work on WINE anymore, but retesting both on Windows shows dgVoodoo is running much faster.

DXVK d3d9 seems to be held up by something.

Aerocatia avatar Feb 01 '23 11:02 Aerocatia

Dang. Well thank you very much for the retest 👍

Blisto91 avatar Feb 01 '23 11:02 Blisto91

I tried the game and performance matches what I get on Windows. Both run at 800-1200 fps at 4k max settings.

K0bin avatar May 23 '23 21:05 K0bin

So I have noticed a game setting directly related to this issue. It is related to the setting DisableBuffering (described as "Forces a video card to render each scene - used to prevent mouse lag")

This setting is more of less free on native d3d9 drivers, however it completely murders performance on DXVK, especially on AMD. I forgot I had this setting on when making the original report.

This may possibly be related to https://github.com/doitsujin/dxvk/issues/3906

Aerocatia avatar Mar 25 '24 01:03 Aerocatia