Case Studies & Experiments May 27, 2026

We Recovered a Silent Fest Demo After Proton Experimental Vulkan Loader Regression - 2026 Case Study

2026 case study—recover silent Steam Deck fest demos after Proton Experimental Vulkan loader regression using proton pin rollback and proton_audio_recovery_receipt_v1.json.

By GamineAI Team

We Recovered a Silent Fest Demo After Proton Experimental Vulkan Loader Regression - 2026 Case Study

Pixel-art hero for silent fest demo Proton Experimental Vulkan loader regression recovery case study 2026

This is a synthesized case study—a field pattern from July–October 2026 Steam Deck fest demos where the Windows depot passed Wednesday smoke and menu FPS cap receipts, but installed Deck builds launched to a black or frozen frame with zero audio after players (and facilitators) moved to Proton Experimental on a newer Steam client image. Discord threads said “audio driver bug.” Engineering could not reproduce on the Windows QA PC.

There are no invented crash rates, no fake refund percentages, and no named studio personas. Recovery means pinning Proton, proving Vulkan/audio init on Deck with logs—not assuming Windows green gates transfer to Proton.

Pair with 16 ProtonDB and Deck log export tools, MangoHud GPU idle case study (heat ≠ silence), Deck Verified autumn refresh, menu FPS opinion, crash symbolicate tutorial (Windows .dmp lane), and planned help MangoHud GPU 99% despite receipt. Forward Help #12 when logs show GPU peg with audio present.

Non-repetition note: FMOD WebGL silent snapshots is browser audio. MangoHud case study is GPU % at idle. This URL is Deck Proton Vulkan/audio output failure after Experimental bump—game runs, no sound, or hung present.

Why this matters now (October 2026)

  1. Proton Experimental velocity — Steam client updates move faster than fest branch promotion cadence.
  2. Windows-first QA — Teams smoke on desktop; Deck failures arrive from players first.
  3. Silent ≠ crashed — No minidump; crash symbolicate receipt never triggers.
  4. Refund language — “No sound on Deck” tags pollute refund dashboards beside real crashes.
  5. Receipt false greensmenu_fps_cap and demo_smoke pass on Windows while proton_audio_ok column missing on BUILD_RECEIPT.

Direct answer: Record proton_pin on BUILD_RECEIPT; reproduce on installed Deck with Experimental on; capture deck log bundle; rollback or pin Proton; file proton_audio_recovery_receipt_v1.json with audio_smoke_pass: true before re-promotion.

Beginner quick start — what “recovered” means

Recovered in this pattern means:

  1. Reproduced silence on Deck with documented Proton version—not only Windows.
  2. Identified Experimental regression vs game regression (pin swap test).
  3. Restored audible menu + gameplay on same build_label after pin/launch fix.
  4. Logged receipt JSON and updated BUILD_RECEIPT proton_pin.
  5. Reduced new “silent on Deck” facilitator rows for seven days on that label (qualitative).

Not recovered: Claiming “works on my PC” without Deck log bundle.

Symptom checklist (beginner)

Player report Often actually
“No sound on Deck” Vulkan init fail, not FMOD bank
“Black screen then nothing” Swapchain + silent audio combo
“Works on desktop Steam” Native Windows path OK; Proton path broken
“Worked yesterday” Client updated Proton overnight
“Menu music gone only” Partial init—still block promotion

If the game hard crashes to desktop, switch to crash symbolicate lane first.

Two lanes beginners confuse

Lane Evidence Tooling
Windows native .dmp, Event Viewer Desktop QA
Deck / Proton Player.log, Proton log, MangoHud Deck log listicle
WebGL / HTML5 Browser console itch MIME helps
FMOD bus snapshot WebGL only FMOD WebGL blog

Fest Windows depot teams still owe Deck lane proof when marketing mentions Deck Verified.

Starting state (typical wrong assumptions)

