[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#977286: crash on H.264 encoding



Package: intel-media-va-driver-non-free
Version: 20.4.2+ds1-1
Severity: important
Tags: patch upstream

Hi,

Whenever I start Nageru on my Kaby Lake laptop, it segfaults in the VA driver.
This was fine in 20.3.0+ds1-1, broke in 20.4.1+ds1-1, and is still the case
in 20.4.2+ds1-1. However, compiling upstream 20.4.3 appears to fix it.
This is the relevant patch according to bisect:

  commit fe06066f8c643b75d6cdac21df8e16106d74e89c
  Author: JasonChen <jason.k.chen@intel.com>
  Date:   Thu Nov 26 10:35:24 2020 +0800
  
      [Media Common] Integrate new gmm API for external surface
      
      Integrate new gmm API to create gmmResInfo for external surface.
      Need to update gmm to intel-gmmlib-20.3.3.

This is the backtrace:

Thread 15 "QS_Encode" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb166d700 (LWP 1311008)]
0x00007fffe930d8bf in CodecHalSetRcsSurfaceState (hwInterface=<optimized out>, cmdBuffer=cmdBuffer@entry=0x7fffb166af90, 
    surfaceCodecParams=surfaceCodecParams@entry=0x7fffb166acc0, kernelState=kernelState@entry=0x555556748fd0)
    at ./media_driver/agnostic/common/codec/hal/codechal_utilities.cpp:463
463	./media_driver/agnostic/common/codec/hal/codechal_utilities.cpp: Ingen slik fil eller filkatalog.
(gdb) bt
#0  0x00007fffe930d8bf in CodecHalSetRcsSurfaceState(CodechalHwInterface*, _MOS_COMMAND_BUFFER*, _CODECHAL_SURFACE_CODEC_PARAMS*, MHW_KERNEL_STATE*)
    (hwInterface=<optimized out>, cmdBuffer=cmdBuffer@entry=0x7fffb166af90, surfaceCodecParams=surfaceCodecParams@entry=0x7fffb166acc0, kernelState=kernelState@entry=0x555556748fd0) at ./media_driver/agnostic/common/codec/hal/codechal_utilities.cpp:463
#1  0x00007fffe9431121 in CodechalEncodeAvcEncG9::SendAvcMbEncSurfaces(_MOS_COMMAND_BUFFER*, _CODECHAL_ENCODE_AVC_MBENC_SURFACE_PARAMS*)
    (this=0x5555567124a0, cmdBuffer=0x7fffb166af90, params=0x7fffb166b140)
    at ./media_driver/agnostic/gen9/codec/hal/codechal_encode_avc_g9.cpp:1955
#2  0x00007fffe9369020 in CodechalEncodeAvcEnc::MbEncKernel(bool) (this=0x5555567124a0, mbEncIFrameDistInUse=<optimized out>)
    at ./media_driver/agnostic/common/codec/hal/codechal_encode_avc.cpp:3896
#3  0x00007fffe936d2e9 in CodechalEncodeAvcEnc::ExecuteKernelFunctions() (this=0x5555567124a0)
    at ./media_driver/agnostic/common/codec/hal/codechal_encode_avc.cpp:6460
#4  0x00007fffe9354660 in CodechalEncoderState::ExecuteEnc(EncoderParams*) (this=0x5555567124a0, encodeParams=0x5555566f41d8)
    at ./media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp:4755
#5  0x00007fffe96557f3 in DdiEncodeAvc::EncodeInCodecHal(unsigned int) (this=0x555556614d40, numSlices=1)
    at ./media_driver/linux/common/codec/ddi/media_ddi_encode_avc.cpp:1141
#6  0x00007fffe9640a77 in DdiEncodeBase::EndPicture(VADriverContext*, unsigned int)
    (this=0x555556614d40, ctx=<optimized out>, context=<optimized out>) at ./media_driver/linux/common/codec/ddi/media_ddi_encode_base.cpp:77
