Skip to content

Multi-GPU (Vulkan decoders on several Vulkan devices) - #512

Merged
JeromeMartinez merged 2 commits into
MediaArea:mainfrom
JeromeMartinez:HybridOutput
Oct 29, 2026
Merged

JeromeMartinez merged 2 commits into
MediaArea:mainfrom
JeromeMartinez:HybridOutput

Conversation

@JeromeMartinez

Copy link
Copy Markdown
Member

Follow-up of #511 (2 vulkan decoders on the same device).

Decoder values

  • vulkan: default Vulkan device (index 0), as before.
  • vulkanN: Vulkan device N. The index is the one used by FFmpeg (-init_hw_device vulkan:N) and shown by vulkaninfo.
  • A device given twice puts 2 decoders on it, e.g. internal+vulkan+vulkan (as in Decoding: GPU and CPU together faster with big GPUs #511) or internal+vulkan0+vulkan0+vulkan1. Values can be in any order.
  • Limits: 2 decoders per device, 8 vulkan decoders in total. Other values are rejected ("unknown decoder value").

auto

  • All discrete GPUs, else the first GPU (an integrated GPU shares the memory and the power with the CPU).
  • A second decoder on each GPU with enough streaming multiprocessors (NVIDIA, at least 64), as in Decoding: GPU and CPU together faster with big GPUs #511.
  • CPU implementations (llvmpipe, lavapipe) only if the video encoder is ffv1_vulkan, as before.

The list of devices comes from the instance of the default device, which was already created for the detection. No other device is created for the detection.

vulkanN uses the Vulkan device N (e.g. internal+vulkan0+vulkan1), vulkan
the default device, up to 2 decoders on a device and 8 decoders.
auto uses all discrete GPUs, else the first GPU, with a second decoder on
big GPUs.
A requested Vulkan device which is not available stops the processing.
@JeromeMartinez
JeromeMartinez merged commit fcc2578 into MediaArea:main Oct 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant