On Sat Jul 20, 2024 at 11:32:29AM GMT, Rafael Sadowski wrote:
> OK to enable VA-API? It only depends on xenocara libva. Since libva
> builds on almost all arches, I see no reason to restrict it by CPU
> architectures any further.
>
Here is some research from me:

# Case 1, segmentation fault in intel-media-driver:

# Files from https://www.elecard.com/videos
$ ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 \
-i AVC-H.264-TheaterSquare_3840x2160.mp4 -vf 'format=nv12,hwupload' -c:v \
h264_vaapi -f mpegts - | ffplay -

Core was generated by `ffmpeg'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000b14b7051e70 in memcpy (dst0=0xb140ff22eb0, src0=<optimized out>, 
length=328) at /usr/src/lib/libc/string/memcpy.c:103
103             TLOOP(*(word *)dst = *(word *)src; src += wsize; dst += wsize);
[Current thread is 1 (process 540996)]
(gdb) bt
#0  0x00000b14b7051e70 in memcpy (dst0=0xb140ff22eb0, src0=<optimized out>, 
length=328) at /usr/src/lib/libc/string/memcpy.c:103
#1  0x00000b1480df0204 in GpuContextSpecificNext::GetOcaRTLogResource 
(this=0xb140ff222b0, globalInst=0x0)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_softlet/linux/common/os/mos_gpucontext_specific_next.cpp:1979
#2  0x00000b1480df9238 in MosInterface::GetRtLogResourceInfo 
(osInterface=0xb14e7352000, osResource=@0x70f80fdba8a8: 0x0, 
size=@0x70f80fdba8a0: 0)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_softlet/linux/common/os/mos_interface.cpp:3959
#3  0x00000b1481532714 in HalOcaInterfaceNext::AddRTLogReource (cmdBuffer=..., 
mosContext=0xb148600e000, osInterface=...)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_softlet/linux/common/shared/hal_oca_interface_next.cpp:542
#4  0x00000b14810d509b in CodechalEncodeAvcEnc::BrcInitResetKernel 
(this=0xb14a69a7000)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/agnostic/common/codec/hal/codechal_encode_avc.cpp:3111
#5  0x00000b14811fb46c in CodechalEncodeAvcEncG12::ExecuteKernelFunctions 
(this=0xb14a69a7000)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/agnostic/gen12/codec/hal/codechal_encode_avc_g12.cpp:1805
#6  0x00000b14810b7b54 in CodechalEncoderState::ExecuteEnc (this=0xb14a69a7000, 
encodeParams=0xb1432515bc8)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp:5061
#7  0x00000b14810b71f9 in CodechalEncoderState::Execute (this=0xb14a69a7000, 
params=0xb1432515bc8)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp:685
#8  0x00000b1480fd871a in DdiEncodeAvc::EncodeInCodecHal (this=<optimized out>, 
numSlices=1)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/linux/common/codec/ddi/media_ddi_encode_avc.cpp:1151
#9  0x00000b1480fc0421 in DdiEncodeBase::EndPicture (this=0xb140ff22eb0, 
ctx=<optimized out>, context=<optimized out>)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/linux/common/codec/ddi/media_ddi_encode_base.cpp:77
#10 0x00000b1480fc56c0 in DdiEncode_EndPicture (ctx=0xb14cd1b9200, 
context=536870912)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/linux/common/codec/ddi/media_libva_encoder.cpp:641
#11 0x00000b1480fa7eb5 in DdiMedia_EndPicture (ctx=0xb14cd1b9200, 
context=536870912)
    at 
/usr/ports/pobj/intel-media-driver-24.1.5/media-driver-intel-media-24.1.5/media_driver/linux/common/ddi/media_libva.cpp:4038
#12 0x00000b14b776207e in vaEndPicture () from /usr/X11R6/lib/libva.so.2.22
#13 0x00000b147e7b37c2 in vaapi_encode_issue (avctx=0xb141e6eb800, 
pic=0xb144d2c9800) at src/libavcodec/vaapi_encode.c:574
#14 ff_vaapi_encode_receive_packet (avctx=0xb141e6eb800, pkt=0xb140e3b7f80) at 
src/libavcodec/vaapi_encode.c:1188
#15 0x00000b147e2a4772 in encode_receive_packet_internal (avctx=0xb141e6eb800, 
avpkt=0xb140e3b7f80) at src/libavcodec/encode.c:301
#16 0x00000b147e2a4667 in avcodec_send_frame (avctx=0xb141e6eb800, 
frame=0xb144d2d5400) at src/libavcodec/encode.c:387
#17 0x00000b11fcb1536a in do_video_out (of=0xb14cd1cb400, ost=0xb14a2ff6c00, 
next_picture=0xb144d2d5400) at src/fftools/ffmpeg.c:1367
#18 0x00000b11fcb1412c in reap_filters (flush=0) at src/fftools/ffmpeg.c:1562
#19 0x00000b11fcb0d98a in transcode_step () at src/fftools/ffmpeg.c:4761
#20 transcode () at src/fftools/ffmpeg.c:4805
#21 0x00000b11fcb09902 in main (argc=<optimized out>, argv=<optimized out>) at 
src/fftools/ffmpeg.c:5010

# Case 2 No usable encoding entrypoint found for profile VAProfileVP9Profile0

# Files from https://www.elecard.com/videos
$ ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 \
-i VP9_UshaikaRiverEmb_3840x2160.webm -vf 'format=nv12,hwupload' \
-c:v vp9_vaapi -f mpegts - |ffplay -
...
[vp9_vaapi @ 0x36c273db800] No usable encoding entrypoint found for profile 
VAProfileVP9Profile0 (19)

Although VAProfileVP9Profile0 is present:

$ vainfo -a

libva info: VA-API version 1.22.0
libva info: Trying to open /usr/X11R6/lib/modules/dri/iHD_drv_video.so
libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
Trying display: x11
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 config attributes per profile/entrypoint pair

....

VAProfileVP9Profile0/VAEntrypointVLD
    VAConfigAttribRTFormat                 : VA_RT_FORMAT_YUV420
    VAConfigAttribDecSliceMode             : VA_DEC_SLICE_MODE_NORMAL
                                             VA_DEC_SLICE_MODE_BASE
    VAConfigAttribDecProcessing            : VA_DEC_PROCESSING
    VAConfigAttribMaxPictureWidth          : 16384
    VAConfigAttribMaxPictureHeight         : 16384
    VAConfigAttribProcessingRate           : VA_PROCESSING_RATE_DECODE

VAProfileVP9Profile1/VAEntrypointVLD
    VAConfigAttribRTFormat                 : VA_RT_FORMAT_YUV422
                                             VA_RT_FORMAT_YUV444
    VAConfigAttribDecSliceMode             : VA_DEC_SLICE_MODE_NORMAL
                                             VA_DEC_SLICE_MODE_BASE
    VAConfigAttribDecProcessing            : VA_DEC_PROCESSING
    VAConfigAttribMaxPictureWidth          : 16384
    VAConfigAttribMaxPictureHeight         : 16384
    VAConfigAttribProcessingRate           : VA_PROCESSING_RATE_DECODE

VAProfileVP9Profile2/VAEntrypointVLD
    VAConfigAttribRTFormat                 : VA_RT_FORMAT_YUV420_10
                                             VA_RT_FORMAT_YUV420_12
                                             VA_RT_FORMAT_YUV420_10BPP
    VAConfigAttribDecSliceMode             : VA_DEC_SLICE_MODE_NORMAL
                                             VA_DEC_SLICE_MODE_BASE
    VAConfigAttribDecProcessing            : VA_DEC_PROCESSING
    VAConfigAttribMaxPictureWidth          : 16384
    VAConfigAttribMaxPictureHeight         : 16384
    VAConfigAttribProcessingRate           : VA_PROCESSING_RATE_DECODE

VAProfileVP9Profile3/VAEntrypointVLD
    VAConfigAttribRTFormat                 : VA_RT_FORMAT_YUV422_10
                                             VA_RT_FORMAT_YUV444_10
                                             VA_RT_FORMAT_YUV422_12
                                             VA_RT_FORMAT_YUV444_12
    VAConfigAttribDecSliceMode             : VA_DEC_SLICE_MODE_NORMAL
                                             VA_DEC_SLICE_MODE_BASE
    VAConfigAttribDecProcessing            : VA_DEC_PROCESSING
    VAConfigAttribMaxPictureWidth          : 16384
    VAConfigAttribMaxPictureHeight         : 16384
    VAConfigAttribProcessingRate           : VA_PROCESSING_RATE_DECODE

VAProfileHEVCMain12/VAEntrypointVLD
    VAConfigAttribRTFormat                 : VA_RT_FORMAT_YUV420
                                             VA_RT_FORMAT_YUV400
                                             VA_RT_FORMAT_YUV420_10
                                             VA_RT_FORMAT_YUV420_12
                                             VA_RT_FORMAT_YUV420_10BPP
    VAConfigAttribDecSliceMode             : VA_DEC_SLICE_MODE_NORMAL
    VAConfigAttribDecProcessing            : VA_DEC_PROCESSING
    VAConfigAttribMaxPictureWidth          : 16384
    VAConfigAttribMaxPictureHeight         : 16384
    VAConfigAttribProcessingRate           : VA_PROCESSING_RATE_DECODE

Reply via email to