protonscr

Tom Clancy's: The Division freeze

dxvkclosed nvidia proprietary
doitsujin/dxvk#955 · opened 2019-03-08 by MinIsMin · updated 2019-11-02 · 10 comments · github
1 matching comments, n / p to jump
MMinIsMin 2019-03-08 github

With wine4.3-staging The Division (uplay) is now running on my linux system.
Without DXVK it hangs after selecting the character in the loading screen forever at 100%.

With DXVK it loads fine and I get into the game.
Nearly every second the present mode switches from 'VK_PRESENT_MODE_IMMEDIATE_KHR' to 'VK_PRESENT_MODE_FIFO_KHR' and back:

info:  Presenter: Actual swap chain properties:
  Format:       VK_FORMAT_B8G8R8A8_UNORM
  Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
  Buffer size:  1920x1080
  Image count:  2
info:  Presenter: Actual swap chain properties:
  Format:       VK_FORMAT_B8G8R8A8_UNORM
  Present mode: VK_PRESENT_MODE_FIFO_KHR
  Buffer size:  1920x1080
  Image count:  3

Vsync is disabled and no changes to the window or graphics settings were made.

After some time (varies, never the same spot or situation) it hangs without any clear reason or console output. One core then uses 100% and the game never recovers.

For the apitrace:
Without DXVK (w/ or w/o the apitrace) it never gets behind the 100% in the loading screen.
I didn't upload the apitrace as it's too big for my current connection. If you need it anyway I will be able to upload it in some days.

With DXVK and apitrace it hangs shortly after starting the game.
Apitrace: https://ufile.io/jswgm (82 MB)

The Division is working fine for me on Windows and users report it works fine for them now with 4.3-staging on Linux.

Log files

Game: Tom Clancy's: The Division with lowest graphics settings possible
OS: Ubuntu 18.10
CPU: Intel i5 4210U
GPU: Nvidia 840M
Driver: Nvidia 418.43
Wine: wine4.3-staging
DXVK: 1.0 (also tested 0.96 and latest master)

Nnagsucc 2019-03-08 github

Have you tried disabling Uplay overlay? It does not work with DXVK.

MMinIsMin 2019-03-09 github

No uplay or other overlay enabled.

Also sometimes it freezes with 'VK_ERROR_DEVICE_LOST':

info:  Presenter: Actual swap chain properties:
  Format:       VK_FORMAT_B8G8R8A8_UNORM
  Present mode: VK_PRESENT_MODE_FIFO_KHR
  Buffer size:  1920x1080
  Image count:  3
info:  Presenter: Actual swap chain properties:
  Format:       VK_FORMAT_B8G8R8A8_UNORM
  Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
  Buffer size:  1920x1080
  Image count:  2
err:   DxvkDevice: Command buffer submission failed: VK_ERROR_DEVICE_LOST
err:   DxvkDevice: Command buffer submission failed: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkSubmissionQueue: Failed to sync fence: VK_ERROR_DEVICE_LOST
err:   DxvkDevice: Command buffer submission failed: VK_ERROR_DEVICE_LOST
err:   DxvkDevice: Command buffer submission failed: VK_ERROR_DEVICE_LOST
KK0bin maintainer 2019-03-09 github

Try running it with validation layers enabled.

MMinIsMin 2019-03-09 github

I installed the Vulkan SDK, enabled the validation layers and switched DXVK_LOG_LEVEL to debug

Logs: https://www91.zippyshare.com/v/vTNsEz9M/file.html

Looks like it's somehow running out of memory

err:   DxvkMemoryAllocator: Memory allocation failed
  Size:      5636096
  Alignment: 65536
  Mem flags: 0x1
  Mem types: 0x82
err:   DxvkMemoryAllocator: Memory allocation failed

Well, it isn't RAM as atleast 1GB is always free.

Ddoitsujin maintainer 2019-03-09 github

Your driver can't allocate enough memory for the game. This is impossible to fix within DXVK, and you may need to

  • close all other applications
  • use a lightweight window manager without desktop effects,
  • use lowest graphics settings and maybe a lower resolution.

The driver cannot allocate all your RAM as graphics memory, so 1GB being free doesn't mean much in this case.

MMinIsMin 2019-03-09 github

Changed to lowest resolution, closed all applications and disabled all desktop effects.

Freezes after some minutes with the same error message and one CPU core goes up to 100%, even though I'm standing still in the main base and nothing is being (visually) loaded.

Free RAM during peak: 1,8GB
Free VRAM during peak: 49MB
The peak of RAM and VRAM wasn't the same time as the crash.

Besides that, any idea why the present mode switches every few seconds?
I saw logs from other people where it switch only three times at the start of the game.

?ghost 2019-05-19 github

This is impossible to fix within DXVK

@doitsujin Can't you just put data into malloc()-ed memory, instead of allocated with vkAllocateMemory() and then move it as needed? Games probably over-allocate everything.

Ddoitsujin maintainer 2019-05-19 github

No. I mean, yes, in theory it's possible, but an insane amount of work, and doesn't really guarantee anything since all resources used in one command submission have to be backed by Vulkan memory objects.

Rryao 2019-09-05 github

Perhaps this is related to #1169. There is a fix in development by nvidia that might fix that one. When it is available, it might be a good idea to test it here too.

MMinIsMin 2019-11-02 github

Closing as it seems fixed by a driver update.
Can't confirm since I don't have that machine anymore.

Launch options