Skip to content

Experimental: AMF intra refresh after Init + host diagnostics (7bb77154b)

Pre-release
Pre-release

Choose a tag to compare

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.

  1. Install this build and start a fresh Xbox Moonlight HEVC session using the settings that normally reproduce the artifacts.
  2. Play normally and repeat the camera motion or scene changes that exposed the issue for at least 75 seconds.
  3. End the session, reconnect, and repeat once. This checks encoder teardown/reinitialization and diagnostic reset.
  4. 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 request
  • applied dynamic HEVC intra-refresh CTBs after encoder Init (value=2) at 1080p, or value=7 at 4K
  • HEVC 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=0
  • statistics_samples greater than zero
  • P_frames_with_intra_pixels greater 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.