ValveSoftware / ValveSoftware/Proton

Subliminal (2300840)

Open
#10,130 3 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

Subliminal (appid 2300840, UE 5.7) shows white/blank TVs wherever the game plays video (Basement, Playplace, side rooms). TV audio still plays, so it's easy to miss, but progression is gated on a TV video — the ROTTEN ending reportedly never triggers without it. ProtonDB has the same report ("videos and TV screens would fail to play").

Setup: Proton Experimental 11.0-20260903b, RTX 5090, Debian, KDE Wayland. The game's TV player is UE's Electra player opening file:// mp4s (H.264/AAC) through Media Foundation. DXVK_FILTER_DEVICE_NAME was set to avoid the separate UE adapter-selection white screen; it isn't related to this.

WINEDEBUG="+winedmo,+mfsrcsnk,+mfplat,+mfmediaengine,+mfplay,+mfreadwrite" while walking to a TV — h264parse emits sane caps and avdec_h264 refuses them, for every TV open:

0:01:27.595 INFO  h264parse gsth264parse.c:2191:gst_h264_parse_update_src_caps:<h264parse1> resolution changed 640x360
0:01:27.595 GST_EVENT creating caps event video/x-h264, stream-format=byte-stream,
  streamheader=000000016764001eacd940a02ff9701100000303e90000ea600f162d960000000168ebe3cb22c0,
  pixel-aspect-ratio=1/1, width=640, height=360, framerate=30000/1001, coded-picture-structure=frame,
  chroma-format=4:2:0, bit-depth-luma=8, bit-depth-chroma=8, parsed=true, alignment=au, profile=high, level=3
0:01:27.596 WARN  videodecoder gstvideodecoder.c:934:gst_video_decoder_setcaps:<avdec_h264-1> Subclass refused caps

Later in the same open:

warn:mfplat:topology_loader_resolve_complete Failed to connect D3D-aware input, hr 0x80004002
warn:mfplat:session_events_callback_Invoke Failed to get event ..., hr 0xc00d3e85

The game's own log shows Electra's IMediaPlayer::Open(file://...) running, but no video ever arrives and the TV stays white.

Under GE-Proton11-6 the same videos play. Its MF stack has no winegstreamer at all: it removed gstreamer entirely and runs everything through winedmo -> FFmpeg. The game's logs corroborate: 10+ "Open Media Latent: Media player is closed" failures for TV/generator videos under Proton Experimental, zero under GE-Proton11-6, and the Basement TV confirmed playing on GE.

I don't know the exact reason avdec_h264 refuses the caps — they look acceptable, so it's either winegstreamer's wg_transform caps construction (byte-stream with a streamheader attached?) or the gst-libav version in the Steam runtime. Either way, Valve's build currently decodes Media Foundation video through winegstreamer -> the runtime's gst-libav, and that path fails here, while winedmo -> FFmpeg works.

Suggestion: prefer winedmo for Media Foundation decode in Proton, the way GE's video rework already does; it demonstrably fixes this title.

Workaround today: run the game on GE-Proton 11-x.

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

Start by reproducing the TV playback failure with Proton Experimental and tracing the Media Foundation path through winedmo, winegstreamer, and wg_transform. Compare the decoder behavior with GE-Proton 11-x, where the same videos play through FFmpeg. Done means the game's Electra videos decode and the TV progression works without requiring GE-Proton.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux, unreal-engine
Domain
operating-systems, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.