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
3030 Discussions

How Can I use HW acceleration decode/encode without connect Intel GPU to a monitor ?


How Can I use HW acceleration decode/encode without connect  Intel GPU  to  a monitor ?

1.  I have i7-2600 / GeForce GT 640, both can see  in the Windows control panel

2.  I connect both two monitors to GT 640, 

3. I use no  DX9 and DX11 to do decode/encode 

4.  when I use MFXInit(MFX_IMPL_HARDWARE_ANY, &HWversion, &HWsession);  the return mfxStatus is MFX_ERR_NONE;

BUT MFX_WRN_PARTIAL_ACCELERATION show and it work in SW mode.

And the SDK System Analyzer tells can't work in HW  ?  WHY?

Intel Media SDK System Analyzer (64 bit)

The following versions of Media SDK API are supported by platform/driver:

Version Target Supported Dec Enc
1.0 HW No
1.0 SW Yes X X
1.1 HW No
1.1 SW Yes X X
1.3 HW No
1.3 SW Yes X X
1.4 HW No
1.4 SW Yes X X
1.5 HW No
1.5 SW Yes X X
1.6 HW No
1.6 SW Yes X X

Graphics Devices:
Name Version State
Intel(R) HD Graphics Active
NVIDIA GeForce GT 640 Active

System info:
CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
OS: Microsoft Windows 7
Installed Media SDK packages (be patient...processing takes some time):

Analysis complete... [press ENTER]

0 Kudos
3 Replies

Please help

And I see some video encode / decode software can work at this situation, or with Lucidlogix Technologies\VIRTU MVP soft's help

Is there a way , I can run hw in this situation by using  Intel Media SDK 2013 ? 

0 Kudos


It appears your system is setup to use 2 adapters, where the Intel adapter is secondary.  The MFXInit call is succeeding because the device can be used with DX11, or with DX9 and a monitor attached, as a secondary adapter.

For hardware-accelerated encode/decode operations to succeed, the MSDK requires usable DirectX, even if you are not using DirectX surfaces.

The "Lucidlogix Technologies\VIRTU MVP" solution allows the user to choose which adapter is used as primary for specific applications.

In general, DX9 applications require a monitor to be attached to the device providing acceleration.

0 Kudos

Hi, thanks for your reply,  Tony .

As mention above,  I connect both two monitors to GT 640.

If I create DX9 by // IDirect3D9* pD3D9 = Direct3DCreate9( D3D_SDK_VERSION );

only two adapters find // UINT num_adp = pD3D9->GetAdapterCount();

both are NVIDIA GeForce GT 640 (can see from adapterIdentifier.Description);

while MFXInit return MFX_ERR_NONE at this situation, 

I get to know I am using MFX_IMPL_HARDWARE2 by MFXQueryIMPL();

according to mfxstructures.h

//MFX_IMPL_HARDWARE = 0x0002, /* Hardware Accelerated Implementation (default device) */
//MFX_IMPL_HARDWARE2 = 0x0005, /* Hardware accelerated implementation (2nd device) */
//MFX_IMPL_HARDWARE3 = 0x0006, /* Hardware accelerated implementation (3rd device) */
//MFX_IMPL_HARDWARE4 = 0x0007, /* Hardware accelerated implementation (4th device) */

I understand  MFX_IMPL_HARDWARE2 equal to de Adapter = 1;

so I use pD3D9->GetAdapterIdentifier(1 , 0, &adapterIdentifier);

but  i get adapterIdentifier.Description == "NVIDIA GeForce GT 640 ";

And NO Intel's Device; 

Run encode/decode in this situation,  MFX_WRN_PARTIAL_ACCELERATION return ,

run DecodeFrameAsync() always get MFX_WRN_DEVICE_BUSY;

Please help me to know how should I get a workable d3d device ?

and Is is conflict  MFXInit return MFX_ERR_NONE, while sys_analyzer.exe indicate NO HW supported ?

Thanks , 

0 Kudos