while many of our customers have Intel GPUs, some also have additional dedicated graphics cards.
Is it possible to use the decoding capabilities of the the dedicated GPUs (via DX11/DXVA) and process the resulting DX surfaces using
the MSDK VPP pipeline? Or is the VPP part of the MSDK restricted to Intel GPUs?
Additionally, is it possible to transfer a DX surface from a dedicated GPU to the Intel CPU/GPU for accelerated encoding? What is the transfer cost involved?
Media SDK uses D3D surfaces that are required to have been allocated on the Intel D3D Device. For D3D11.1 (Windows 8+) You can use the Intel device for any operation (decode, VPP, encode) as long as these surfaces are supplied. The MediaSDK also provides ability to system memory (at the cost of performance).
Other graphics adapters have similar expectation for surfaces they use.
Managing D3D surfaces between multiple graphics adapters is somewhat out of scope in this forum, but I suspect you can find some good information on this on other sites. For example, a D3D game that wants to use both NVidia and AMD adapters at the same time would need to do this.