[FFmpeg-user] Failed setup for format vulkan: hwaccel initialisation returned error for Arc A750

Terje J. Hanssen terjejhanssen at gmail.com
Wed Aug 14 15:27:28 EEST 2024



Den 14.08.2024 14:22, skrev Dennis Mungai:
> On Wed, Aug 14, 2024, 15:15 Terje J. Hanssen <terjejhanssen at gmail.com> 
> wrote:
>
>
>
>     Den 14.08.2024 02:05, skrev Dennis Mungai:
>>     On Wed, 14 Aug 2024, 02:59 Dennis Mungai, <dmngaie at gmail.com> wrote:
>>
>>         On Wed, 14 Aug 2024, 02:45 Terje J. Hanssen,
>>         <terjejhanssen at gmail.com> wrote:
>>
>>
>>
>>             Den 13.08.2024 19:40, skrev Dennis Mungai:
>>>             On Tue, 13 Aug 2024 at 19:49, Andrew Randrianasulu<randrianasulu at gmail.com>  <mailto:randrianasulu at gmail.com>
>>>             wrote:
>>>
>>>>             вт, 13 авг. 2024 г., 19:46 Terje J. Hanssen<terjejhanssen at gmail.com>  <mailto:terjejhanssen at gmail.com>:
>>>>
>>>>>             Hi,
>>>>>
>>>>>             I try to test Vulkan h264 or h265 decoding according to test command at
>>>>>             https://trac.ffmpeg.org/wiki/HWAccelIntro#Vulkan
>>>>>             ffmpeg -init_hw_device "vulkan=vk:0" -hwaccel vulkan
>>>>>             -hwaccel_output_format vulkan -i INPUT -f null - -benchmark
>>>>>
>>>>>             but get the following output error:
>>>>>             [h264 @ 0x55952760cf40] Failed setup for format vulkan: hwaccel
>>>>>             initialisation returned error.
>>>>>             or
>>>>>             [hevc @ 0x5580e96e8c80] Failed setup for format vulkan: hwaccel
>>>>>             initialisation returned error.
>>>>>
>>>>>             Any suggestion how to solve it?
>>>>>
>>>>             Honestly, no idea .. try ffmpeg matrix/irc channel or ffmpeg-user?
>>>>
>>>             This has to do with your input file. Your log indicates that you're
>>>             attempting to decode 10-bit H.264, and from my suspicion, almost zero GPUs
>>>             implement 10-bit H.264 decode.
>>>             You can verify via vainfo's output to see the decoder limitation(s) for
>>>             H.264 levels, etc.
>>>             Try decoding any of the sample file from Kodi's H.264 sample collection:
>>>             https://kodi.wiki/view/Samples#Codecs,_Framerates,_Black-levels_and_Subtitles
>>>             And report back.
>>>             _______________________________________________
>>>
>>
>>             1) Thank you for your suspicion regarding almost zero
>>             GPUs implement 10-bit H.264 decode.
>>             This is obviously true in my case, because when I tested
>>             a h264 8-bit yuv420p file, the hwaccel
>>             initialisation error was away. Full ffmpeg output report
>>             below using my own encoded input file.
>>             (Even with a h264 8-bit yuv422p input file ffmpeg did
>>             output the hwaccel initialisation error)
>>
>>             2) However Intel Arc A-series should support HEVC
>>             (H.265) 10-bit 4:2:0 and 10-bit 4:2:2 decode and encode
>>             formats  according to this page:
>>             https://www.intel.com/content/www/us/en/support/articles/000098345/graphics.html
>>             Also testing the corresponding input file in this format
>>             get the hwaccel initialisation error, see the full ffmpeg
>>             output below.
>>
>>
>     .......snip
>
>>             -------------
>>
>>             vainfo | egrep 'H264|422_10'
>>
>>                 libva info: VA-API version 1.22.0
>>                 libva info: Trying to open
>>                 /usr/lib64/dri/iHD_drv_video.so
>>                 libva info: Found init function __vaDriverInit_1_21
>>                 libva info: va_openDriver() returns 0
>>                 VAProfileH264Main :    VAEntrypointVLD
>>                 VAProfileH264Main :    VAEntrypointEncSliceLP
>>                 VAProfileH264High :    VAEntrypointVLD
>>                 VAProfileH264High :    VAEntrypointEncSliceLP
>>                 VAProfileH264ConstrainedBaseline: VAEntrypointVLD
>>                 VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
>>                 VAProfileHEVCMain422_10 :    VAEntrypointVLD
>>                 VAProfileHEVCMain422_10 :    VAEntrypointEncSliceLP
>>
>>             ----------
>>
>>             vulkaninfo | egrep 'H264|H265|HEVC'
>>             VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR
>>             VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
>>
>>             -------------
>>
>>
>     ....snip
>
>>             --------------
>>
>>             2) 23M    h265_yuv422p10le_SR.mp4
>>
>>             ffmpeg -hide_banner -init_hw_device "vulkan=vk:0"
>>             -hwaccel vulkan -hwaccel_output_format vulkan -i
>>             h265_yuv422p10le_SR.mp4 -f null - -benchmark
>>             Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>>             'h265_yuv422p10le_SR.mp4':
>>               Metadata:
>>                 major_brand     : isom
>>                 minor_version   : 512
>>                 compatible_brands: isomiso2mp41
>>                 encoder         : Lavf61.1.100
>>               Duration: 00:01:11.16, start: 0.000000, bitrate: 2703 kb/s
>>               Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 /
>>             0x31766568), yuv422p10le(pc, smpte170m/unknown/unknown,
>>             top coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9],
>>             2700 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>>                   Metadata:
>>                     handler_name    : VideoHandler
>>                     vendor_id       : [0][0][0][0]
>>             Stream mapping:
>>               Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe
>>             (native))
>>             Press [q] to stop, [?] for help
>>             ** [hevc @ 0x55edf209fa40] Failed setup for format
>>             vulkan: hwaccel initialisation returned error.
>>             ** [hevc @ 0x55edf209fa40] Unsupported film grain
>>             parameters. Ignoring film grain.
>>             Output #0, null, to 'pipe:':
>>               Metadata:
>>                 major_brand     : isom
>>                 minor_version   : 512
>>                 compatible_brands: isomiso2mp41
>>                 encoder         : Lavf61.1.100
>>               Stream #0:0(und): Video: wrapped_avframe,
>>             yuv422p10le(pc, smpte170m/unknown/unknown, progressive),
>>             1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps,
>>             25 tbn (default)
>>                   Metadata:
>>                     handler_name    : VideoHandler
>>                     vendor_id       : [0][0][0][0]
>>                     encoder         : Lavc61.3.100 wrapped_avframe
>>             [out#0/null @ 0x55edf207ff40] video:764KiB audio:0KiB
>>             subtitle:0KiB other streams:0KiB global headers:0KiB
>>             muxing overhead: unknown
>>             frame= 1779 fps=750 q=-0.0 Lsize=N/A time=00:01:11.16
>>             bitrate=N/A speed= 30x
>>             bench: utime=15.892s stime=0.188s rtime=2.371s
>>             bench: maxrss=411104KiB
>>
>>
>>
>>         It seems that as implemented, Vulkan decoding is definitely
>>         failing with interlaced HEVC video, regardless of the
>>         underlying pixel format.
>>
>>         The file failing on your end is interlaced HEVC, see
>>         h265_yuv422p10le_SR.mp4
>>
>>
>>     This ticket may also be relevant, interlaced HEVC encodes are
>>     quite rare out here and may be non-spec compliant.
>>
>     ======================
>
>     Good points.
>
>     My original ProRes422 HQ source input file before encoding to HEVC
>     using CinelerraGG/FFmpeg, was a  in a valid HD 1920x1080i25 format.
>     I also had a look at the available ffmpeg pixel formats:
>
>     ffmpeg -hide_banner -h encoder=hevc | grep yuv422p10
>         Supported pixel formats: yuv420p yuvj420p yuv422p yuvj422p
>     yuv444p yuvj444p gbrp yuv420p10le yuv422p10le yuv444p10le gbrp10le
>     yuv420p12le yuv422p12le yuv444p12le gbrp12le gray gray10le gray12le
>
>     ffmpeg -hide_banner -h full codecs=hevc | grep yuv422p10
>          yuv422p10       64           ..FV.......
>          yuv422p10       3            ..FV.......
>
>     So now in a third attempt,  I've tried to simply deinterlace the
>     H.265 file, but still get the ffmpeg Vulkan hwaccel initialisation
>     error.
>     I'm wondering if my deinterlace code line is correct, because the
>     deinterlaced output is smaller (halph the size) of the input file.
>     I would have expected it larger(?)
>
>     --------------
>
>     ffmpeg -hide_banner -i h265_yuv422p10le_SR.mp4 -vf
>     yadif=parity=auto -c:v libx265 -c:a copy
>     h265_yuv422p10le_SR_deinterlaced.mp4
>     Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'h265_yuv422p10le_SR.mp4':
>       Metadata:
>         major_brand     : isom
>         minor_version   : 512
>         compatible_brands: isomiso2mp41
>         encoder         : Lavf61.1.100
>       Duration: 00:01:11.16, start: 0.000000, bitrate: 2703 kb/s
>       Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568),
>     yuv422p10le(pc, smpte170m/unknown/unknown, top coded first
>     (swapped)), 1920x1080 [SAR 1:1 DAR 16:9], 2700 kb/s, 25 fps, 25
>     tbr, 12800 tbn (default)
>           Metadata:
>             handler_name    : VideoHandler
>             vendor_id       : [0][0][0][0]
>     File 'h265_yuv422p10le_SR_deinterlaced.mp4' already exists.
>     Overwrite? [y/N] y
>     Stream mapping:
>       Stream #0:0 -> #0:0 (hevc (native) -> hevc (libx265))
>     Press [q] to stop, [?] for help
>     x265 [info]: HEVC encoder version
>     x265 [info]: build info [Linux][GCC 13.3.0][64 bit] 10bit
>     x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3
>     SSE4.2 AVX FMA3 BMI2 AVX2
>     x265 [info]: Main 4:2:2 10 profile, Level-4 (Main tier)
>     x265 [info]: Thread pool created using 20 threads
>     x265 [info]: Slices                              : 1
>     x265 [info]: frame threads / pool features       : 4 / wpp(17 rows)
>     x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
>     x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter /
>     1 intra
>     x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 3
>     x265 [info]: Keyframe min / max / scenecut / bias  : 25 / 250 / 40
>     / 5.00
>     x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
>     x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
>     x265 [info]: References / ref-limit  cu / depth  : 3 / off / on
>     x265 [info]: AQ: mode / str / qg-size / cu-tree  : 2 / 1.0 / 32 / 1
>     x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60
>     x265 [info]: tools: rd=3 psy-rd=2.00 early-skip rskip mode=1
>     signhide tmvp
>     x265 [info]: tools: b-intra strong-intra-smoothing lslices=6
>     deblock sao
>     Output #0, mp4, to 'h265_yuv422p10le_SR_deinterlaced.mp4':
>       Metadata:
>         major_brand     : isom
>         minor_version   : 512
>         compatible_brands: isomiso2mp41
>         encoder         : Lavf61.1.100
>       Stream #0:0(und): Video: hevc (hev1 / 0x31766568),
>     yuv422p10le(pc, smpte170m/unknown/unknown, progressive), 1920x1080
>     [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 12800 tbn (default)
>           Metadata:
>             handler_name    : VideoHandler
>             vendor_id       : [0][0][0][0]
>             encoder         : Lavc61.3.100 libx265
>           Side data:
>             cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
>     [out#0/mp4 @ 0x5623a778e940] video:11443KiB audio:0KiB
>     subtitle:0KiB other streams:0KiB global headers:2KiB muxing
>     overhead: 0.213827%
>     frame= 1779 fps= 48 q=32.7 Lsize=   11468KiB time=00:01:11.08
>     bitrate=1321.7kbits/s speed=1.92x
>     x265 [info]: frame I:      9, Avg QP:26.34  kb/s: 10966.00
>     x265 [info]: frame P:    452, Avg QP:27.25  kb/s: 3883.36
>     x265 [info]: frame B:   1318, Avg QP:34.22  kb/s: 370.40
>     x265 [info]: Weighted P-Frames: Y:10.2% UV:0.0%
>
>     encoded 1779 frames in 36.97s (48.12 fps), 1316.56 kb/s, Avg QP:32.41
>
>     ----------------
>
>     3) 12M    h265_yuv422p10le_SR_deinterlaced.mp4
>
>
>     ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan
>     -hwaccel_output_format vulkan -i
>     h265_yuv422p10le_SR_deinterlaced.mp4 -f null - -benchmark
>     Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
>     'h265_yuv422p10le_SR_deinterlaced.mp4':
>       Metadata:
>         major_brand     : isom
>         minor_version   : 512
>         compatible_brands: isomiso2mp41
>         encoder         : Lavf61.1.100
>       Duration: 00:01:11.16, start: 0.000000, bitrate: 1320 kb/s
>       Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568),
>     yuv422p10le(pc, smpte170m/unknown/unknown, progressive), 1920x1080
>     [SAR 1:1 DAR 16:9], 1317 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
>           Metadata:
>             handler_name    : VideoHandler
>             vendor_id       : [0][0][0][0]
>             encoder         : Lavc61.3.100 libx265
>     Stream mapping:
>       Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native))
>     Press [q] to stop, [?] for help
>     [hevc @ 0x56422043e480] Failed setup for format vulkan: hwaccel
>     initialisation returned error.
>     Output #0, null, to 'pipe:':
>       Metadata:
>         major_brand     : isom
>         minor_version   : 512
>         compatible_brands: isomiso2mp41
>         encoder         : Lavf61.1.100
>       Stream #0:0(und): Video: wrapped_avframe, yuv422p10le(pc,
>     smpte170m/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR
>     16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn (default)
>           Metadata:
>             handler_name    : VideoHandler
>             vendor_id       : [0][0][0][0]
>             encoder         : Lavc61.3.100 wrapped_avframe
>     [out#0/null @ 0x564220459f40] video:764KiB audio:0KiB
>     subtitle:0KiB other streams:0KiB global headers:0KiB muxing
>     overhead: unknown
>     frame= 1779 fps=790 q=-0.0 Lsize=N/A time=00:01:11.16 bitrate=N/A
>     speed=31.6x
>     bench: utime=13.717s stime=0.122s rtime=2.251s
>     bench: maxrss=418956KiB
>
>     ===================================
>
>
>
> Can I see a full dump from vainfo? Want to confirm something
>

vainfo
Trying display: wayland
Trying display: x11
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 
24.1.5 ()
vainfo: Supported profile and entrypoints
       VAProfileNone                   :    VAEntrypointVideoProc
       VAProfileNone                   :    VAEntrypointStats
       VAProfileMPEG2Simple            :    VAEntrypointVLD
       VAProfileMPEG2Main              :    VAEntrypointVLD
       VAProfileH264Main               :    VAEntrypointVLD
       VAProfileH264Main               :    VAEntrypointEncSliceLP
       VAProfileH264High               :    VAEntrypointVLD
       VAProfileH264High               :    VAEntrypointEncSliceLP
       VAProfileJPEGBaseline           :    VAEntrypointVLD
       VAProfileJPEGBaseline           :    VAEntrypointEncPicture
       VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
       VAProfileH264ConstrainedBaseline:    VAEntrypointEncSliceLP
       VAProfileHEVCMain               :    VAEntrypointVLD
       VAProfileHEVCMain               :    VAEntrypointEncSliceLP
       VAProfileHEVCMain10             :    VAEntrypointVLD
       VAProfileHEVCMain10             :    VAEntrypointEncSliceLP
       VAProfileVP9Profile0            :    VAEntrypointVLD
       VAProfileVP9Profile0            :    VAEntrypointEncSliceLP
       VAProfileVP9Profile1            :    VAEntrypointVLD
       VAProfileVP9Profile1            :    VAEntrypointEncSliceLP
       VAProfileVP9Profile2            :    VAEntrypointVLD
       VAProfileVP9Profile2            :    VAEntrypointEncSliceLP
       VAProfileVP9Profile3            :    VAEntrypointVLD
       VAProfileVP9Profile3            :    VAEntrypointEncSliceLP
       VAProfileHEVCMain12             :    VAEntrypointVLD
       VAProfileHEVCMain422_10         :    VAEntrypointVLD
       VAProfileHEVCMain422_10         :    VAEntrypointEncSliceLP
       VAProfileHEVCMain422_12         :    VAEntrypointVLD
       VAProfileHEVCMain444            :    VAEntrypointVLD
       VAProfileHEVCMain444            :    VAEntrypointEncSliceLP
       VAProfileHEVCMain444_10         :    VAEntrypointVLD
       VAProfileHEVCMain444_10         :    VAEntrypointEncSliceLP
       VAProfileHEVCMain444_12         :    VAEntrypointVLD
       VAProfileHEVCSccMain            :    VAEntrypointVLD
       VAProfileHEVCSccMain            :    VAEntrypointEncSliceLP
       VAProfileHEVCSccMain10          :    VAEntrypointVLD
       VAProfileHEVCSccMain10          :    VAEntrypointEncSliceLP
       VAProfileHEVCSccMain444         :    VAEntrypointVLD
       VAProfileHEVCSccMain444         :    VAEntrypointEncSliceLP
       VAProfileAV1Profile0            :    VAEntrypointVLD
       VAProfileAV1Profile0            :    VAEntrypointEncSliceLP
       VAProfileHEVCSccMain444_10      :    VAEntrypointVLD
       VAProfileHEVCSccMain444_10      :    VAEntrypointEncSliceLP


More information about the ffmpeg-user mailing list