Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
PedroM4 opened this issue Oct 6, 2024 · 0 comments
Open

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

PedroM4 opened this issue Oct 6, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@PedroM4
Copy link

PedroM4 commented Oct 6, 2024

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

@zmerp zmerp added the enhancement New feature or request label Oct 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants