Experimental diagnostic build for PR #257. Unsigned local build, intended only for testing AMD AMF intra refresh (GDR) on affected hardware. Not a supported release - do not use it as a general upgrade.
Purpose
This build tests the AMF lifecycle correction suggested by the review evidence. AMF classifies the intra-refresh controls as dynamic properties, so Vibeshine now applies and verifies them after Component::Init() instead of during static configuration.
This build deliberately does not use the finite-GOP workaround from PR #257:
- HEVC remains at verified
GOP_SIZE=0(no periodic IDR cadence). - Only the property for the negotiated codec is written.
- HEVC CTBs are calculated from the real frame dimensions (2 at 1080p, 7 at 4K).
- A property failure is reported and fails encoder creation instead of logging false success.
Tester procedure
No client logs or special client toggles are required.
- Install this build and start a fresh Xbox Moonlight HEVC session using the settings that normally reproduce the artifacts.
- Play normally and repeat the camera motion or scene changes that exposed the issue for at least 75 seconds.
- End the session, reconnect, and repeat once. This checks encoder teardown/reinitialization and diagnostic reset.
- When practical, run one 1080p60 session and one 4K60 session. Record only the visible result and approximate host time.
Host logs are under C:\Program Files\Sunshine\config\logs or %APPDATA%\Sunshine.
Host-side evidence
Expected setup lines:
received client intra-refresh requestapplied dynamic HEVC intra-refresh CTBs after encoder Init (value=2)at 1080p, orvalue=7at 4KHEVC intra refresh retained GOP_SIZE=0
The first 60 seconds use the normal submission path. A bounded diagnostic window then samples at most 300 accepted frames over 10 seconds. The final summary should normally show:
unexpected_full_refresh=0statistics_samplesgreater than zeroP_frames_with_intra_pixelsgreater than zero
P_frames_with_intra_pixels is supporting evidence, not conclusive by itself because ordinary P-frames may contain naturally intra-coded regions. The stronger result is the combination of verified post-Init property readback, no unrequested full refreshes, bounded P-frame intra statistics, and the tester's visible result.
Oversized FEC warnings now include frame index, frame type, encoded size, packetized size, and required FEC blocks, so any remaining periodic-keyframe theory can be checked entirely from the host log.
Build identity
- Source branch:
amf-intra-refresh-experiment_large - Source commit:
7bb77154b0d1ffdd0afddd2aa151883ad72f68c7 - AMF correction commit:
ab05dac2e18b8794ad26bcdc3c060255d9edc540 - Build mode: RelWithDebInfo,
BUILD_TESTS=ON,SUNSHINE_AMF_INTRA_REFRESH_EXPERIMENT=ON - Focused native AMF policy test: 1/1 passed
- SHA-256:
941219ac2c2e3feca58e00d6cdfdcf973dcbcce41aaa7b5512f40aa1d71d0f95
The local bootstrapper/MSI is intentionally unsigned; the pinned virtual-display driver payload remains the normal packaged release payload. Hardware behavior is not yet proven on the affected AMD system—that is the purpose of this experiment.