Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

Headless dx11 failing on Windows 8?


Hello, so following my previous question on this, I installed Windows 8 on my dev machine which is an i7 3770 with a discrete NVIDIA GT 640 as well. I'm trying to see if I can run with HW acceleration from the discrete card with no monitor attached to the iGPU. This is my code:

MFXVideoSession testSession;
APIChangeFeatures features = {};
mfxVersion version = getMinimalRequiredVersion(features);
mfxStatus sts = testSession.Init(MFX_IMPL_HARDWARE_ANY | MFX_IMPL_VIA_D3D11), &version));

This unfortunately fails with err_unsupported every time. Since HARDWARE_ANY probably picks up the NVIDIA card, I tried explicitely specifying HARDWARE1-4, but none worked either. sample_decode exhibits the same behavior when passed -d3d11. My drivers are up-to-date and I am using the latest Intel MSDK. Running sys_analyzer reports that no HW acceleration is supported and ends with the following:

  • HW target does not work: If you expect it should, then make sure to install latest Intel gfx driver, and that Intel gfx is selected as primary driver
  • If Intel driver is associated with secondary adapter, make sure to initialize DirectX device used with Media SDK with corresponding adapter
0 Kudos
2 Replies

I spent some time investigating this issue this morning and here are my findings:

 - If I boot the computer with nothing plugged in the Intel HD 4000, the device doesn't exist as far as Windows is concerned. It doesn't appear in Device Manager at all. There's of course no way of using it.

 - I didn't find any option in the BIOS to force enable the Intel HD 4000.

 - If I boot the computer with a monitor plugged into the Intel HD 4000, and disconnect it after, I am able to use it with MFX_IMPL_HARDWARE_ANY | MFX_IMPL_VIA_D3D11. Not specifying D3D11 causes initialization to fail, so this is indeed the Windows 8/D3D11.1 "headless" mode.

 - Mirillis has a tutorial on how to make Windows pretend there's a monitor plugged, which could be useful for users on Windows 7 or Vista. Unfortunately one of the steps is to enable the device in the BIOS and I don't see any option for that on my computer (Dell XPS 8500). Perhaps this exists on some computers but not all.



Yes, the device needs to exist as visible to the OS in order to be used, and it sounds like your platform's BIOS/firmware is not making it available.  While I have not seen any platform behave this way, it can be intentionally done.  It may be worth contacting Dell to see if BIOS update might be available.