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 ?

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 9.17.10.3062 Active
NVIDIA GeForce GT 640 9.18.13.1422 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]

4 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

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 ? 

Hi,

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.

-Tony

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 , 

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!