Skip to content

[Bug]: Fail to encode AV1 due to LLVM compiler #331

@RinCat

Description

@RinCat

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
  1. N/A
  2. N/A

Do you want to contribute a patch to fix the issue?

None

Metadata

Metadata

Assignees

Labels

AV1AV1 CodecEncodeVideo Encoding

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions