Add support for multiple GPUs on Windows#187
Conversation
If the primary GPU is not an Intel GPU, libvpl cannot detect the Intel GPU in the Windows environment, even though it is present. The situation is, for example, using an NVIDIA graphics card with an Intel CPU that has an embedded GPU. This patch allows the Intel GPU to be detected in such situations. Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
|
Thank you for the PR. The reg keys queried by this code path were only used by quite old versions of the MediaSDK installer The driver now installs MSDK / VPL runtimes in Windows Driver Store and supports any number of installed GPUs with libvpl. The concern with querying all installed adapters here is increasing VPL initialization latency on all Windows platforms. MFXCreateSession() may not support Core i7 4790 (Haswell, also see here) but as an alternative the application may try to create a session using MFXInitEx() directly. |
|
@jonrecker , Thanks for the review. I evaluated the latency. My environment is:
With this patch: Without this patch; Do you consider this increase in latency unacceptable? |
|
In addition, |
If the primary GPU is not an Intel GPU, libvpl cannot detect the Intel GPU in the Windows environment, even though it is present. The situation is, for example, using an NVIDIA graphics card with an Intel CPU that has an embedded GPU. This patch allows the Intel GPU to be detected in such situations.
Issue
When a GPU of other than Intel is primary, the Intel GPU fails to be detected by libvpl for MFX API.
Solution
Search Intel GPU (vendor ID == 0x8086) whose adapterNum is other than 0 in
MFXLibraryIterator::GetRegkeyDir().How Tested
Apply the proposed patch to cygwin libvpl package, and run
mpv -vd h264_qsv videofile.mp4in my environment:100% tests passed for the test suites.