[Bug 59838] New: NtSetContextThread access violation in fiber/coroutine init — Path of Exile 2, Intel Arc B580 (xe driver)
http://bugs.winehq.org/show_bug.cgi?id=59838 Bug ID: 59838 Summary: NtSetContextThread access violation in fiber/coroutine init — Path of Exile 2, Intel Arc B580 (xe driver) Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: ntdll Assignee: wine-bugs@list.winehq.org Reporter: bugs.winehq.org.exploring675@passmail.com Distribution: --- Created attachment 81127 --> http://bugs.winehq.org/attachment.cgi?id=81127 Steam log file # Bug Report: NtSetContextThread access violation with Path of Exile 2 on Intel Arc B580 (Battlemage / xe driver) ## Summary Path of Exile 2 deadlocks on startup due to an access violation in `NtSetContextThread` under all tested Proton and Wine builds. The crash is consistent and reproducible across five Proton variants, two kernel versions, with and without the Steam Linux Runtime (pressure-vessel), and across both available renderers (Vulkan and DX12). The issue appears specific to the Intel Arc B580 (Battlemage / Xe2) using the `xe` DRM driver. The game works on Windows on the same hardware. --- ## Environment | Component | Details | |---|---| | OS | Kubuntu 26.04 LTS (Resolute Raccoon) | | Kernel (tested) | 6.17.0-29-generic, 7.0.0-22-generic — both affected identically | | CPU | Intel Core i5-12600KF (Alder Lake, 10-core) | | GPU | Intel Arc B580 (Battlemage, Xe2) — `Device: Intel Battlemage G21 [Arc B580], driver: xe` | | Mesa | 26.0.5 (kisak-mesa PPA) | | Vulkan | 1.4.341, driver: intel (ANV) | | Display | Wayland (KDE Plasma / kwin_wayland) | | RAM | 32 GiB | | ptrace_scope | Tested at both 1 (default) and 0 — no difference | | Steam Runtime | Tested with and without (`STEAM_LINUX_RUNTIME=0`) — no difference | --- ## Proton / Wine Versions Tested All of the following crash at `NtSetContextThread` with identical or near-identical register states: - GE-Proton10-34 - GE-Proton9-27 - Proton Experimental - Proton Hotfix - Proton-CachyOS 11.0-20260521 (x86_64_v3) GE-Proton builds show a slightly earlier crash point (Wine ntdll execute-mutex initialization); all Valve and CachyOS builds crash consistently at `NtSetContextThread + 0x25d` / `+ 0x288`. --- ## Crash Description Path of Exile 2 uses a fiber/coroutine-based job system (GGG's internal engine) that calls `NtSetContextThread` to switch execution contexts between worker fibers at startup. Wine's implementation sends a signal to the target thread to modify its context. This fails on the Intel Arc B580 / xe driver combination, triggering the game's built-in deadlock detector. The access violation occurs at `NtSetContextThread + 0x25d` (or `+0x288` in CachyOS build) reading from address `0x34` (near-null dereference). A secondary fault then occurs during stack unwind at offset `-0x28` from an invalid pointer, producing "Fault during unwind" and leaving the thread in a permanent hang. --- ## Variables Confirmed to Have No Effect - Kernel version (6.17.0-29 vs 7.0.0-22) - `STEAM_LINUX_RUNTIME=0` (bypassing pressure-vessel) - `PROTON_USE_NTSYNC=1` (ntsync loaded via `modprobe ntsync`) - `ANV_ENABLE_PIPELINE_CACHE=0` - `PROTON_FORCE_LARGE_ADDRESS_AWARE=1` - `PROTON_ENABLE_WAYLAND=1` - `LD_PRELOAD=""` - `kernel.yama.ptrace_scope=0` - Renderer: Vulkan vs DirectX 12 (DX12 crashes earlier in a different mutex init path; Vulkan reaches `NtSetContextThread`) - Fresh Wine prefix vs existing - Proton version (see list above) --- ## Additional Notes - The game runs correctly on Windows 11 on the same hardware (confirmed) - Other Linux users with NVIDIA or AMD GPUs report the game working normally under Proton - Intel Arc B580 uses the `xe` DRM driver (not `i915`); Battlemage (Xe2) is not supported by `i915` - The crash occurs during fiber/thread pool initialization before any rendering begins, making it renderer-independent in practice - GE-Proton builds (9 and 10) show a related but earlier crash variant in Wine's ntdll execute-mutex path (`rdx=5f6574756365784d` = "Mxecute_") suggesting the fiber thread pool init fails at multiple points depending on Wine version --- ## Steps to Reproduce 1. Install Path of Exile 2 via Steam on a system with Intel Arc B580 (xe driver) running Linux 2. Set any Proton compatibility tool (GE, Experimental, CachyOS) 3. Launch the game 4. Observe black screen followed by game's DeadlockDetector dialog 5. Run: `cat ~/steam-2694490.log | grep -i "NtSetContextThread\|deadlock\|fault"` to confirm crash location --- ## Expected Behavior Game initializes fiber/thread pool and reaches the main menu. ## Actual Behavior `NtSetContextThread` access violation during fiber context initialization. Game's DeadlockDetector fires. Process remains alive but hung. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla