Which component impacted?
Encode
Is it regression? Good in old configuration?
No, this issue exist a long time
What happened?
Under Linux, when compile oneVPL-intel-gpu with LLVM/Clang (at least versions 14-17), the AV1 QSV encoder used by ffmpeg always failed with:
[AVHWDeviceContext @ 0x56408d82a800] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.2.2 ().
[AVHWDeviceContext @ 0x56408d82a800] Driver not found in known nonstandard list, using standard behaviour.
[av1_qsv @ 0x56408c586cc0] Initialized an internal MFX session using hardware accelerated implementation
[av1_qsv @ 0x56408c586cc0] Using the variable bitrate (VBR) ratecontrol method
EHW Exception: unknown ext. buffer Id
[av1_qsv @ 0x56408c586cc0] Error initializing the encoder: unknown error (-1)
[vost#0:0/av1_qsv @ 0x56408c584d40] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.
Error while filtering: Unknown error occurred
Which at
|
throw std::logic_error("unknown ext. buffer Id"); |
The same code compiled with gcc works fine.
What's the usage scenario when you are seeing the problem?
Transcode for media delivery
What impacted?
AV1 hardware encoding not work when using LLVM/clang.
Debug Information
I only provide the latest version, this problem is at least a year old and many different combinations have been tried.
- libva 2.21
- gmmlib 22.3.19
- libvpl 2.11.0
- oneVPL-intel-gpu 24.2.2
- ffmpeg 6.1.1
- Linux 6.9
- LLVM/Clang 14 - 17
- gcc 13.3.0
ls /dev/dri
./ ../ by-path/ card0 renderD128
libva info: VA-API version 1.21.0
libva info: Trying to open /usr/lib64/va/drivers/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
Trying display: wayland
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.2.2 ()
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
- N/A
- N/A
Do you want to contribute a patch to fix the issue?
None
Which component impacted?
Encode
Is it regression? Good in old configuration?
No, this issue exist a long time
What happened?
Under Linux, when compile oneVPL-intel-gpu with LLVM/Clang (at least versions 14-17), the AV1 QSV encoder used by ffmpeg always failed with:
Which at
vpl-gpu-rt/_studio/mfx_lib/shared/include/mfx_utils_extbuf.h
Line 61 in 4ad0d7b
The same code compiled with gcc works fine.
What's the usage scenario when you are seeing the problem?
Transcode for media delivery
What impacted?
AV1 hardware encoding not work when using LLVM/clang.
Debug Information
I only provide the latest version, this problem is at least a year old and many different combinations have been tried.
Do you want to contribute a patch to fix the issue?
None