Open Bug 1273156 Opened 8 years ago Updated 2 years ago

H264 hardware decoding fails on supported HW

Categories

(Core :: Audio/Video: Playback, defect, P3)

x86
Windows Vista
defect

Tracking

()

Tracking Status
firefox49 --- affected

People

(Reporter: simon.chuuk, Unassigned)

Details

Initializing H264 HW acceleration via DXVA fails at
MFT_MESSAGE_SET_D3D_MANAGER failed with code C00D6D60.

According to DXVA checker my graphics card supports H264 decoding and also other applications(e.g. mpv ) can use the HW support via DXVA. I already installed the latest Nvidia drivers.



Graphics
--------

Features
Compositing: Direct3D 11
Asynchronous Pan/Zoom: wheel input enabled; touch input enabled
WebGL Renderer: Google Inc. -- ANGLE (NVIDIA Quadro NVS 160M Direct3D11 vs_4_0 ps_4_0)
Hardware H264 Decoding: No; MFT_MESSAGE_SET_D3D_MANAGER failed with code C00D6D60
DirectWrite: false (7.0.6002.23845)
GPU #1
Active: Yes
Description: NVIDIA Quadro NVS 160M
Vendor ID: 0x10de
Device ID: 0x06eb
Driver Version: 9.18.13.4195
Driver Date: 1-29-2016
Drivers: nvd3dum nvwgf2um,nvwgf2um
Subsys ID: 02331028
RAM: 256

Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: skia
AzureContentBackend: cairo
AzureFallbackCanvasBackend: cairo
Decision Log
DIRECT2D:
unavailable by runtime: Failed to acquire a Direct2D 1.1 factory
What version of Firefox are you using?

Is this reproducible in Firefox nightly?

Does setting media.windows-media-foundation.allow-d3d11-dxva=false in nightly make a difference?
I was using Firefox  Nightly from last week.

I will update to the current nightly and check if 

   media.windows-media-foundation.allow-d3d11-dxva=false

makes a difference as suggested in #1.
Using Firefox Nightly 2016-05-20 and setting media.windows-media-foundation.allow-d3d11-dxva=false doesn't help. I still get the same error message: 
Hardware H264 Decoding: No; MFT_MESSAGE_SET_D3D_MANAGER failed with code C00D6D60
Chris - comment says:

      // TODO: Test if I need this anywhere... Maybe on Vista?
      //hr = attr->SetUINT32(CODECAPI_AVDecVideoAcceleration_H264, TRUE);
      //NS_ENSURE_TRUE(SUCCEEDED(hr), hr);

https://hg.mozilla.org/mozilla-central/annotate/4d63dde701b47b8661ab7990f197b6b60e543839/dom/media/platforms/wmf/WMFVideoMFTManager.cpp#l396

Is the call perhaps needed on Vista?
Flags: needinfo?(cpearce)
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #4)
> Chris - comment says:
> 
>       // TODO: Test if I need this anywhere... Maybe on Vista?
>       //hr = attr->SetUINT32(CODECAPI_AVDecVideoAcceleration_H264, TRUE);
>       //NS_ENSURE_TRUE(SUCCEEDED(hr), hr);
> 
> https://hg.mozilla.org/mozilla-central/annotate/
> 4d63dde701b47b8661ab7990f197b6b60e543839/dom/media/platforms/wmf/
> WMFVideoMFTManager.cpp#l396
> 
> Is the call perhaps needed on Vista?

I don't know. I saw this in the Chromium source code, but on all the Vista machines I tested on, I could not see any behaviour change.
Flags: needinfo?(cpearce)
same problem on every version of FF under OS X. Not only is about:support unreliable as it only correctly shows HW-Acceleration supported in FF Nightly and Dev, it doesn't even matter since it isn't used anyway. Even though I disabled that useless Cisco Plugin and installed h264ify to force h264 on youtube and checked it via the info for geeks dialog in the videos it still isn't using hardware decoding. 

The consumed CPU usage is >35% on a 2012 Core-i7 Mac with OSX 10.10.5 and Nvdidia GT550M
Compared to Chrome, Iron or Safari this is hopelessly bad, since they use 5% at most.
in Firefox 48.0b3, 48.0b4 
not work hardware decoding H264 on Nvidia 750ti
so and on video from youtube in fullscreen load cpu about ~30-40% 
youtube used codec mp4 avc1

in Firefox 47.0 hardware decoding h264 work fine! and load CPU was 5-8%

i'm so check this with new (clear) profile.

Firefox 48.0b4 x64, 
Windows 10 x64, 
Driver Nvidia 368.39

info from about:support :

Возможности
Композитинг: Direct3D 11
Асинхронное панорамирование/зум: включён ввод колесиком
Визуализатор WebGL: Google Inc. -- ANGLE (NVIDIA GeForce GTX 750 Ti Direct3D11 vs_5_0 ps_5_0)
Аппаратное декодирование H264: No;
Direct2D: true
DirectWrite: true (10.0.10586.0)
Видеокарта №1
Активна: Да
Описание: NVIDIA GeForce GTX 750 Ti
Код производителя: 0x10de
Код устройства: 0x1380
Версия драйвера: 10.18.13.6839
Дата разработки драйвера: 6-2-2016
Драйвера: nvd3dumx,nvwgf2umx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um,nvwgf2um
Код подсистемы: 00000000
Видеопамять: 2048

Диагностика
AzureCanvasAccelerated: 0
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
Mass change P2 -> P3
Priority: P2 → P3
I am seeing this on 48.0 final. Windows 7 64bit. 

Using AMD Radeon HD 6670, latest available drivers 15.301.1901.0.  Hardware accelerated h264 decode worked well up to 47.0.1. Never any instability after 1000s of hours of video. Now, in 48 (I believe from b3 up to final it seems hardware h264 decoding is blacklisted for no apparent reason (about:support shows no support for h264 hardware decode in 48.0.)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.