ValveSoftware / ValveSoftware/Proton

Descenders (681280)

Open
#10,124 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Game compatibility - Unofficial
Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

Game: Descenders (appid 681280) — Unity 2017.4.40f1, Windows depot
Regression: works on Proton 9.0 and 10.0, crashes on Proton 11
Tested: 11.0-2c and experimental-11.0-20260903b — both crash
OS/GPU: SteamOS 3.8.26 (beta), Game Mode, Mesa RADV, NAVI33

Symptom

Intermittent crash a few seconds after the window appears, during the boot logo
videos. Roughly 5 of 7 launches on Proton 11; never observed on 9 or 10.

MFReadWrite.dll caused an Access Violation (0xc0000005)
Read from location ffffffff caused an access violation.
Fault
--- Exception 0xc0000005   addr=MFReadWrite.dll+0x8553
info[0]=0000000000000000
info[1]=FFFFFFFFFFFFFFFF
backtrace:
  MFReadWrite.dll + 0x8553
  MFReadWrite.dll + 0x9622
  rtworkq.dll     + 0x3580
  rtworkq.dll     + 0x5957
  ntdll.dll       + 0x6D7AD
  ntdll.dll       + 0x6C668
  kernel32.dll    + 0x11649
  ntdll.dll       + 0x10E0F
Trace

A second MP4 media source is created ~15 ms before the crash, while the first
source reader is still draining stream events on an rtworkq worker thread:

mfplat:presentation_descriptor_SetString ..., MF_PD_MIME_TYPE, L"video/mp4"   <- source #2
...
wg_transform_read_data: Cannot read 3110400 bytes, no output available
...
mfplat:source_reader_stream_events_callback_Invoke ... stream A
mfplat:media_stream_Release stream A, refcount 1
mfplat:source_reader_stream_events_callback_Invoke ... stream B
mfplat:media_stream_Release stream B, refcount 1
--- Exception 0xc0000005

3110400 = 192010801.5, one 1080p frame. The decoder had no output available,
and the source reader then reads through a -1 pointer dispatching a stream event.

Notes on cause
  • Not the video content: replacing the boot videos with a synthetic 1 s black
    clip (H.264 Main, 1080p, 30 fps, silent AAC) reproduces it identically.
  • Not winedmo: Proton 10 ships winedmo and does not crash.
  • The visible difference is ntsync, new in Proton 11 (this title logs
    ntsync: up and running on 11; Proton 10 titles log fsync). PROTON_NO_FSYNC=1
    does not help on 11, as expected — it does not affect ntsync, and there appears
    to be no ntsync opt-out to test against.
  • Timing-sensitive: with heavy WINEDEBUG tracing enabled the crash sometimes
    does not occur, consistent with a race.
Corroboration

A ProtonDB report from ~5 months ago on proton-cachyos describes the same thing:
"Sometimes, game would crash on startup. Goes away after second launch."

Workaround

Force Proton 10 (or 9).

Full PROTON_LOG available on request.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are named. Start by reproducing the Descenders boot-video crash on Proton 11 and comparing it with Proton 10, focusing on the ntsync and Media Foundation traces described here. Done would mean identifying and correcting the race so repeated launches no longer crash, while preserving the existing Proton 10 behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.