dxvk: Performance regression in Prey with dxvk 1.10

Prey (480490) 2560x1440 - Fullscreen Preset: Very High (max settings) VSync ON

System information

Unable to generate an apitrace.

Log files

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)

Commits related to this issue

Most upvoted comments

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.