Layer Belief Reality
QA “Smoke passed” Windows smoke only
Audio “Must be FMOD” Proton Vulkan before banks load
ProtonDB “Gold tier” Community tier ≠ your Experimental pin
BUILD_RECEIPT No proton_pin row Cannot diff client updates
Support Screenshot enough Need log zip + build_label

Root cause pattern (synthesized)

Mechanic Deck symptom Windows
Experimental Vulkan loader bump Silent or hang at boot Unaffected
Game forces Vulkan without fallback Fails on new loader Older driver OK
Launch option -force-vulkan stale Breaks after Proton update N/A
PipeWire / pulse init race Rare silent until focus N/A
Shipped without Deck audio smoke Found at fest Never tested

Often triggered 48 hours after facilitator updated Steam OS beta.

Beginner mistake: Hearing audio on a developer PC Steam install (Windows native) and closing the ticket—always ask “which hardware and which Proton channel?”

Working dev mistake: Shipping AUDIO_FMOD_FIX commit without T2 pin swap proof—proves middleware guilt, not Proton innocence.

Timeline (five working days — pattern timing)

Day Focus Output
D1 Repro on Deck + log bundle deck-logs/<build_label>/
D2 Pin swap (Experimental on/off) proton_pin_test.md
D3 Launch options / engine flags Patch or launch_options.txt
D4 Audio smoke golden path audio_smoke_pass evidence
D5 Receipt + BUILD_RECEIPT proton_audio_recovery_receipt_v1.json

Gates A1–A6 (Proton audio recovery)

Gate Name Pass criterion
A1 Deck installed repro Not remote play guess
A2 build_label matches receipt No stray depot
A3 Proton version recorded Experimental vs stable noted
A4 Pin swap differentiates Game vs Proton fault isolated
A5 Menu + gameplay audio audible Facilitator sign-off
A6 Receipt archived promotion_allowed: true

Day 1 — Reproduce with log bundle (A1–A2)

Facilitator steps

  1. Install fest/playtest build on Deck; note on-screen build_label.
  2. Confirm Steam client channel (stable vs beta) in REPRO_STEPS.txt.
  3. Launch game; wait 60 seconds on title (audio often fails before gameplay).
  4. Run MangoHud 5 minutes (deck log listicle Tool 3).
  5. Copy Proton + Player.log (Tool 6).
  6. Zip; file deck_log_bundle_receipt_v1.json.

Fail A1 if: only Windows repro attached.

Log lines engineers grep

err:vulkan
VK_ERROR
wine: failed
AL lib: (EE)
FMOD failed to init

Presence of Vulkan errors with absent FMOD lines → suspect Proton loader first.

Day 2 — Pin swap matrix (A3–A4)

Test Proton setting Expected if Proton fault
T1 Experimental on Silent
T2 Experimental off (stable) Audio returns
T3 Prior Experimental build (if possible) Audio returns
T4 Windows desktop same build Audio OK

Document in proton_pin_test.md:

# Proton pin test — fest-demo-2026-10-rc5
T1 Experimental 2026-05-xx: SILENT (logs: vulkan init)
T2 Stable Proton 9.x: AUDIO OK
T4 Windows 11 desktop: AUDIO OK
Conclusion: Proton Experimental regression; pin stable for promotion week

Pass A4: T2 restores audio without game byte change.

Day 3 — Launch and engine mitigations

Unity / IL2CPP common mitigations

  • Remove stale -force-vulkan from Steam launch options.
  • Try -force-d3d11 on Proton per Deck Verified refresh guidance—document in receipt, not blind cargo-cult.
  • Verify FMOD/Wwise init after first frame presented (not in Awake before graphics).

Godot / custom engines

  • Check Vulkan vs OpenGL export template on Deck.
  • AudioServer output device logs in Player.log.

Scope rule: If pin rollback fixes audio, ship pin policy before engine refactors—fest week is not rewrite week.

Day 4 — Audio smoke golden path (A5)

