protonscr

Gears 5 hangs on launch (Bisected regression)

vkd3dclosed
HansKristian-Work/vkd3d-proton#1281 · opened 2022-11-06 by K0bin · updated 2022-11-29 · 6 comments · github
KK0bin 2022-11-06 github

First initially reported by @GloriousEggroll. The game hangs before presenting a single frame.

The game needs ProtonGE to work around EAC for the single player campaign.

I've bisected the hang down to df1829e40770482597ab168559ef2d68ab3ec707 and confirmed that by reverting the commit on top of master.

df1829e40770482597ab168559ef2d68ab3ec707 is the first bad commit
commit df1829e40770482597ab168559ef2d68ab3ec707
Author: Derek Lesho <[email protected]>
Date:   Fri Jul 15 15:35:42 2022 -0400

    vkd3d: Implement ID3D12Fence sharing on top of D3D12-Fence exportable Vulkan timeline semaphores.
    
    Signed-off-by: Derek Lesho <[email protected]>

 libs/vkd3d/command.c       | 460 ++++++++++++++++++++++++++++++++++++++++++---
 libs/vkd3d/device.c        |  90 ++++++++-
 libs/vkd3d/vkd3d_private.h |  61 +++++-
 libs/vkd3d/vulkan_procs.h  |   7 +
 4 files changed, 579 insertions(+), 39 deletions(-)

There's also this interesting warning in the log file:

0130:fixme:d3d12_shared_fence_SetEventOnCompletion: Signaling events on shared fence completion not supported.
Kkodatarule 2022-11-14 github

This seems wrong, when I tried the game on the latest ProtonGE first it gives major flickering of the HUD if you choose to enable Async and second almost never loads into the game.

kernel: 6.0.8-x64v1-xanmod1-1
GPU: RTX 3070
CPU: Ryzen 7 5800X3D
RAM: 4x8GB 3000mhz

EDIT: Forgot to mention that on proton 7.0-4 the game is running perfectly with non of the issues above.

GGloriousEggroll 2022-11-14 github

This seems wrong, when I tried the game on the latest ProtonGE first it gives major flickering of the HUD if you choose to enable Async and second almost never loads into the game.

kernel: 6.0.8-x64v1-xanmod1-1 GPU: RTX 3070 CPU: Ryzen 7 5800X3D RAM: 4x8GB 3000mhz

EDIT: Forgot to mention that on proton 7.0-4 the game is running perfectly with non of the issues above.

(1) async is irrelevant because the async patch is only for dxvk, not vkd3d
(2) The issue does not occur on 7.0-4 stable because it does not include the regression which occurred in august. proton experimental has the same issue and has already been confirmed
(3) If it doesn't load into game it's because either the EAC workaround isn't taking effect or the GFSDK_Aftermath_Lib workaround isn't being loaded, these are both unrelated to vkd3d:

https://github.com/GloriousEggroll/protonfixes/blob/2f20e52df2e160ae8404419bd88fddfb8166d497/gamefixes/1097840.py

(4) I've played through the entire campaign with the above fix on the steam deck without issue.

Kkodatarule 2022-11-16 github

This seems wrong, when I tried the game on the latest ProtonGE first it gives major flickering of the HUD if you choose to enable Async and second almost never loads into the game.
kernel: 6.0.8-x64v1-xanmod1-1 GPU: RTX 3070 CPU: Ryzen 7 5800X3D RAM: 4x8GB 3000mhz
EDIT: Forgot to mention that on proton 7.0-4 the game is running perfectly with non of the issues above.

(1) async is irrelevant because the async patch is only for dxvk, not vkd3d (2) The issue does not occur on 7.0-4 stable because it does not include the regression which occurred in august. proton experimental has the same issue and has already been confirmed (3) If it doesn't load into game it's because either the EAC workaround isn't taking effect or the GFSDK_Aftermath_Lib workaround isn't being loaded, these are both unrelated to vkd3d:

https://github.com/GloriousEggroll/protonfixes/blob/2f20e52df2e160ae8404419bd88fddfb8166d497/gamefixes/1097840.py

(4) I've played through the entire campaign with the above fix on the steam deck without issue.

I meant the in-game async it has option that you can enable if you go all the way down it's called "Async Compute"

https://media.game-debate.com/images/news/27439/_id1563700986_343178.jpg

KK0bin 2022-11-16 github

I've tried the game on my Nvidia GPU including the async compute option and it worked fine.

I also don't really see why async compute would have anything to do with reacting to fence events on the CPU.

Kkodatarule 2022-11-16 github

I will be able to retry soon and if any issues still occur, I'll make a video + log

Kkodatarule 2022-11-17 github

After testing again, I am unable to reproduce the hang when loading so that's a good start, but the async compute issue is still present which is not happening on proton 7.0-4(attaching video)
https://drive.google.com/file/d/1-4IH7hS-Mb04l4aHhsZASU2XMhwqT3I6/view?usp=share_link

Proton versions