#7  0x00007fffe9645d8b in DdiEncode_EndPicture(VADriverContext*, unsigned int) (ctx=ctx@entry=0x5555561c9590, context=context@entry=536870912)
    at ./media_driver/linux/common/codec/ddi/media_libva_encoder.cpp:629
#8  0x00007fffe9672b9b in DdiMedia_EndPicture(VADriverContextP, VAContextID) (ctx=0x5555561c9590, context=536870912)
    at ./media_driver/linux/common/ddi/media_libva.cpp:3831
#9  0x00007ffff6718adf in vaEndPicture () at /lib/x86_64-linux-gnu/libva.so.2
#10 0x00005555555dc03e in QuickSyncEncoderImpl::encode_frame(QuickSyncEncoderImpl::PendingFrame, int, int, int, int, long, long, long, movit::YCbCrLumaCoefficients)
    (this=this@entry=0x555556633210, frame=..., encoding_frame_num=encoding_frame_num@entry=0, display_frame_num=display_frame_num@entry=0, gop_start_display_frame_num=gop_start_display_frame_num@entry=0, frame_type=frame_type@entry=7, pts=12000, dts=10000, duration=24000, ycbcr_coefficients=movit::YCBCR_REC_601) at /usr/include/c++/10/bits/unique_ptr.h:173
#11 0x00005555555de2e3 in QuickSyncEncoderImpl::encode_thread_func() (this=0x555556633210) at ../nageru/quicksync_encoder.cpp:1832
#12 0x00005555555decbc in operator() (__closure=0x55555661e248) at ../nageru/quicksync_encoder.cpp:1491
#13 std::__invoke_impl<void, QuickSyncEncoderImpl::QuickSyncEncoderImpl(const string&, movit::ResourcePool*, QSurface*, const string&, int, int, AVOutputFormat*, X264Encoder*, DiskSpaceEstimator*)::<lambda()> > (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#14 std::__invoke<QuickSyncEncoderImpl::QuickSyncEncoderImpl(const string&, movit::ResourcePool*, QSurface*, const string&, int, int, AVOutputFormat*, X264Encoder*, DiskSpaceEstimator*)::<lambda()> > (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#15 std::thread::_Invoker<std::tuple<QuickSyncEncoderImpl::QuickSyncEncoderImpl(const string&, movit::ResourcePool*, QSurface*, const string&, int, int, AVOutputFormat*, X264Encoder*, DiskSpaceEstimator*)::<lambda()> > >::_M_invoke<0> (this=0x55555661e248) at /usr/include/c++/10/thread:264
#16 std::thread::_Invoker<std::tuple<QuickSyncEncoderImpl::QuickSyncEncoderImpl(const string&, movit::ResourcePool*, QSurface*, const string&, int, int, AVOutputFormat*, X264Encoder*, DiskSpaceEstimator*)::<lambda()> > >::operator() (this=0x55555661e248) at /usr/include/c++/10/thread:271
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<QuickSyncEncoderImpl::QuickSyncEncoderImpl(const string&, movit::ResourcePool*, QSurface*, const string&, int, int, AVOutputFormat*, X264Encoder*, DiskSpaceEstimator*)::<lambda()> > > >::_M_run(void) (this=0x55555661e240)
    at /usr/include/c++/10/thread:215
#18 0x00007ffff4077ed0 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#19 0x00007ffff3e2fea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007ffff3d5fd8f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Please upgrade to 20.4.3, and the crash should go away.

-- System Information:
Debian Release: 10.7
  APT prefers stable-debug
  APT policy: (500, 'stable-debug'), (500, 'proposed-updates'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.9.1 (SMP w/40 CPU cores)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8), LANGUAGE=en_NO:en_US:en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages intel-media-va-driver-non-free depends on:
ii  libc6                          2.28-10
ii  libgcc1                        1:9.1.0-2
ii  libigdgmm5                     18.4.1+ds1-1
ii  libpciaccess0                  0.14-1
ii  libstdc++6                     9.1.0-2
ii  libva2 [libva-driver-abi-1.4]  2.4.0-1

intel-media-va-driver-non-free recommends no packages.

intel-media-va-driver-non-free suggests no packages.


Reply to: