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