Skip to content

Feature request - Add NVIDIA split frame support to ALVR #2444

Open
@PedroM4

Description

@PedroM4

Nvidia supports transparent split frame encoding on GPU's with more than one encoder chip.

This split frame encoding is enabled by default if certain conditions are met. These conditions are:
1- Vertical resolution must be higher than 2112px,
2- Weighted Prediction (HEVC) must be DISABLED
3- Alpha Layer Encoding (HEVC) must be DISABLED
4- Bitstream Subframe Readback Mode (HEVC) must be DISABLED
5- Bitstream Output in Video Memory (HEVC/AV1) must be DISABLED
and the two quality presets ( Px and Quality ) must match the allowed table as described in the NVIDIA document.

2 is a togable setting in ALVR, Px and Quality are configurable settings in ALVR and 3,4,5 are not used by ALVR.

according to the documentation, split frame can be forced for resolutions lower than 2112px and this is highly desirable as it has the oportunity to improve performance and reduce encoding latency.

according to the documentation it can be forced into working in several different ways ( related to how much the frame is divided ):

`2. User controlled mode:

The following modes are supported for split encoding in case of HEVC and AV1:

NV_ENC_SPLIT_ENCODE_MODE::NV_ENC_SPLIT_AUTO_MODE: In this mode split encoding will be automatically enabled only in configurations described above. It will be disabled in all other configurations.
NV_ENC_SPLIT_ENCODE_MODE::NV_ENC_SPLIT_AUTO_FORCED_MODE: Split encoding will be enabled for all configurations with number of horizontal strips automatically selected by driver for optimal performance.
NV_ENC_SPLIT_ENCODE_MODE::NV_ENC_SPLIT_TWO_FORCED_MODE: Split encoding will be enabled for all configurations with number of horizontal strips forced to 2 when number of NVENCs > 1.
NV_ENC_SPLIT_ENCODE_MODE::NV_ENC_SPLIT_THREE_FORCED_MODE: Split encoding will be enabled for all configurations with number of horizontal strips forced to 3 when number of NVENCs > 2, NVENC number of strips otherwise.
NV_ENC_SPLIT_ENCODE_MODE::NV_ENC_SPLIT_DISABLE: Split encoding will be disabled for all configurations.

`

The easiest way would be to simply add a toggle to enable the "NV_ENC_SPLIT_AUTO_FORCED_MODE", or maybe a pull down menu where one can select between AUTO ( the default ), FORCED and DISABLE.

relevant documentation:
https://docs.nvidia.com/video-technologies/video-codec-sdk/12.2/nvenc-video-encoder-api-prog-guide/index.html#multi-nvenc-split-frame-encode

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions