Skip to content

v0.4.2 - Live Governor Telemetry, Zen 2 Core Pinning, Steam Link Low-CPU Fix & Sunshine Guide

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:45
· 230 commits to main since this release

馃殌 Highlights & Performance Upgrades

1. Live Governor Telemetry & Query API

  • Added real-time governor monitoring via BC250_GOVERNOR_STATS=N (or 1 for ~1s interval at 60fps), logging frame index, active tier, GPU compute latency, EMA latency, offload frame counts, and failover stats to stderr.
  • Added query API dynamic_governor_get_stats() and human-readable string lookup dynamic_governor_tier_name().
  • Refined downward hysteresis transition logic with robust stable-frame counting to prevent tier fluttering during transient load spikes.

2. Steam Link & Steam Remote Play Low-CPU Optimization (Issue #17)

  • Eliminated 600% Host CPU Spike: Root-caused high host CPU usage in Steam Link to OpenMP worker threads busy-spinning (GOMP_SPINCOUNT) between 60 FPS frames.
  • Enforced OMP_WAIT_POLICY=PASSIVE and GOMP_SPINCOUNT=0 on driver initialization, ensuring idle worker threads sleep immediately on kernel futexes instead of active spin-waiting.
  • Hard-capped slice entropy coding worker threads to at most 2 (BC250_MAX_CPU_THREADS=2), guaranteeing 75% of the Zen 2 CPU cores remain completely free for games and the Steam client.
  • Added BC250_DISABLE_OPENMP knob to allow strictly single-threaded slice coding without thread pool overhead.

3. Zen 2 CPU Core Pinning & Affinity

  • Added BC250_CPU_CORES configuration (e.g. BC250_CPU_CORES=6,7), allowing users to pin encoder worker threads to specific CPU cores away from game rendering threads.

4. HEVC Non-16-Multiple Buffer Boundary Overrun Fix

  • Implemented edge replication padding in encoder_h265.c to pad source surfaces out to 16-multiple macroblock boundaries prior to SIMD motion estimation, eliminating boundary overruns on arbitrary stream dimensions.

5. Dedicated Sunshine & Moonlight Setup Guide

  • Added docs/sunshine-guide.md with recommended Web UI configurations, bitrate tuning, multi-slice parallel decoding, governor controls, and troubleshooting for both Sunshine/Moonlight and Steam Link.
  • Documented verified real-world benchmark result: 5,410 without streaming vs 5,165 with live streaming using BC-250 drivers (~4.5% overhead under active game streaming).

馃摝 Bundled Artifacts

  • bc250-driver-linux-x86_64.tar.gz: 64-bit VA-API driver with precompiled SPIR-V shaders, setup scripts, and audio clock fix.
  • bc250-driver-linux-i386.tar.gz: 32-bit companion VA-API driver for 32-bit gaming runtimes (Steam Link / Steam Remote Play).