Read aloud on installed Deck after fix:

  1. Cold boot game from Steam library.
  2. Hear menu music or UI click within 30 seconds.
  3. Start new game / continue.
  4. Trigger one gameplay SFX.
  5. Open pause; confirm UI sound.
  6. Alt-tab out and back (PipeWire focus test).
  7. Quit; relaunch once.

Record short phone video or facilitator attestation in receipt—video optional if logs strong.

Pair: GIF carousel audio opinion—store marketing silent ≠ in-game silent.

Day 5 — proton_audio_recovery_receipt_v1.json

{
  "schema": "proton_audio_recovery_receipt_v1",
  "build_label": "fest-demo-2026-10-rc5",
  "surface": "fest_public",
  "platform": "steam_deck",
  "proton_pin": "stable-9.x-2026-05",
  "proton_pin_test_summary": "Experimental silent; stable audio OK",
  "gates": {
    "A1_deck_installed_repro": true,
    "A2_build_label_match": true,
    "A3_proton_version_logged": true,
    "A4_pin_swap_isolated": true,
    "A5_audio_smoke_pass": true,
    "A6_receipt_archived": true
  },
  "deck_log_bundle_path": "release-evidence/deck-logs/fest-demo-2026-10-rc5.zip",
  "promotion_allowed": true,
  "human_signoff": { "role": "engineer", "utc": "2026-05-31T17:00:00Z" }
}

BUILD_RECEIPT columns

"proton_pin": "stable-9.x-2026-05",
"proton_audio_ok": true,
"proton_audio_recovery_receipt_path": "release-evidence/deck-logs/proton_audio_recovery_receipt_v1.json",
"deck_log_bundle_ok": true

Thursday row review diffs proton_pin when client updates mid-fest.

Cousin failures (do not mis-route)

Symptom Read instead
GPU 99% idle, audio OK MangoHud case study
WebGL FMOD snapshot silent FMOD WebGL blog
InvalidKey / UI keys Addressables challenge
Windows minidump Crash symbolicate tutorial

Evidence folder layout

release-evidence/deck-logs/fest-demo-2026-10-rc5/
  REPRO_STEPS.txt
  proton_pin_test.md
  mangohud-idle.csv
  mangohud-combat.csv
  player.log
  proton-*.log
  protondb-permalink.txt
  deck_log_bundle_receipt_v1.json
  proton_audio_recovery_receipt_v1.json
  optional_menu_audio_clip.mp4

Zip once per build_label per incident—partners grep folders, not Discord threads.

Engine notes (working dev)

Engine Deck audio risk Quick check
Unity + FMOD Bank load before graphics device Delay RuntimeManager.Init until first scene
Unity + Wwise Wrong plugin path on Linux Linux bank path in BUILD_RECEIPT
Godot 4.x Vulkan default export Test OpenGL template on Deck once
Unreal Vulkan RHI on Proton -d3d11 launch option trial in A4 matrix
GameMaker Less common Still require Deck smoke

Audio middleware logs matter after Vulkan presents first frame—order bugs mimic Proton silence.

Facilitator script (Discord pin)

Deck blocker template: export deck-logs-<build_label>-<date>.zip with Proton logs + MangoHud CSV + REPRO_STEPS.txt. Note Steam → Settings → Proton Experimental on/off. Without logs we cannot tell Proton regression from game regression.

Link multi-channel facilitator contract.

Incident response (first 90 minutes)

Minute Owner Action
0–15 Support Confirm build_label, Experimental on/off
15–35 Facilitator Repro + zip logs
35–50 Engineer Pin swap T1/T2
50–70 Engineer Decide pin policy or hotfix
70–90 Producer Hold promotion; update BUILD_RECEIPT

Do not publish “audio fix incoming” without A5 proof—store reviews accumulate faster than patches.

Worked vignette (composite, no invented metrics)

Setup: Co-op fest demo fest-demo-2026-10-rc5, Windows QA green, October playtest wave.

Tuesday: Facilitators upgrade Steam OS; Experimental enabled globally.

Wednesday: #playtest reports “silent menu” on Deck; Windows stream from same build has audio.

Thursday: Pin swap shows Experimental fault; team pins stable Proton for fest week; launch options unchanged.

Friday: proton_audio_recovery_receipt_v1.json true; proton_pin on BUILD_RECEIPT; new Deck reports shift to balance issues—not silence.

Pattern timing varies; pin swap is the diagnostic hinge.

BUILD_RECEIPT diff example (conceptual)

Field rc4 (broken week) rc5 (recovery)
proton_pin experimental-2026-05 stable-9.x-2026-05
proton_audio_ok false true
deck_log_bundle_ok true (logs existed) true
menu_fps_cap_ok true true

Shows FPS cap ≠ audio OK—two columns required.

Steam client update mid-fest playbook

When Valve ships client update during fest:

  1. Freeze promotions 2 hours.
  2. Re-run T1/T2 pin swap on one facilitator Deck.
  3. If T2 fails, escalate to engine—if T2 passes, update proton_pin only.
  4. Post changelog line: “Deck users on Experimental: switch to stable or wait rc6.”
  5. Do not re-run full seven-day Addressables challenge unless content PR merged.

Partner diligence sentence

“Deck installs include proton_audio_recovery_receipt_v1.json, deck_log_bundle_receipt_v1.json, and documented proton_pin for the promotion build—Windows smoke logs do not substitute for Deck audio smoke.”

Attach beside top-20 receipts hub.

jq CI sketch (receipt gate)

#!/usr/bin/env bash
set -euo pipefail
jq -e '
  .schema == "proton_audio_recovery_receipt_v1"
  and .promotion_allowed == true
  and .gates.A5_audio_smoke_pass == true
' "$1"

Run on promotion branches targeting fest_public.

Prevention (post-recovery policy)

  1. Deck audio smoke on every promotion—15 minutes, installed build.
  2. proton_pin row mandatory on BUILD_RECEIPT.
  3. Facilitator README — Experimental allowed only with daily log bundle.
  4. ProtonDB permalink saved when reports mention Experimental (Tool 1).
  5. Freeze Experimental during fest week unless receipt re-run.

Promotion gate integration

[ ] proton_audio_ok true on BUILD_RECEIPT
[ ] deck_log_bundle_receipt promotion_allowed true
[ ] A5 audio smoke documented
[ ] proton_pin matches Steam client screenshot in evidence
[ ] Wednesday smoke same build_label (Windows leg)

Windows smoke does not satisfy Deck audio rows.

Refund and support crosswalk

Tag dashboard rows:

Tag When
perf-deck Heat/GPU (MangoHud case study)
audio-deck Silence / missing SFX (this pattern)
crash Minidump present
store-copy Trailer/store mismatch

Do not merge audio-deck into crash—engineering queues differ.

Common mistakes

  1. Testing audio in Editor on Windows only
  2. Assuming FMOD fix without pin swap
  3. Promoting on ProtonDB “Gold”
  4. Skipping proton_pin on BUILD_RECEIPT
  5. Confusing with GPU idle receipt pass
  6. Sending screenshots without logs
  7. Forcing Experimental for “latest compat” during fest freeze week
  8. Merging Deck audio into Windows-only smoke without a second receipt column

Key takeaways

  1. Silent Deck demos spiked with Proton Experimental velocity in 2026 H2.
  2. Pin swap isolates Proton vs game faster than week-long audio refactors.
  3. proton_audio_recovery_receipt_v1.json wires Deck audio to BUILD_RECEIPT.
  4. Deck log bundle is evidence—Discord photos are not.
  5. Windows smoke green does not imply Deck audio green.
  6. MangoHud heat and Vulkan silence are cousin symptoms—route correctly.
  7. Forward Help #12 when GPU peg with audio present.
  8. Pair Addressables challenge when UI shows keys and silence.
  9. Deck Verified refresh documents Proton test expectations.
  10. Next cluster row #5 — refund↔BUILD_RECEIPT correlation playbook.

ProtonDB research discipline (Day 1 add-on)

