protonscr

Valkyria Chronicles 4 low performance

dxvkclosed wontfixperformancegame bug
doitsujin/dxvk#1421 · opened 2020-02-09 by JulianGro · updated 2025-05-02 · 6 comments · github
2 matching comments, n / p to jump
JJulianGro 2020-02-09 github

Valkyria Chronicles 4 runs with far worse performance than on windows.

Software information

Valkyria Chronicles 4

System information

  • GPU: Nvidia GTX 1080
  • Driver: 440.48.02
  • Wine version: Proton 5.0-1 (Wine 5.0)
  • DXVK version: v1.5.4-2-g454799a27

Apitrace file(s)

Log files

The game uses directx11. Forcing directx9 fallback doesn't work(game doesn't start). Performance on my linux machine is around 40 fps ingame. It feels a lot lower than that, so I would assume that there is issues with the frametime. I have had between 20-30 fps before, when my graphics card was running at 8x rather than 16x. The framerate climbs up to 300fps in the menu and in 3d conversations.
Performance on the windows machine with the apitrace is consistently worse, but that makes sense considering its specs.

When I played the game on windows ~2 years ago, I was constantly hitting the 120 fps cap that I set.

Ddoitsujin maintainer 2020-02-09 github

I checked the apitrace, the game isn't doing anything special so there's really nothing to improve on the DXVK side. Doesn't really look like our issue, best way to confirm would be to check with DXVK on Windows if that's possible. Also, please check if you're GPU-limited (DXVK_HUD=gpuload).

wined3d should works fine with wine-staging since that implements deferred contexts, might also be worth checking whether that is any better, but I doubt it.

I have had between 20-30 fps before, when my graphics card was running at 8x rather than 16x.

What do you mean by "8x" and "16x"?

For future reference, DXVK_LOG_LEVEL=debug isn't very useful 99% of the time, info is more than enough.

Edit: Tagging as Nvidia because everyone on the internet complaining about performance seems to be using an Nvidia GPU, but not sure if there's anything to it.

SSveSop 2020-02-09 github

I have had between 20-30 fps before, when my graphics card was running at 8x rather than 16x.

What do you mean by "8x" and "16x"?

For future reference, DXVK_LOG_LEVEL=debug isn't very useful 99% of the time, info is more than enough.

Edit: Tagging as Nvidia because everyone on the internet complaining about performance seems to be using an Nvidia GPU, but not sure if there's anything to it.

Only reasonable concept of 8x and 16x considering things with GPU is setting the PCIe to 8x rather than 16x (ie PCIe "lanes"). I guess that might be what he meant.

Why it seems all problems has to do with nVidia is simply because "everyone" that are serious at gaming IS using a nVidia card... (muuuhahahahaaha cough haha)

Ddoitsujin maintainer 2020-02-09 github

Upon closer inspection, it looks like this game allocates all vertex buffers and index buffers in system memory. This is a game bug, and working around this in DXVK would incur a performance penalty for all other games as well, so I'm not particularly inclined to do that.

This works better on AMD since we can write directly into a small VRAM region there, but on Nvidia we'd have to dispatch a separate copy, and the decision making process would have to happen in the most performance-critical function in the entire API that gets called anything up to 10000 times per frame by some games. I don't want to punish those games because this one is being dumb.

JJulianGro 2020-02-09 github

I guess that would explain why going from 8 to 16 pcie lanes made such a difference.
The question would still be why it would run so much better on windows then.
I guess I might try DXVK on windows.

JJulianGro 2020-02-09 github

So I ran the game on windows on the same machine as on linux.
DirextX11 performance was stable ~200fps
DXVK performance was slightly lower than on linux ~35fps ingame and around 100fps less than before in menus.
Updating graphics drivers didn't help.
I made a new apitrace on this machine as well.
The other machine probably doesn't have a lot of vram, so that could be playing a role here.

Apitrace file(s)

Log files

Ddoitsujin maintainer 2020-02-09 github

The question would still be why it would run so much better on windows then.

Because the Nvidia driver works around the problem by copying the buffers around.

Proton versions

Launch options