protonscr

[d3d9] Shank 2: performing worse than WineD3D

dxvkclosed performanced3d9
doitsujin/dxvk#3755 · opened 2023-12-19 by ranplayer · updated 2024-02-05 · 6 comments · github
Rranplayer 2023-12-19 github

Shank 2 with DXVK is performing worse compared to WineD3D. To reproduce the slowdown you can just start a new campaign and play for less than 5 minutes (after leaving the initial vehicle, it's possible to notice). The fps is dropping below 40 sometimes (I'm using a 6700 XT with a 1080p resolution).

shank_2_perf

I've tried also the following DXVK properties: d3d9.cachedDynamicBuffers=True and d3d9.floatEmulation=Strict (but no gains)

Software information

Game: Shank 2
Settings: maxed out at 1080p

System information

  • GPU: 6700 XT (12 Gb)
  • CPU: Ryzen 7 5700 G (8c/16t)
  • Driver: Mesa 23.3.1 and 23.2.1
  • Wine version: Proton 8.0-4 and 8.0-5 (RC)
  • DXVK version: same versions used by the Proton builds

Apitrace file(s)

For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace

Log files

KK0bin maintainer 2023-12-19 github

Putting this here as a note for devs:

The game has a handful of vertex buffers that are >1MB which end up getting uploaded multiple times per frame. Not only is it slow to copy that much data, we also end up exceeding the staging buffer limit. The game even maps those buffers at least once per frame with size = 0.

The best solution in my opinion is to upload only the necessary data at draw time for POOL_SYSMEM + USAGE_DYNAMIC buffers.

Rranplayer 2023-12-21 github

@K0bin thank you for digging into the problem

Wwaspennator 2024-01-04 github

Issue seems to be replicable on steam deck too checking protondb unless you drop down to an older version of proton that uses wined3d instead. Troublesome considering the game is currently marked as "deck verified"

BBlisto91 2024-01-04 github

The issue might not have shown much when the game was verified. Testing 6.3-8 on Deck the perf drop isn't too bad and doesn't go below 50. With 7.0-6 and 8.0-4 it's much more noticeable going down into the low 20's and seems to stay there for longer.
Looking at the verification date it was probably tested with 7.0-2 but haven't tested that myself sepcifically

KK0bin maintainer 2024-01-04 github

It'll be fixed soon anyway.

Rranplayer 2024-02-05 github

Just tested the game using the main branch build and the performance issues have gone. Thank you, folks

Proton versions