Here's my desired scenario:
- NVIDIA driver on Linux.
- Render a game frame with Vulkan on the GPU.
- Pass that GPU's raw memory framebuffer directly to the Vulkan Video encoder API.
- Encode the framebuffer as a video frame, without ever needing to copy the raw framebuffer as a roundtrip through the CPU/system RAM.
- So the raw frame never leaves the device. Vulkan directly starts hardware-encoding the in-memory framebuffer that already exists inside the GPU itself.
In other words, doing 100% on-device encoding without transferring raw frames to the system, exactly like what NVIDIA's own NvFBC + NVENC APIs are capable of, but in a universal way.
Is this possible with NVIDIA's Linux driver, using the new Vulkan Video Encoder APIs?