When facilitators save Tool 1 permalink from Deck log listicle:

  • Filter reports mentioning Experimental in last 30 days.
  • Note if reports cite Vulkan or silent keywords.
  • Record access date in protondb-permalink.txt.
  • Do not treat Gold/Platinum as your build’s pass—community tiers describe other pins.

If ProtonDB quiet but Discord loud, trust installed logs over stars.

Audio middleware triage order

  1. Graphics device presents (Vulkan/D3D11)
  2. OS audio sink (PipeWire pulse)
  3. Middleware init (FMOD/Wwise)
  4. Bank load paths (Linux vs Windows)
  5. In-game bus snapshots (gameplay only)

Skipping to step 4 while step 1 fails wastes a sprint.

Marketing and store truth

Store-demo mismatch recovery covers trailer lies. This case study covers Deck runtime silence when store promised sound—FAQ annex for support macros:

“Our Windows build plays audio; if you are on Steam Deck, confirm Proton Experimental is disabled per patch notes, or update to build_label which pins stable Proton.”

Comparison to MangoHud recovery timeline

Dimension MangoHud case study This case study
Primary signal GPU % pegged Zero audio / hang
Receipt mangohud_idle_recovery_receipt_v1.json proton_audio_recovery_receipt_v1.json
Fix lean Static menu render Proton pin / Vulkan path
False green menu_fps_cap pass demo_smoke Windows pass

Teams may need both receipts on same build_label during October.

Wednesday smoke alignment

Wednesday smoke S-gates cover boot and 60s golden path on Windows. Add internal note:

Deck audio smoke is not a substitute for S-gates; S-gates are not Deck audio proof.

Extend smoke checklist doc with one row: deck_audio_smoke_scheduled Y/N.

Standing producer questions (30 seconds)

  1. What is proton_pin on the candidate BUILD_RECEIPT?
  2. Did facilitators test Experimental on since last promotion?
  3. Is proton_audio_ok true with archived zip path?
  4. Any audio-deck refund tags still open?
  5. Did we message players about Experimental toggle?

If (2) is “unknown,” promotion waits.

Receipt pairing: File proton_audio_recovery_receipt_v1.json in the same zip as deck_log_bundle_receipt_v1.json so Thursday row review diffs one evidence folder—not two orphan JSON files on different laptops. Auditors thank you.

FAQ

Is this the same as “game runs but no music” on Windows?

Usually no—this case study is Deck/Proton. Run Windows audio smoke separately.

Should we ban Proton Experimental for fest?

Many teams pin stable for fest week and re-test Experimental after—document policy in facilitator contract.

Can we fix with launch options only?

Sometimes -force-d3d11 helps—prove with A4 pin matrix before relying on it.

What if audio returns but video stutters?

File separate perf-deck receipt; do not mark proton_audio_ok false if audio smoke passed.

Does crash symbolicate replace this?

No—silent failures may produce no minidump. Run both receipts on promotion.

Should we test on Steam Deck LCD and OLED?

Yes—both share Proton stack; record model in REPRO_STEPS.txt. Battery metrics differ; audio path often does not.

Can players fix by opting into Experimental for “compat”?

Discourage during fest week—your receipt documents tested pin, not player-chosen Proton roulette.

Recovery definition for producers

Recovered does not mean “every Deck in the world.” It means: for your promoted build_label, facilitators following your README reproduce audible golden path on installed build with documented proton_pin, and new silence reports stop clustering on that label for one fest week. Scope honesty prevents over-promising in October patch notes.

Closing discipline

Archive one facilitator-attested audio_smoke_pass.txt with UTC timestamp and Deck serial last four digits—video optional when logs and pin matrix are complete.

Half-pinned Proton is worse than honest delay: promoting while Experimental silently breaks audio produces refund language that refund dashboard tags as store-copy when the real fault was compat evidence. File the receipt, pin the client, message facilitators—then promote.

Related reading

Next in cluster: October refund signal dashboard BUILD_RECEIPT correlation trend playbook (published); blog backlog #6 HDR screenshot bloom art pass.