-
ProsperoLight 01.000.070 Pre-release
released this
2026-09-30 20:44:42 -05:00 | 157 commits to main since this releaseExperimental performance beta — new decode and presentation threads
This is a prerelease, not a replacement for stable 01.000.060. It
supersedes beta 01.000.062.- Decoding and presentation now run on separate threads. Decoding no longer
waits for a flip, and every display refresh shows the newest decoded frame. - A stream that outruns the decoder keeps playing at the decoder's pace. The
rule that showed one frame every 100 ms once decoding fell behind is removed. - Stream threads are kept off the CPUs reserved for the decoder, and the video
receive thread has a CPU of its own. - The flip wait uses flip events instead of polling or waiting for a vblank.
- The overlay separates network, decoded and displayed frame rates, and frames
lost on the network from frames discarded because decoding fell behind.
Decode time covers the last second (mean, 95th percentile and load). - New settings: V-Sync (Off flips immediately and tears), Decoder
pipeline (Classic by default; Adaptive is experimental) and Decoder CPU
cores (3 by default; 4 and 5 are experimental). - Bitrate presets gain 50, 60 and 70 Mbps.
- A failed stream now says whether the connection was lost while streaming or
never completed, with the stage and the error code. - moonlight-common-c is updated, and the performance summary is also written
to klog.
Know the bitrate limit
The PS5 decoder, not the network, limits the usable bitrate, and this beta
does not raise that limit. Measured at 4K HEVC: smooth up to 80 Mbps at
120 FPS and about 115 Mbps at 90 or 60 FPS; above 100 Mbps at 120 FPS and
145 Mbps at 90 FPS the stream freezes about once a second. The table and chart
are under Bitrate limits.What was tested
Run on one PS5 with one NVENC host at 4K, 120 FPS, HEVC SDR, with both decoder
pipelines. 1440p, 1080p, 60 and 90 FPS, HDR, H.264 and V-Sync Off use the same
code but were not re-run on a console for this beta. The Adaptive pipeline had
one defect fixed after its last console run; leave it on Classic unless you
want to help test it.Please report your results
Use GitHub issues and include:
- PS5 firmware; Sunshine/Vibepollo version; host GPU and driver.
- Codec/HDR, resolution/FPS, bitrate, stereo/5.1, Ethernet or Wi-Fi.
- The three new settings, and whether this beta is smoother, unchanged, or
worse than.062or.060in the same game. - With the overlay on (Select+R1): the "Decoder", "Decode (last second)" and
both "Frames dropped" lines. - If available, attach
performance-last.jsonandperformance-frames.csvfrom
the app's/download0/moonlight/save directory. These are overwritten by the
next stream; the console may expose them inside the title's UFS2download0.dat.
Do not upload the entire save image: it may contain pairing credentials.
Installation, update and rollback
Title ID stays PPSA99002. Choose
PPSA99002.ffpfsc, or extract
PPSA99002.zipand copy itsPPSA99002/folder to/data/homebrew.
Do not keep both formats installed. Close the app before replacing files, then
restart ShadowMountPlus or the console.SHA256SUMScovers both downloads.
Existing pairing and settings are retained. To roll back, replace the beta with
the corresponding.062or.060download and restart ShadowMountPlus or the
console.Local reproduction:
make ffpfsc FEC_SIMD=1 OPUS_SIMD=1 PERFORMANCE_DETAIL=1 FLIP_POLL_US=200 INPUT_POLL_US=2000 VIDEO_SLICES_PER_FRAME=8.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Decoding and presentation now run on separate threads. Decoding no longer