Conversation
…ux laptops Some distros (Omarchy by default) set LIBVA_DRIVER_NAME=nvidia session-wide. On hybrid laptops Chromium renders on the iGPU, so its NVIDIA guard passes and video decode moves to the NVIDIA GPU, whose frames never display. Disable accelerated video decode when that driver is forced.
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This startup change fixes a targeted Linux/NVIDIA playback issue by changing Chromium's default video-decoding mode for affected sessions, with potential CPU, power, and playback-performance tradeoffs across all videos. The product-default change should be confirmed by a human maintainer. You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughOn Linux, Electron setup now appends Chromium’s ChangesLinux video decode configuration
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to No confirmed issue blocks merging the Linux video workaround on the available evidence. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change is limited to Linux launches with a specific video-driver setting. It disables hardware video decoding for that app process and does not appear to grant access or change credentials. Its process-wide effect and restart-only rollback warrant a design review. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
On hybrid Linux laptops where the iGPU drives the display, some distros set
LIBVA_DRIVER_NAME=nvidiafor the whole session. Omarchy does this by default, and it's already tracked there (omacom/omarchy#12594, #13081, #13549). Chromium's NVIDIA check only looks at the GPU it renders on, so video decoding moves to the NVIDIA card and the frames never reach the screen. In T3 Code, chat videos show as black boxes and pressing play spins at 0:00.This isn't a T3 Code bug, and the real fix belongs upstream. Omarchy has already merged one (omacom/omarchy#11690), but it isn't in a release yet, and other distros or users can set the same variable. I'm opening this because a lot of T3 Code users run Omarchy and the accommodation is small, but I'm happy to close it if you'd rather leave this to the distro.
The change: on Linux, when
LIBVA_DRIVER_NAME=nvidia, the desktop app starts Chromium withdisable-accelerated-video-decode(5 lines inDesktopPreReadyPlatform.ts). On NVIDIA-only machines Chromium already refuses that driver, so nothing changes there. On hybrid machines video decodes on the CPU instead, which is cheap for short chat recordings. Other platforms and environments are unaffected.Evidence
Same thread, same build, same session env (
LIBVA_DRIVER_NAME=nvidia), on a hybrid AMD iGPU + RTX 4060 laptop running Hyprland.Before: both clips are black boxes, and play spins at 0:00. The GPU process holds about 280 MB of NVIDIA memory for the two paused clips (1.4 GB in a test thread with six).
before.mp4
After: first frames show and playback works. The NVIDIA VA-API driver no longer loads, and no NVIDIA memory is used.
after.mp4
apps/desktoptypecheck, lint, and format pass.Merge Danger
Door: two-way. One Chromium switch, only when that env var is set.
Blast radius: small. Only Linux desktop users with
LIBVA_DRIVER_NAME=nvidia, who lose hardware video decode in T3 Code.Made with Claude Opus 5.5 via Claude Code, running in T3 Code.