dxvk: Performance regression in Prey with dxvk 1.10
Prey (480490) 2560x1440 - Fullscreen Preset: Very High (max settings) VSync ON
System information
- GPU: Nvidia 2080 Super
- Driver: 510.54.0
- Wine version: 7.0 Valve’s build of Wine
- DXVK version: 1.10
Unable to generate an apitrace.
Log files
-
d3d11.log Prey_d3d11.log
-
dxgi.log: Prey_dxgi.log
I’ve been noticing a performance regression in builds of Wine/Proton which use dxvk 1.10
(Proton Experimental, GE-Proton). I’ve managed to isolate it to dxvk 1.10 being the culprit. Also tested in a standard WINE prefix.
While using dxvk 1.10, the game Prey has noticeable stuttering present throughout gameplay, and not the standard shader compile stuttering. I can only describe it as a “rubber band” effect while panning around the room. It is most noticable during the intro level by facing the wall with a tile texture and panning left and right.
Reverting to dxvk 1.9.4 resolves this stuttering. I’ve tested this in multiple prefixes by manually replacing the relevant d3d*.dll files with the ones packaged with version 1.9.4.
Perhaps the relevant line in the log is:
err: D3D11: CopyImage: Incompatible texel size
?
Please let me know if there is anything else I can provide. Sorry if this report isn’t very helpful, its difficult to convey in a matter that is likely to be useful with regards to debugging. Unfortunately the example given to generate an apitrace did not work on my end.
EDIT: enabling DXVK_HUD=frametimes
clearly shows a lot of spikes with dxvk 1.10.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 27 (14 by maintainers)
Fixed the rendering bug. Closing the issue since we can’t really do much about the supposed perf regression anyway.
I’m not interested in evidence, I cannot reproduce the problem anyway so there’s nothing we can do. Also it’s likely caused by an otherwise useful change rather than an actual bug.
No apitrace needed, I can reproduce it reliably on master with the demo.
FWIW DXVK 1.94 did busy-wait for resources while 1.10 uses a condition variable to save power, so CPU power management might have an impact here.
@Blisto91 I already am - good suggestion though, as the behavior I’m getting definitely feels like it could be related to CPU governance and/or IO priority, as @doitsujin mentioned earlier. I’ve had very similar issues on older Unreal Engine games which gamemode cleared up.