protonscr

Frostpunk performance bad on RX460 2GB

dxvkclosed wontfixperformance
doitsujin/dxvk#920 · opened 2019-02-17 by QuImUfu · updated 2019-12-11 · 11 comments · github
QQuImUfu 2019-02-17 github

Frostpunk runs with 8fps on a RX460 2GB (unlocked to 1024 cores) with DXVK.
On windows it runs with 60 fps. (edit because i forgot to turn down the settings)
Is such a big performance hit expected?
The DXVK hud displays the game using 6GB of RAM. Could that be the reason for the low performance? Does DXVK use more video RAM vs. Windows drivers?

Software information

Frostpunk 1.3.2.42665.45362 minimal settings

System information

  • GPU: RX460
  • Driver: RADV 19.1~git1902141930.9a9180~oibaf~b
  • Wine version: wine-4.0-rc2
  • DXVK version: 0.96
Ddoitsujin maintainer 2019-02-17 github

This is kind of expected on low-end hardware such as this. DXVK does need more VRAM than Windows, and Windows has much more sophisticated memory management.

For Frostpunk you'll probably need 8GB at least, since the game fills up that much memory for no good reason. That's not a bug in DXVK, it does that on Windows, too.

Ddoitsujin maintainer 2019-02-17 github

By the way, you could try latest dxvk-git, which uses the VK_EXT_memory_priority extension if available, and allows VRAM overallocation.

The extension isn't going to work on wine for now, but the overallocation behaviour may fix things for you.

Mmozo78 2019-02-17 github

The game runs great on decent hardware. I'm with GTX 1080 and the game runs with ~230 FPS.

QQuImUfu 2019-02-17 github

I tried to test it with latest dxvk-git (0.96-41-gbe22756). When freshly started the performance was even worse (3fps) but after ~30 min leaving the game paused and doing things (open menu, close menu, zoom in, zoom out, look around) I get very weird behaviour.
There seem to be different "performance states".
Some are:

  • the game runs with capped 60fps
  • it runs with 30-40fps
  • it runs with 8-16fps
  • it runs with 2-3fps

It seems to switch between such states (there are more, they may never be the same) semi-randomly, 2-3fps only happening in the first 10 min, capped 60fps happening very seldom.
This is "kind of" reproducible (the switching seems random, but always happens) and does not happen with 0.96.
If you want me to i can make screenshots showing that behaviour.
I would be very interested in an explanation.

Rryanmusante 2019-02-19 github

@QuImUfu Disable Ambient occlusion, depth of field, global illumination. Those are hogs.

QQuImUfu 2019-02-19 github

@ryanmusante all this is happening with minimal settings. These things are all of.

Rryanmusante 2019-02-19 github

@QuImUfu Export running output to a logfile and see what the levels of usages are and the highs/lows.

Ddoitsujin maintainer 2019-02-22 github

I would be very interested in an explanation.

No idea, but performance can be rather random under memory pressure with the new overallocation behaviour.

Anyway, DXVK would probably have to dynamically page textures in and out of video memory to make this game sort of work on your card, which unfortunately is extremely hard and would require not only a complete rewrite of the memory manager, but also major changes to other parts of the code. It may not be impossible, but I can't promise that this will ever happen.

Vvulturm 2019-02-23 github

I was wondering.. would AMDVulkanMemoryAllocator help improving the situation?

Ddoitsujin maintainer 2019-02-23 github

Not really, no. While the AMD allocator supports defragmentation, the one thing that makes this so hard to implement is that all resources that get moved have to be recreated and copied at the right time.

Nothing extracted yet.