Skip to content

[WIP] obs-browser: GPU-process-loss resilience + OnAcceleratedPaint teardown guard#739

Open
summeroff wants to merge 4 commits into
streamlabsfrom
fix/onacceleratedpaint-race
Open

[WIP] obs-browser: GPU-process-loss resilience + OnAcceleratedPaint teardown guard#739
summeroff wants to merge 4 commits into
streamlabsfrom
fix/onacceleratedpaint-race

Conversation

@summeroff

@summeroff summeroff commented Jun 8, 2026

Copy link
Copy Markdown

Summary

Bumps plugins/obs-browser to the merged streamlabs/obs-browser#54, which hardens hardware-accelerated browser sources against the libcef crash spike on Streamlabs Desktop 1.21.x. Branched from 31.1.2sl19.

Change

plugins/obs-browser: 2660d9b -> 4002dac   (squash-merge of obs-browser#54 on streamlabs)

Submodule gitlink only, no other files. The merged commit contains:

  1. --disable-gpu-process-crash-limit (primary) — survive transient GPU-process loss instead of escalating to Chromium's fatal IntentionallyCrashBrowserForUnusableGpuProcess() ("GPU process isn't usable. Goodbye.").
  2. Re-check validity under the graphics lock in OnAcceleratedPaint (secondary hardening) — close a teardown TOCTOU window.

Root cause

Both Sentry-reported crashes share gpu_data_manager_impl_private.cc:454: GPU process isn't usable. Goodbye. — Chromium deliberately aborting after CEF's GPU process dies past its crash limit, correlated with a host D3D11 device removal / TDR (887A0005, "Rebuilding all assets", shared-texture rebuild failures). The crash-limit flag is the primary mitigation; the OnAcceleratedPaint guard is secondary. Full analysis and verification status in streamlabs/obs-browser#54.

Verification

  • obs-browser#54 builds clean (combined tree, exit 0) and is merged to streamlabs.
  • This PR is a gitlink-only change pointing at that squash commit (4002dac).

Status

obs-browser#54 is merged; this PR now points at its squash commit 4002dac on streamlabs (no longer the pre-merge PR-branch pointer). Ready to merge.

summeroff and others added 2 commits June 8, 2026 13:29
Bump plugins/obs-browser to 5b30996 to pull in the OnAcceleratedPaint
teardown-race guard (streamlabs/obs-browser#54), which fixes the libcef
crash on BrowserManagerThread seen in dual-output sessions with browser
sources. Branched from 31.1.2sl19.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump plugins/obs-browser 5b30996 -> 9d18953 to add --disable-gpu-process-crash-limit
(streamlabs/obs-browser#54), so a transient GPU reset (TDR) no longer escalates to
Chromium's fatal 'GPU process isn't usable' abort. Combines with the OnAcceleratedPaint
teardown guard already in this bump.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@summeroff summeroff changed the title obs-browser: re-check validity under graphics lock in OnAcceleratedPaint obs-browser: GPU-process-loss resilience + OnAcceleratedPaint teardown guard Jun 9, 2026
Bump plugins/obs-browser 9d18953 -> 4002dac, the squash-merge of
streamlabs/obs-browser#54 on streamlabs (GPU-process crash-limit flag +
OnAcceleratedPaint teardown guard). Replaces the pre-merge PR-branch pointer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@summeroff summeroff changed the title obs-browser: GPU-process-loss resilience + OnAcceleratedPaint teardown guard [WIP] obs-browser: GPU-process-loss resilience + OnAcceleratedPaint teardown guard Jun 26, 2026
* libobs-winrt: Guard WGC capture against removed graphics device (#733)

* Guard DirectShow filter activation (#740)

* libobs: append message/get_messages to obs_source_info (#735)

* libobs: bound volmeter plane index against MAX_AV_PLANES (#737)

* libobs: mix scene-item audio when item canvas is unset (#738)

* libobs: Fix use-after-free of canvas view in audio thread (#736)

* Add structured module load failures (#741)

* Fix NDI 6 runtime loading on macOS

---------

Co-authored-by: Vladimir <summeroff@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants