Closed Bug 1813339 Opened 2 years ago Closed 2 years ago

VP9 hardware acceleration doesn't work/is missing on Windows 10 1809 64

Categories

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

Firefox 109
Desktop
Windows 10
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: aros, Unassigned)

References

Details

Attachments

(7 files)

Steps to reproduce:

Watch a youtube video.

Actual results:

VP9 SW

Expected results:

VP9 HW

Attached file vp9.json

This is a brand new profile.

The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: Playback' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core
Attached image DXVA Checker.png

Windows 10 1809 LTSC
NVIDIA 527.56

Hi, thanks for the report!

From the config information you shared, VP9 decode hardware should be working. During VP9 video playback in Firefox, does the GPU Engine Usage tab on DXVA usage checker report any activity in the VideoDecode column?

Flags: needinfo?(aros)
Attached image dxvavideodecode.png

With the GPU engine usage monitor running and hardware decode working, you should see something like this.

Severity: -- → S4
OS: Unspecified → Windows 10
Priority: -- → P3
Hardware: Unspecified → Desktop
Flags: needinfo?(aros)
Attached image Task Manager 3D.png
Attached file mozlog.zip
set MOZ_LOG=PlatformDecoderModule:5
set MOZ_LOG_FILE=c:\log.txt
"c:\Program Files\Mozilla Firefox\firefox.exe"

I've always assumed that Video Decode in the Task Manager should be different than 0% when using HW video acceleration.

Anyways, I've uploaded the requested info and even more.

Thank you for the info, it confirms that hardware accelerated decode isn't being used (though nothing looks obviously off from your config). If you could capture a profile following the instructions in this short video, it would help us debug further.

Flags: needinfo?(aros)

Thanks for taking the time to capture a profile, but it looks like the URL may have been copied from your address bar which doesn't give us access. After capturing the profile and clicking Upload local profile, a permalink box should pop up with a link to a https://share.firefox.dev/... address. If the box doesn't pop up, it should be accessible via a button where the upload button was between the Re-upload and Docs buttons. If you can capture another profile and share that link, I'll be happy to take a look.

Flags: needinfo?(aros)
Flags: needinfo?(aros)

Thanks! A fix for this issue should now be in the next Firefox release and just arrived in nightly. If you'd like to help verify, you can download nightly (should be the third option here) and give it a try with a fresh profile. If you do try nightly, I'd be interested in knowing if it fixes the issue as verified with the GPU engine usage tab in DXVA checker.

Flags: needinfo?(aros)
Attached image nightly.png

I've tested the 6th of February nightly and it's still not working.

Meanwhile MPC-HC plays this file perfectly (i.e. it uses HW acceleration):

.https://commons.wikimedia.org/wiki/File:2160p_Demo_-_3840x2160_pixel_4k_Video_-_a_timelapse_project_by_Florian_Friedrich.webm

Flags: needinfo?(aros)

I've not noticed any VP9/ffmpeg/media related fixes either for the past few days.

Thanks for the update! The thought was that this was related to bug 1814274, so this will need further investigation. NI'ing alwu since we've been working on related issues.

Flags: needinfo?(alwu)

Recently noticed the same issue (ltsc 21h2, 527.56). Reverting back to 106 but no help. I wonder if something is off with nvidia driver...

(In reply to dirtalive from comment #19)

Recently noticed the same issue (ltsc 21h2, 527.56). Reverting back to 106 but no help. I wonder if something is off with nvidia driver...

Acceleration works just fine in MPC-HC, so I guess it's a Firefox issue.

Severity: S4 → S3
Priority: P3 → P2

(In reply to Artem S. Tashkinov from comment #20)

(In reply to dirtalive from comment #19)

Recently noticed the same issue (ltsc 21h2, 527.56). Reverting back to 106 but no help. I wonder if something is off with nvidia driver...

Acceleration works just fine in MPC-HC, so I guess it's a Firefox issue.

I finally figured out why. LTSC does not come with VP9 video extension from Microsoft Store. Once I install it the VP9 hardware decoding works again in firefox. MPC works probably because it uses its own codec, unlike firefox I think.

I can confirm that Firefox requires Windows 10 VP9 video extension from the Microsoft Store in order to enable HW acceleration of VP9 video. No idea why it works in MPC-HC regardless.

This bug can be closed as INVALID except I'd really love to see Firefox checking for the presence of this extension and notifying the user in the case it's absent.

Flags: needinfo?(jmathies)

Of course this [probably only] applies to Windows 10 LTSC - I don't have any other versions to test it.

Note that, for AV1 hardware decoding, you will also need to install the extension from the Microsoft Store. There is a related bug 1764200.

The reason that MPC works might be because they uses DXVA API directly for the hardware decoding, by contrast Firefox relies on the Windows Media Foundation framework, and Firefox can't perform hardware decoding for those codecs lacking of valid decoder MFT.

Close this bug per comment 21 and 22.

Status: UNCONFIRMED → RESOLVED
Closed: 2 years ago
Flags: needinfo?(alwu)
Resolution: --- → FIXED

You marked it closed but there's no publicly available documentation or any information in the browser itself to help understand why it's not working.

You can trivially detect whether the required DLLs are not present in the system and warn the user about that.

Right now the browser without the Microsoft codec happily reports VP9: HW and it's just wrong and false.

c:/Program Files/WindowsApps/Microsoft.VP9VideoExtensions_1.0.50901.0_x64__8wekyb3d8bbwe/x64/msvp9dec_store.dll
c:/Program Files/WindowsApps/Microsoft.VP9VideoExtensions_1.0.50901.0_x64__8wekyb3d8bbwe/x64/msvpxenc.dll

Detecting via DLLs doesn't sound rational, there must be an API for that.

For the purpose of grouping related useful resources together, please move discussions about how to solve this for users to bug 1764200 which is about considering to prompt users to see if they want to install extensions or not.

Flags: needinfo?(jmathies)
See Also: → 1764200
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: