#9256 closed defect (fixed)

D3D11VA does not work for AV1

Reported by: aufkrawall Owned by:
Priority: normal Component: ffmpeg
Version: git-master Keywords: D3D11VA
Cc: aufkrawall Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Run

ffmpeg -hwaccel d3d11va -i "1080p_av1_29.97fps.mkv" -f matroska - | ffplay -

It should use D3D11VA for decoding, and is the case for H.264 and VP9. But it doesn't use hardware decoding for AV1, "Video Codec 0" and 1 don't report any usage in Windows Task Manager (it's the weird place where AMD driver reports VPU usage). When playing the AV1 file in MPC HC with LAV Filters, it uses hardware decoding and there is load reported for "Video Codec 0" sensor. This is also the case when decoding H.264/VP9 via D3D11VA in ffmpeg.

ffmpeg 4.4 changelog mentions "DXVA2/D3D11VA hardware accelerated AV1 decoding", so I think it should work.
Tested with gyan.dev 2021-05-19-git-2261cc6d8a build.

Sample: Download this video as AV1 via youtube-dl:
https://youtu.be/2nXYbGmF3_Q?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS

Radeon RX 6800, driver 21.5.2, Windows 10 21H1.

Change History (9)

comment:1 by aufkrawall, 13 months ago

Keywords: D3D11VA added; D3D11V removed

comment:2 by aufkrawall, 13 months ago

Cc: aufkrawall added

comment:3 by Balling, 13 months ago

Did you install AV1 video extensions? Does it then decode in movies and tv? Also do we even care about AMD GPUs?

Last edited 13 months ago by Balling (previous) (diff)

comment:4 by aufkrawall, 13 months ago

Is this "Balling" person speaking on behalf of the ffmpeg project? In that case, I'd just close my report, as I don't want to be involved in fishy vendor bribery. If not, I wonder why he/she is still allowed to post.

Well, of course AV1 codec app from Microsoft is installed and it works in Windows 10 TV & Movies app accordingly.

comment:5 by aufkrawall, 13 months ago

*del*, trac.ffmpeg servers are slow.

Last edited 13 months ago by aufkrawall (previous) (diff)

in reply to:  5 comment:6 by Balling, 13 months ago

Replying to aufkrawall:

*del*, trac.ffmpeg servers are slow.

Our servers are fast, it is trac (that we did update to latest version, 1.4.2) that is broken. They need to learn how to use javascript to block pressing buttons twice.

If it does work in movies & tv (even though it does use MFF, while we do not really) I think it should work in ffmpeg. While there also check mpv.

I am not even sure what is the status of support for film grain by AMD drivers, for example. I mean even in Intel it does not work 100% yet, some patches are there, but they use propriatory binary blob for film grain, Nvidia is the only that works 100%.

Last edited 13 months ago by Balling (previous) (diff)

comment:7 by aufkrawall, 13 months ago

LAV Filters refuses to implement vendor-specific workarounds. Since it works there also with AMD, it might be a non vendor specific bug in ffmpeg. Somebody would need to check with Intel (Gen 12) and Nvidia (Ampere) to be certain.

comment:8 by Balling, 13 months ago

Can you also test with https://github.com/BtbN/FFmpeg-Builds/ and also we will need DXVA checker dump in ALL APIs.

You can use mpv Vulkan https://github.com/mpv-player/mpv/issues/7743 for now.

Last edited 13 months ago by Balling (previous) (diff)

comment:9 by aufkrawall, 11 months ago

Resolution: fixed
Status: newclosed

For whatever reason, it works now on both AMD & Nvidia (didn't work with the latter before either).

Note: See TracTickets for help on using tickets.