Repository navigation
frontend: GPU acceleration status light, startup warning and GetStats field (#846) - #894
Merged
Merged
Conversation
Report::new() adds the dialog's summary and likely causes; to_json() is the gpuAcceleration object. obs_gpu_status_report()/obs_gpu_status_free() are the frontend's C ABI; the crate also builds as a staticlib. Refs #846
… (RED) Starts OBS with LIBGL_ALWAYS_SOFTWARE=1 and asserts GetStats' gpuAcceleration is not green and the log carries the startup warning. Fails until the frontend and obs-websocket provide the field. Refs #846
A status-bar light (green/yellow/red, refreshed every 5 s) opens a dialog with the summary, active adapter, detected GPUs and likely causes from rust/obs-gpu-status. Startup logs 'GPU acceleration: YELLOW/RED' with the details, and the get_gpu_status proc feeds obs-websocket's new additive GetStats.gpuAcceleration field (submodule bump). The crate is linked into the frontend only with ENABLE_RUST_LIBOBS=ON, like obs-nvenc-plugin, so libobs' exports do not change. Refs #846
zackees
force-pushed
the
fix/846-gpu-status-ui
branch
from
October 15, 2026 21:40
8c57ad8 to
451fe1f
Compare
zackees
marked this pull request as ready for review
October 15, 2026 22:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Completes #846 on top of the classifier in #890.
What it adds
rust/obs-gpu-status/src/report.rs). Each state gets a plain-words summary, e.g. "Your GPU (NVIDIA GeForce RTX 3060) was detected, but OBS is not using its driver. Rendering on the CPU (llvmpipe …); expect choppy video." It also lists likely causes: a sandbox missing EGL/egl-wayland, a missing or mismatched driver, an inaccessible/dev/dri.obs_gpu_status_report/obs_gpu_status_free(frontend/utility/obs-gpu-status.h). The GPU probe runs once per process, sincenvidia-smiis too slow for every refresh.GPUplus a colored dot, refreshed every 5 s). Clicking it opens a dialog with the summary, active adapter, detected GPUs and causes. Startup logs==== GPU acceleration: YELLOW/RED ====with the details. The crate is linked into the frontend only whenENABLE_RUST_LIBOBS=ON, like obs-nvenc-plugin, so libobs' exported symbols do not change. OFF builds show no light.GetStats.gpuAcceleration, read from theget_gpu_statusproc on the global proc handler, so no public header changes. The field isnullwhen nothing provides it. It is additive; no existing field changes.Tests
test: Tier 4 check …):test/websocket-tier4starts OBS withLIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=llvmpipe. It assertsgpuAccelerationis present, has the documented shape and is not green, and that the log carries the startup warning. When the field isnull(OFF build) it only asserts the key is present. It is not wired into CI, as before.Known limits
nvidia-smionly; DXGI enumeration is a follow-up.Fixes #846