Open JulianGro opened 4 years ago
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.
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)
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.
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.
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.
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.
Valkyria Chronicles 4 runs with far worse performance than on windows.
Software information
Valkyria Chronicles 4
System information
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.