- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
being really stuck here and I hope that anybody can explain this. I have the following setup: i7 - 6700K GPU 3.4 GHz (Skylake) with an Intel 530 HD Graphics and an NVIDIA NVS 315 with two monitor outputs. Both of the GPUs are properly configured and latest drivers are used (Win 8.1). If I connect one monitor to the NVIDIA, I have no problems to run HW accelerated decoding on the 530 HD Graphics card and render it on the screen. But once I connect a second monitor to the NVIDIA (the second monitor is automatically detected, no restart of the comupter is needed), the MFXVideoSession->Init(MFX_IMPL_HARDWARE_ANY, &version) call returns MFX_ERR_NOT_FOUND. But the Intel GPU is still properly configured and visible in the Windows device manager.
I have been able to reproduce this on two computers with a i7 - 6700K CPU.
Does anybody have an idea what is going on here?
Thanks.
Alex
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, for everyone encountering this issue with the two adapters. The solution is to configure the NVIDIA in the "Mosaic" mode, or the so called stretched mode instead of just extending the desktop to other monitor using Windows controls. When configuring multiple monitors "properly", you will be able to use Intel GPU acceleration even with multiple monitors connected to the NVIDIA.
Have a nice day
Alex
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
Are you using DirectX11 surfaces? If not then hardware acceleration will not work unless the Intel decoder is the primary device. Have you read
https://software.intel.com/sites/default/files/managed/09/02/Intel_Media_Developers_Guide.pdf
section 4.18 Handling Multiple Graphics Adapters?
I had a similar problem on a laptop, which I was able to resolve using the Nvidia control panel, setting the Intel card to be the default adapter. Unfortunately as far as I am aware this option is only available on laptops. From memory, however, I did not get a MFX_ERR_NOT_FOUND, error, just the wrong adapter number returned, but things may have changed.
Regards,
James.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi James,
ok, thanks a lot, that makes sense - I am not using DX 11 surfaces. What puzzles me, however, is the fact that when just one monitor is connected to the NVIDIA card, I can accelerate just fine. I would expect that (when not using DX 11 surfaces) this should fail. Or am I still misunderstanding something?
Alex
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
I am not sure. I have just checked with DirectX 9 surfaces, with the NVIDIA card, as the preferred graphics processor (laptop setting). I do not get MFX_ERR_NOT_FOUND retuned when calling.
MFXVideoSession->Init(MFX_IMPL_HARDWARE_ANY, &version)
The function is executed successfully the problem is when I query the implementation which has actually been assigned, as a result of using MFX_IMPL_HARDWARE_ANY, with
mfxIMPL imp; MFXQueryIMPL(*pSession, &imp); imp = MFX_IMPL_BASETYPE(imp);
I get
MFX_IMPL_HARDWARE2 = 0x0005, /* Hardware accelerated implementation (2nd device) */
and not
MFX_IMPL_HARDWARE = 0x0002, /* Hardware Accelerated Implementation (default device) */
The call to CreateDeviceEx then fails when passed the 2nd device.
This is on a laptop and not on Skylake so the situation may be different for you.
James.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi James,
thanks again. But it still does not answer my original question. Could maybe one of the Intel gurus put some light on this problem?
Thanks in advance.
Alex
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Alex,
Do you run sample_decode.exe? If yes, please provide me a command line options that you use.
Best wishes, Anna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Anna,
thanks for your reply. No, I am not using this sample executable, because I am decoding live media. But I am pretty sure that it would make no difference. The basic questions is, why the call to MFXVideoSession->Init(MFX_IMPL_HARDWARE_ANY, &version) succeeds when one monitor is connected to the NVIDIA card (and I can GPU decode just fine) and why it fails, when a second monitor is added. No monitor output is connected to the Intel HD Graphics during both tests. I am decoding to system memory.
Thanks.
Alex
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, for everyone encountering this issue with the two adapters. The solution is to configure the NVIDIA in the "Mosaic" mode, or the so called stretched mode instead of just extending the desktop to other monitor using Windows controls. When configuring multiple monitors "properly", you will be able to use Intel GPU acceleration even with multiple monitors connected to the NVIDIA.
Have a nice day
Alex
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page