#706

Resume doesn't re-apply RTSS frame limiter / NVIDIA Control Panel overrides

Openkdliu86opened 4d ago

Bug Symptoms

Resume doesn't re-apply RTSS frame limiter / NVIDIA Control Panel overrides (game runs uncapped)

Summary

When a stream is paused (app kept resumable), Vibepollo restores the RTSS and NVIDIA Control Panel settings. When the client resumes, Vibepollo joins the running game's capture output but never applies the RTSS 120 Hz limit, the Reflex SyncLimiter or the NVCP frame-limiter override again. The game then runs uncapped: the WGC helper captures it at about 570–640 fps instead of 120. Only a fresh launch brings the overrides back.

Environment

  • Vibepollo 2.0.4 (commit 18400719c666307115cc173d748936e003750417), from the host restart at 22:32
  • Windows: product=Windows 10 Pro, display_version=25H2, build=26200
  • GPU: NVIDIA GeForce RTX 3090, NVENC HEVC 10-bit HDR
  • Capture: WGC helper, target_fps 120, virtual display \.\DISPLAY15 (SDD5929) 3840x2160, HDR on
  • Frame limiter provider: auto → RTSS (SyncLimiter: nvidia reflex)
  • App: Desktop (Playnite launch path, placebo)
  • Client: Nightjar 4.3.1 (Windows), 3840x2160@120, HEVC Main10, 113137 kbps, wired 1 Gbps, requests VRR low-latency stream policy

Steps to reproduce

  1. Launch a stream fresh from the client and start a game.
  2. Leave the stream (session pauses, app stays resumable).
  3. Resume from the client.

Expected

On resume, the same overrides as a fresh launch (fresh launch at 22:03:34):

[2026-11-02 22:03:35.016]: Info: RTSS applied framerate limit=120 Hz (raw=120, denominator=1)
[2026-11-02 22:03:35.016]: Info: RTSS SyncLimiter applied (nvidia reflex)
[2026-11-02 22:03:35.016]: Info: Frame limiter provider 'rtss' applied
[2026-11-02 22:03:35.210]: Info: NVIDIA Control Panel frame limiter disabled for stream

Actual

Pause restores the overrides:

[2026-11-02 21:58:37.624]: Info: Session pausing for app [Desktop].
[2026-11-02 21:58:38.000]: Info: RTSS restored frame-limit profile values atomically.
[2026-11-02 21:58:38.000]: Info: RTSS limiter flags restored
[2026-11-02 21:58:38.213]: Info: NVIDIA Control Panel overrides restored

Resume logs a limiter decision but applies nothing:

[2026-11-02 21:58:51.354]: Info: Resume will join the capture-ready retained game output.
[2026-11-02 21:58:51.443]: Info: Joining the running game's active capture output without preparing a per-client display.
[2026-11-02 21:58:51.696]: Debug: Frame limiter decision: configured_provider=auto effective_limit=120 effective_limit_millihz=120000 ...
[2026-11-02 21:58:51.696]: Info: Session resuming for app [Desktop].
[2026-11-02 21:58:51.739]: Info: CLIENT CONNECTED

Same at the second resume (22:00:06.281 → 22:00:06.693). No RTSS applied or NVIDIA Control Panel frame limiter disabled lines appear until the fresh launch at 22:03:35.

Evidence the game ran uncapped (WGC helper logs)

Fresh launch, capped (sunshine_wgc_helper-20261102-213546-753.log, sunshine_wgc_helper-20261102-220336-415.log):

[2026-11-02 21:56:26.101]: Info: WGC capture diagnostics: interval_s=15.0497 ... capture_fps=120.002 publish_fps=120.002 ... activity_rate_limited=0
[2026-11-02 22:10:10.272]: Info: WGC capture diagnostics: interval_s=15.0898 ... capture_fps=120.015 publish_fps=120.015 ... activity_rate_limited=0

First resume (sunshine_wgc_helper-20261102-215852-519.log):

[2026-11-02 21:59:08.020]: Info: WGC capture diagnostics: interval_s=15.0116 ... capture_fps=576.353 publish_fps=290.574 ... activity_rate_limited=4290
[2026-11-02 21:59:23.033]: Info: WGC capture diagnostics: interval_s=15.0128 ... capture_fps=567.915 publish_fps=290.685 ... activity_rate_limited=4162

Second resume (sunshine_wgc_helper-20261102-220007-472.log):

[2026-11-02 22:00:53.535]: Info: WGC capture diagnostics: interval_s=15.0153 ... capture_fps=642.879 publish_fps=300.228 ... activity_rate_limited=5145
[2026-11-02 22:01:23.567]: Info: WGC capture diagnostics: interval_s=15.0191 ... capture_fps=641.048 publish_fps=297.886 ... activity_rate_limited=5154

The encoder stayed at about 120 fps throughout (Encode loop encoded=1200 per 10 s, dropped_submissions=0).

Impact

Both resumed sessions were clearly worse on the client: the client fell back to V-Sync pacing, decode time rose from about 0.2 ms to 5.5–5.9 ms, display p95 rose from about 2 ms to 17–23 ms, 260 and 698 frames were replaced before display, and late audio packets went up. The fresh-launch sessions before (21:35) and after (22:03) were clean.

Other notes

  • Host audio was clean in every session: Opus 48 kHz stereo 512 kbps LOWDELAY, virtual sink S32 48000, "no resampling needed". Audio capture signaled buffer discontinuity appeared only at capture start (21:35:45, 21:58:52, 22:00:06, 22:03:35).
  • Error: Unable to release native timer resolution: -1073741243 at terminal cleanup (22:01:52, 22:23:12).
  • The display helper logs ERROR_GEN_FAILURE ... failed to change topology using the topology from Windows DB! Asking Windows to create the topology. on both fresh launches (21:35:41, 22:03:32), but the virtual display came up fine both times.
  • On the fresh launch, the WGC helper needed retries: Failed to create GraphicsCaptureItem for monitor: -2147024809 ×3, then GraphicsCaptureItem created after retry 3/8 (22:03:38).

Logs (all 2026-11-02, local time UTC-5)

  • sunshine-20261029-104333-921.log (2026-11-02 21:35–22:30 portion)
  • sunshine-20261102-223222-558.log (startup / version)
  • sunshine_wgc_helper-20261102-213546-753.log (fresh launch)
  • sunshine_wgc_helper-20261102-215852-519.log (resume 1)
  • sunshine_wgc_helper-20261102-220007-472.log (resume 2)
  • sunshine_wgc_helper-20261102-220336-415.log (fresh launch)
  • sunshine_display_helper-20261102-213536-368.log
  • sunshine_display_helper-20261102-220327-046.log

sunshine-20261102-223222-558.log sunshine-20261029-104333-921.log sunshine_display_helper-20261102-220327-046.log sunshine_wgc_helper-20261102-220336-415.log sunshine_display_helper-20261102-213536-368.log sunshine_wgc_helper-20261102-220007-472.log sunshine_wgc_helper-20261102-215852-519.log sunshine_wgc_helper-20261102-213546-753.log

Expected Behavior

Limiter applies on exit/resumes.

Windows Version

22H2

Package

Windows - exe installer

GPU Type

AMD

GPU Model

3090

GPU Driver Version

latest

Capture Method

None

Apps

undefined

Logs (Optional but Recommended)

vibeshine_logs-20261102-223325.zip

Screenshot (Optional)

undefined

Activity

0

No activity yet.