Is it a UE4 title? If yes, try spoofing an AMD card, see https://github.com/doitsujin/dxvk/wiki/Configuration
Put a dxvk.conf into the same folder where your WorldOfTanksEnCore_d3d11.log is being written to with this content:
dxgi.customDeviceId = e366
dxgi.customVendorId = 1002
Edit: Nevermind, doesn't look like it's UE4, and on Windows nvapi might even work?
No. This game uses the Big World game engine.
Can you test this on Linux? I frankly don't care about Windows-specific issues. Performance should generally be around 80% of native in almost all games. I play World of Warships and it runs fine.
Also, are you GPU limited or CPU?
Edit: How did you even test it on Windows? It doesn't use DXVK when I put the DLLs into the directory. The EnCore benchmark also does not work on Wine because it requires .NET.
I used the 32bit dlls and I will try do some testing on Linux as well later today.
Oh right, I'm stupid and copied the 64-bit DLLs over. Need more coffee.
Update: Just ran the benchmark on my Windows 10 install using the latest AMD drivers and I'm getting 12219 points using DXVK (vs 15122 with native D3D11). Not a stellar result, but within the usual range.
Did a test on my Linux computer (GTX 1060 3GB, 396.54.06, Wine 3.18 staging, Kubtunu 18.10) and i'm getting around 20 fps on maximum settings when viewing a replay. Looking online this GPU on windows should be getting around 50 fps. Maybe this is an Nvidia issue? Can someone else with an nvidia GPU please confirm this?
Edit: I will try the AMD Spoof trick to see if that helps.
Spoofing an AMD card does increase performance. On my windows PC I'm now getting about 60% native performance on the EnCore and close to native on the replay. Thanks for your suggestion. Can doitsujin add this to the list of games to be spoofed automatically? The exact name of the game's executable is 'WorldOfTanks.exe'. Maybe for the other WarGaming titles as well?
I've noticed that the game dropped in performance on Linux a while ago. I used to get 70 - 80 fps (even 90 on some maps) on all ultra settings, on my R9 Fury, but now, I can only get about 60 with settings medium-high. I'm not sure what happened. I tried using older wine versions, older DXVK versions, but to no effect. There might have been something that changed in the RADV kernel driver that decreased performance, but that's just a theory.
Same (?) problem
GeForce GTX 1060 6GB
Driver: 415.25.0
Vulkan: 1.1.84
Memory size detected correctly.
wine-4.0-rc5 (Staging) (but tried 3.xx wine versions too)
DXVK 0.94
Unfortunately, CAN'T get FPS > 50 and GPU Memory usage > 1.5GB
I didn't have that issue because when doing the test I just copied the game files and ran the game directly with the replay instead of using the launcher. Though now you said it. I do have issues getting WoT to run.
Hey, everyone, I just tried something today which bumped my performance waaay up. In the World of Tanks graphics settings, you can set which display the game runs on. By default with Wine, its set to 'Wine Display'. Even though I only have a single monitor, I also had a second option of 'DISPLAY1'. I set it to that, and boom, my performance went from 50 - 60 FPS to 80 - 90 FPS, on my R9 Fury. Huge difference. Weird that the game sees two displays though...
There might indeed be something to this - At least in the current version of the game it seems that my graphics card is not being utilized to the max, something seems to be bottlenecked. Interestingly, this did not use to be the case but as the wine, dxvk and game versions keep changing over time it's hard to nail down exactly what caused this to happen.
Tested setup
Vega 56
Mesa 18.3.5 and 19.0.1
Wine 4.0.x
Kernel 5.0.3
LLVM 7.0.1
Observed behaviour
When running the HD client, I get consistently low framerates, often dipping down to the low 50-ies. This is regardless of graphical settings: Lowering the settings to their minimal state will have little effect on FPS.
The same occurs regardless if running in 2560x1080 and in 3440x1440, though at lower resolution the framerate consistency improves a lot and I experience fewer drops. The average framerate does seem to depend little on resolution or graphical setting at all and I've been unable to push it much beyond 70, except in some instances (intro film etc) where it will peak, unsurprisingly to ~700.
Another dead giveaway that the GPU is basically idling is that it's not spinning up the fans and only two of the little utilization lights on the side of the card are shining.
Next steps
I'll try to play with different DXVK versions to see if there is a regression, as I already tried different Mesa versions.
@PotassiumDideuteriumPhosphate does your wine build support esync and do you have it enabled? If not, you'll be CPU-limited in pretty much every game that uses some sort of multithreading, this is not a DXVK issue.
The CPU overhead of DXVK is comparable to the AMD Windows driver, it's possible that this is an issue on some systems but there's really not much headroom left, don't expect any magic improvements.
Interestingly, I've tried running it with both esync on and off, and while esync does seem to improve the situation, it's a very minor improvement. Quite puzzling. Also my processor seems to be under very little strain, though that might be an issue with poor threading in the game engine, so that might not say much.
It can be processor governor issue, have you tried set it manually to performance, or utility like https://github.com/FeralInteractive/gamemode ?
I have indeed set the performance governor to performance manually as well as trying it in its default state. Alas, there is no appreciable difference in performance in the normal use case. On the plus side, I get an extra 100 fps when watching the intro movie! ;)
I tried with older versions of DXVK, and the results were the same: ~25% GPU utilization and framerates that look slimilar (in the 50-70 span) regardless of of I run "High" or "Low" graphical settings. Clearly not a recent regression then.
Probably the issue resides with either amdgpu, llvm or the game itself. Sorry to have bothered you @doitsujin :frowning_face:
That's weird, I'm on AMD too and haven't noticed any weird performance issues.
Indeed. It's like the GPU just won't clock up correctly, but it's not an issue I've noticed in other games. Just weird. Maybe Vega specific? Maybe some combination effect?
Nothing extracted yet.
When playing World of Tanks the frame rate when using DXVK is less than half (about 40%) that of using native dx11. This is observed in both the game and the EnCore Demo/Benchmark. I have tested with different graphic settings and all have the same ~40% performance of native. Reading other issue posts claim good performance so I tested with 0.53 but the performance was worse than 0.90 and had rendering issues.
Other games made by Wargaming like World of Warships could also have the same low performance.
Is it possible for DXVK to have additional optimizations for these programs?
I have provided apitraces for both minimum and ultra settings. The ultra one has very low frame rate and has many rendering issues. The minimum has better frame rate and less rendering issues so try this one first.
You can also download the EnCore Demo here: wotencore.net
Thanks for your work on this project!
Software information
World of Tanks, World of Tanks EnCore Demo/Benchmark
Note: Both programs are only 32bit.
System information
Apitrace file(s)
Log files
d3d11.log:
WorldOfTanksEnCore_d3d11.log
dxgi.log:
WorldOfTanksEnCore_dxgi.log