protonscr

VKD3D-Proton might need to improve streaming

vkd3dclosed
HansKristian-Work/vkd3d-proton#1545 · opened 2023-05-02 by galacticaledge · updated 2024-03-01 · 3 comments · github
Ggalacticaledge 2023-05-02 github

Software information

In games that use VKD3D-Proton, I've noticed that they tend to have slower streaming than native DirectX 12. This is mostly noticable in games that do a lot of streaming, but here are some games that do a lot of streaming I've tested that have this issue:

  • Forza Horizon 4
  • Forza Horizon 5
  • Spider-Man Remastered
  • Spider-Man: Miles Morales

What I noticed about these games is that they use DX12 and have streaming issues (such as slowdowns) under VKD3D-Proton. So I thought these four games could possibly help us solve this issue in VKD3D-Proton.

System information

  • GPU: RX 6600 XT
  • Driver: 22.3.5
  • Wine version: Proton 8.0 and Experimental
  • VKD3D-Proton version: 2.8

I also encounter this issue on my Steam Deck. Others on both Linux desktop and Steam Deck have reported the same issues with those games.

Ddoitsujin maintainer 2023-05-03 github

How does the "slower streaming" manifest exactly? What's a good, fast, and consistent way to reproduce this with any of those games? Does this happen with vkd3d-proton on Windows (might need an nvidia card because AMD's Windows drivers don't work with it most of the time)?

In general, resource streaming is implemented by the game and doesn't involve an awful lot of D3D12 beyond allocating some memory and recording a copy command, so the improvements we could make on our side are extremely limited.

The only thing I can really see going wrong for some games is our heuristic to put upload heaps into VRAM, and the fact that we have to manually clear new allocations to zero. You could try if setting VKD3D_CONFIG=no_upload_hvv improves anything, but that may degrade overall performance as well.

BBlisto91 2023-08-20 github

@GalacticalEdge friendly ping.

BBlisto91 2024-03-01 github

@GalacticalEdge Another friendly ping

Proton versions

Launch options