Skip to content

[Request]: Add an opt-in force mode for split-frame encode on supported hardware for high-refresh streaming workloads #593

@Emmanuel-m42

Description

@Emmanuel-m42

Is your feature request related to a problem? Please describe.
Yes. AMF currently exposes multi-HW-instance / split-frame encode as a requestable option, but based on AMD’s own public comments, it is treated as a hint and may be ignored based on internal heuristics. In issue #585, an AMD maintainer explained that many conditions are checked before enabling it, including examples such as 4K or higher, no PA, and no HIGH_MOTION_QUALITY_BOOST.

This makes it difficult for applications to use the feature predictably, especially for low-latency game streaming workloads such as Sunshine / Moonlight / Apollo.

This matters not only because split-frame encoding can reduce host processing latency, but because reductions that may seem small become much more meaningful at high refresh rates. At 60 Hz, the frame time budget is 16.67 ms. At 120 Hz, it is 8.33 ms. At 240 Hz, it is only 4.16 ms. As refresh rate increases, even saving 1–2 ms can be the difference between staying within the frame budget and falling behind.

On the NVIDIA side, newer NVENC integrations expose explicit split-frame modes, and third-party projects such as Vibepollo now expose a Force Split Frame Encoding option for HEVC and AV1. This allows lower-resolution, high-refresh streaming workloads to opt into split-frame encoding below the usual automatic threshold.

There is already anecdotal evidence from the Moonlight/Sunshine community that this can matter in practice. One user reported that forced NVENC split-frame encoding reduced host processing latency from about 2 ms to about 1 ms on a 3000×2000 120 Hz HDR stream, and described it as effectively halving encode time.

Describe the solution you'd like
I would like AMF to expose a true opt-in force mode for multi-HW-instance / split-frame encode on supported hardware.

If a true force mode is not acceptable, I would like AMF to expose enough diagnostics for applications to use the feature predictably, such as:

  • a capability query indicating whether the current session is eligible
  • a runtime status flag confirming whether split-frame was actually enabled
  • a rejection reason or diagnostic code explaining why the request was ignored

Describe alternatives you've considered
The current alternative is to set the existing *_MULTI_HW_INSTANCE_ENCODE property and hope AMF enables it, but AMD has already stated this is only a hint and may be ignored.

Another alternative is to infer the behavior experimentally by changing resolution, presets, or encoder options, but that is unreliable and difficult to support in production applications.

By comparison, NVENC now provides more explicit split-frame control for supported hardware, which gives developers more control and better observability.

Additional context
This request is motivated by low-latency single-stream game streaming, not just multi-session transcoding. In these workloads, split-frame / multi-HW-instance encode can still be valuable below the kinds of thresholds automatic heuristics may prefer.

At higher refresh rates, latency reductions are not just “nice to have.” They directly affect whether the encode path can stay inside the per-frame budget. That is why an opt-in override is useful even for lower resolutions and not only for traditional high-resolution transcoding workloads.

Relevant references:
AMF issue #585 discussing hidden checks and “just a hint” behavior: #585
Vibepollo release notes adding NVENC SDK 13 split-frame options / forced split-frame encode for HEVC and AV1: https://github.com/Nonary/Vibepollo/releases/tag/1.15.0-stable.1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions