Opened 7 months ago

Closed 7 months ago

Last modified 7 months ago

#10566 closed enhancement (invalid)

AV1 decoding with -hwaccel d3d11va performance issue

Reported by: Evgeny Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: av1
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Summary of the bug:
When I try to use av1 hardware decoder with -hwaccel d3d11va, then hardware AV1 decoder is working in one thread only, because FPS for video decoding is the same with and without -threads 1 option, VCN utilization is about 53% for both commands.

If I use the same command on hevc / h264 video, then I got 98% of VCN utilization without passing option -threads 1 and 55% of VCN utilization.
I tested on AMD GPU 6800XT & on notebook with Intel/NVidia GPU and it seems that this issue is general for av1 hardware decoders.
I found that av1_decoder doesn't setup AV_CODEC_CAP_FRAME_THREADS option in .p.capabilities while hevc&h264 does, does AV1 decoder support multithreading?
How to reproduce:

% ffmpeg.exe -hwaccel d3d11va -i av1_source.mp4 -f null -
% ffmpeg.exe -threads 1 -hwaccel d3d11va -i av1_source.mp4 -f null -
ffmpeg version: git-master
built on Windows

Change History (4)

comment:1 by arm64-v9a, 7 months ago

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -i av1_source.mp4 -f null -

ffmpeg -hwaccel d3d11va -hwaccel_output_format d3d11 -i av1_source.mp4 -vf hwdownload,format -f null -

comment:2 by arm64-v9a, 7 months ago

Last edited 7 months ago by arm64-v9a (previous) (diff)

comment:3 by Evgeny, 7 months ago

Resolution: invalid
Status: newclosed

comment:4 by Evgeny, 7 months ago

@arm64-v9a Thanks a lot for your answer. I just wondering why ffmpeg has different behavior for av1 and h264 decoder? I just found that AV1 decoder doesn't declare AV_CODEC_CAP_FRAME_THREADS in ff_av1_decoder, does it mean that av1 decoder doesn't support frame-level multithreading?

Note: See TracTickets for help on using tickets.