I’ve tried to setup and test h264 vulkan video decoding using ffmpeg-7 benchmark as follows: HWAccelIntro – FFmpeg
ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan -hwaccel_output_format vulkan -i h264_10bit_yuv422p10le.mp4 -f null - -benchmark
But I get the following output and error messages:
[h264 @ 0x560566feda40] Device does not support the VK_KHR_video_decode_queue extension!
[h264 @ 0x560566feda40] Failed setup for format vulkan: hwaccel initialisation returned error.
For me it seems like Vulkan and Intel drivers should work,
though the missing VK_KHR_video_decode_queue prohibit the ffmpeg benchmark test?
I have the following vulkan, libva and intel related packages installed
S | Name | Type | Version | Arch | Repository
---+--------------------------------+---------+----------------------+--------+-------------------------
i | intel-media-driver | package | 24.1.5-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | intel-vaapi-driver | package | 2.4.1-5.13 | x86_64 | openSUSE-Slowroll-Oss
i | kernel-firmware-intel | package | 20240728-1.1 | noarch | openSUSE-Slowroll-Update
i | kernel-firmware-intel | package | 20240728-1.1 | noarch | openSUSE-Slowroll-Oss
i | libdrm_intel1 | package | 2.4.122-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libgstvulkan-1_0-0 | package | 1.24.6-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libva-drm2 | package | 2.22.0-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libva-glx2 | package | 2.22.0-1.1 | x86_64 | openSUSE-Slowroll-Oss
i+ | libva-utils | package | 2.22.0-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libva-wayland2 | package | 2.22.0-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libva-x11-2 | package | 2.22.0-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libva2 | package | 2.22.0-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | libvulkan1 | package | 1.3.290-1.1 | x86_64 | openSUSE-Slowroll-Oss
i+ | libvulkan_intel | package | 24.1.2-1699.389.pm.3 | x86_64 | Packman
i+ | libvulkan_lvp | package | 24.1.2-1699.389.pm.3 | x86_64 | Packman
i | libVulkanLayerSettings-1_3_290 | package | 1.3.290-1.1 | x86_64 | openSUSE-Slowroll-Oss
i | Mesa-libva | package | 24.1.2-1699.389.pm.3 | x86_64 | Packman
i+ | Mesa-vulkan-device-select | package | 24.1.2-1699.389.pm.3 | x86_64 | Packman
i+ | Mesa-vulkan-overlay | package | 24.1.2-1699.389.pm.3 | x86_64 | Packman
i+ | ucode-intel | package | 20240531-1.1 | x86_64 | openSUSE-Slowroll-Oss
i+ | vulkan-tools | package | 1.3.290-1.1 | x86_64 | openSUSE-Slowroll-Oss
i+ | vulkan-validationlayers | package | 1.3.290-1.1 | x86_64 | openSUSE-Slowroll-Oss
vulkaninfo | grep VK_KHR_video_decode_queue
- not found
vulkaninfo | grep Arc
GPU id = 0 (Intel(R) Arc(tm) A750 Graphics (DG2))
GPU id = 0 (Intel(R) Arc(tm) A750 Graphics (DG2))
GPU id = 0 (Intel(R) Arc(tm) A750 Graphics (DG2))
GPU id : 0 (Intel(R) Arc(tm) A750 Graphics (DG2)):
deviceName = Intel(R) Arc(tm) A750 Graphics (DG2)
ls /usr/share/vulkan/icd.d/
intel_hasvk_icd.x86_64.json intel_icd.x86_64.json lvp_icd.x86_64.json
vkcube
Selected GPU 0: Intel(R) Arc(tm) A750 Graphics (DG2), type: DiscreteGpu
- looks ok
@terjejh Hi, I have a A380 (oneapi is installed) here on Tumbleweed…
vulkaninfo | grep VK_KHR_video_decode_queue
VK_KHR_video_decode_queue : extension revision 8
I use intel-opencl;
ls -la /etc/OpenCL/vendors/
total 12
drwxr-xr-x 1 root root 60 Aug 10 10:42 .
drwxr-xr-x 1 root root 14 Jun 26 2022 ..
lrwxrwxrwx 1 root root 35 Aug 10 10:06 intel.icd -> /usr/share/OpenCL/vendors/intel.icd
lrwxrwxrwx 1 root root 42 Aug 10 10:42 intel64.icd -> /etc/alternatives/opencl-intel-runtime-icd
-r--r--r-- 1 root root 22 Aug 6 18:00 nvidia.icd
ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan -hwaccel_output_format vulkan -i Downloads/h264.mkv -f null - -benchmark
Input #0, matroska,webm, from 'Downloads/h264.mkv':
Metadata:
COM.PANASONIC.SEMI-PRO.METADATA.XML: <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
....
Duration: 00:00:18.72, start: 0.000000, bitrate: 71028 kb/s
Stream #0:0: Video: h264 (High 4:2:2), yuv422p(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 1k tbn (default)
....
encoder : Lavc60.31.102 pcm_s16le
[out#0/null @ 0x5582a1a30680] video:439kB audio:1757kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
frame= 936 fps=164 q=-0.0 Lsize=N/A time=00:00:18.71 bitrate=N/A speed=3.28x
bench: utime=70.346s stime=0.492s rtime=5.707s
bench: maxrss=889716kB
@malcolmlewis Thank you for the tip.
I add-installed intel-opencl, but still get no output from
vulkaninfo | grep VK_KHR_video_decode_queue
ls -la /etc/OpenCL/vendors/
Can you guide me how to setup this beyond the intel-opencl package installation?
@terjejh as root user run ln -s /usr/share/OpenCL/vendors/intel.icd /etc/OpenCL/vendors/intel.icd
I don’t use Packman, so don’t have those two Vulkan packages installed?
Likewise on Tumbleweed, so Mesa is 24.1.3 which may have some ARC fixes as well…
@terjejh OK, I used the SLE versions (part of oneapi install libvulkan_intel libvulkan_lvp), but the extension is not present, seem I steered you on the wrong track since I also have an Nvidia Quadro T400 installed which has the extension.
Edit: This may be of interest Video Codecs Supported by Intel® Arc™
@malcolmlewis
Ok, setting an environment variable solved the first issue
export ANV_VIDEO_DECODE=1
vulkaninfo | grep VK_KHR_video_decode_queue
VK_KHR_video_decode_queue : extension revision 8
Still remaining hwaccel initialisation returned error for h264 and h265 input respectively:
[h264 @ 0x55952760cf40] Failed setup for format vulkan: hwaccel initialisation returned error.
--------
[hevc @ 0x5580e96e8c80] Failed setup for format vulkan: hwaccel initialisation returned error.
[hevc @ 0x5580e96e8c80] Unsupported film grain parameters. Ignoring film grain.
@terjejh what about vulkaninfo | grep VK_KHR_video
do you see decode and encode entries as well?
So I only see;
VK_KHR_video_decode_queue : extension revision 8
VK_KHR_video_queue : extension revision 8
FYI for others, on GNOME with Wayland on Intel and Nvidia GPU’s it doesn’t like libvulkan_intel
I see Error 71 (Protocol error) dispatching to Wayland display
when trying to launch the like of Nautilus etc, I suspect because it’s using Prime Render Offload automatically these days…
@malcolmlewis
export ANV_VIDEO_DECODE=1
vulkaninfo | grep VK_KHR_video
VK_KHR_video_decode_h264 : extension revision 9
VK_KHR_video_decode_h265 : extension revision 8
VK_KHR_video_decode_queue : extension revision 8
VK_KHR_video_queue : extension revision 8
No Vulkan ‘encode’ seen yet, but it is quite new and will be implemented in ffmpeg next, according to Phoronix
Indeed I am most curious on upcoming Vulkan AV1 support:
Regarding Vulkan AV1 Video Decoding Extension
Possibly also AV1 Encoding support next was planned as listed in the dotted box here(?)
The Vulkan Working Group at Khronos has developed a set of video format decode and encode extensions, collectively referred to as Vulkan Video. Today, with the release of Vulkan 1.3.277, the Working Group is proud to announce the new Decode AV1 video...
1 Like
@malcolmlewis Yes, i7-12700KF, so it may be of interest what it bring out.
Else, I have also requested the FFmpeg-user list about the ffmpeg Vulkan: hwaccel initialisation returned error, and from there it has been forwarded to Intel to possibly have a look at it.
https://ffmpeg.org//pipermail/ffmpeg-user/2024-August/058562.html
1 Like
Intel Quick Sync Video is Intel's brand for its dedicated video encoding and decoding hardware core. Quick Sync was introduced with the Sandy Bridge CPU microarchitecture on 9 January 2011 and has been found on the die of Intel CPUs ever since.
The name "Quick Sync" refers to the use case of quickly transcoding ("converting") a video from, for example, a DVD or Blu-ray Disc to a format appropriate to, for example, a smartphone, in situations where speed is more important than the best possible q...
AVC → Yes (High 10 not supported)
and you want to use ‘10bit’ …
Vulkan video decoding is a experimental feature. Use VA API.
https://intel.github.io/libvpl/latest/appendix/VPL_apnds_e.html
system
Closed
September 28, 2024, 5:38am
12
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.