Note: This is a repost of issue: https://forums.intel.com/s/question/0D50P0000490ZBWSA2/quicksync-functionality-broken-with-dch-drive...
Case Number: 03967525
The original issue is no longer publicly accessible and hasn't received any responses lately.
We noticed that our application is no longer able to use QuickSync hardware acceleration for customers that have upgraded to the new Intel DCH driver.
We have analyzed the problem I will describe the behavioral change in the QuickSync implementation by comparing:
=> Bug # 1: DCH does not remove the installed files from %WINDIR%\System32 and %WINDIR%\SysWow64 during uninstallation (via Control Panel > Programs > Uninstall)
The actual showstopping bug is a change of behavior regarding device initialization (=> MFXInit)
For Windows there has always existed a direct correspondence between the mfxIml enum value and the D3D device's adapter number like follows:
mfxImplD3D Device Adapter numberMFX_IMPL_HARDWARE0MFX_IMPL_HARDWARE21MFX_IMPL_HARDWARE32MFX_IMPL_HARDWARE43With the MSDK libraries version 8.0.0.083 this is no longer true.
I will illustrate the change of behavior with an example:
mfxImplD3D Dev # D3D Device NameMFXInit (8.0.0.068) MFXInit (8.0.0.083)NoteMFX_IMPL_HARDWARE0NVIDIA GeForce GTX 750 Ti - \\.\DISPLAY2MFX_ERR_UNSUPPORTEDMFX_ERR_NONEMFX_IMPL_HARDWARE21NVIDIA GeForce GTX 750 Ti - \\.\DISPLAY1MFX_ERR_UNSUPPORTEDMFX_ERR_UNSUPPORTEDMFX_IMPL_HARDWARE32NVIDIAGeForce GTX 750 Ti - \\.\DISPLAY3MFX_ERR_UNSUPPORTEDMFX_ERR_UNSUPPORTEDMFX_IMPL_HARDWARE43Intel(R) HD Graphics 530 - \\.\DISPLAY5MFX_ERR_NONEMFX_ERR_NONE
No error, but doesn't report
the same encoding and decoding
capabilities as with 68 and dev 0
This is obviously a bug. MFXInit succeeds, but as soon as an application tries to create a D3D surface on the GeForce device and tries to use that with QuickSync, everything will fail.
That problem is not only specific to our own application, it also affects the use of QuickSync with ffmpeg - which is officially supported and documented by Intel as usage scenario for QuickSync.
=> This is bug # 2: