protonscr

Assassin's Creed Shadows — TaskThread SRW lock deadlock (RtlAcquireSRWLockExclusive spin) on RTX 5070 / Blackwell

protonclosed appid 3159330
ValveSoftware/Proton#9911 · opened 2026-06-26 by A00-r10T · updated 2026-06-26 · 2 comments · github · game page · search this game
1 matching comments, n / p to jump
AA00-r10T 2026-06-26 github

Compatibility Report

Game: Assassin's Creed Shadows (AppID: 3159330)
Proton version(s) tested: Experimental, 11.0 (Beta), GE-Proton 11-1
Distro: Arch Linux
Kernel: 7.0.9-arch2-1
GPU: NVIDIA GeForce RTX 5070 Max-Q (Blackwell GB206M)
Driver: nvidia-open-dkms 595.71.05

Symptoms

The game freezes in specific areas (e.g., the arena). It is a game-only freeze — the window is still responsive, can alt-tab, and the process can be killed. The freeze is consistently reproducible in these areas.

Debugging

The freeze is caused by a userspace deadlock in the game's job/task system. One TaskThread worker thread spins at 30-60% CPU in RtlAcquireSRWLockExclusive / RtlReleaseSRWLockExclusive with wchan: 0 (no kernel wait — pure userspace spin). All other TaskThreads sleep on futex or ntsync.

Thread states during freeze (example):

  TID  STATE  WCHAN                       COMM
  93763 S     ntsync_schedule.isra.0      TaskThread00
  93765 R     (running, wchan: 0)          TaskThread02   ← spinning thread
  93764 S     ntsync_schedule.isra.0      TaskThread01
  93766 S     ntsync_schedule.isra.0      TaskThread03
  ...

GDB backtrace of the spinning thread:

#0  RtlAcquireSRWLockExclusive () from ntdll.dll
#1  RtlReleaseSRWLockExclusive () from ntdll.dll

Attempted Workarounds (all fail)

Configuration Result
Proton Experimental (default) Freeze
Proton 11.0 Beta Freeze
GE-Proton 11-1 (with ntsync kernel module) Freeze
GE-Proton 11-1 + WINE_CPU_TOPOLOGY=8 Freeze (fewer TaskThreads, same lock)
GE-Proton 11-1 + PROTON_NO_FSYNC=1 Freeze
GE-Proton 11-1 + ntsync + no esync/fsync Freeze
Pyroveil (ac-shadows-nvidia-570-stable) No effect (expected — this is not a driver bug)

Notes

  • No Xid errors, no GPU driver crashes in dmesg/journalctl
  • The game runs fine on Windows 11 with the same settings on this hardware
  • The issue manifests specifically in high-density areas (arena) where the task scheduler generates more jobs
  • 95 threads total, 10 TaskThread workers spawned (scales with CPU count)
  • Appears to be a Wine SRW lock fairness/implementation bug, not a GPU driver or game data issue
Kkisak-valve maintainer 2026-06-26 github

Hello @A00-r10T, we're using one issue report per unofficially supported game title, and usually I'd transfer this issue report to #8543, however, there's literally nothing usable here for a Proton dev to ponder beyond a one line summary of your experience.

Closing as a duplicate.

AA00-r10T 2026-06-26 github

That's fine, sorry it wasn't more helpful

Proton versions

Launch options

DLLs