intel / intel/media-driver

VAAPI VP9 Encode on Rocket Lake Crashes - GPU HANG

Open
#1,265 27 comments 0 reactions 2 assignees Claimed by @cchunbo View on GitHub
Encode VP9
Dominant language
C
Stars
1.2k
Forks
383
Avg merge
8d 18h
Merged PRs (30d)
4

Description

- 11th Gen Intel(R) Core(TM) i7-11700K @ 3.60GHz
- 00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:4c8a] (rev 04)
- Linux videncode0 5.10.0-8-amd64

GPU hangs when HW VP9 encoding using ffmpeg + vp9_vaapi:
```
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input.mp4 -c:v vp9_vaapi -b:v 2M -maxrate 2M output.mp4
```

dmesg shows:
```
[15607.512076] i915 0000:00:02.0: [drm] Resetting vcs0 for preemption time out
[15607.512175] i915 0000:00:02.0: [drm] ffmpeg[125068] context reset due to GPU hang
[15607.514726] i915 0000:00:02.0: [drm] GPU HANG: ecode 12:4:28ffff7d, in ffmpeg [125068]
```

The current packages are installed:

- intel-media-va-driver-non-free:amd64 21.1.1+ds1-1
- intel-gpu-tools 1.25-2.1
- intel-media-va-driver-non-free:amd64 21.1.1+ds1-1
- libdrm-intel1:amd64 2.4.104-1
- intel-microcode 3.20210608.2

LIBVA_TRACE shows:

```
[34956.839240][ctx none]=========vaMapBuffer ret = VA_STATUS_ERROR_ENCODING_ERROR, internal encoding error
```

```
ls /dev/dri
by-path card0 renderD128
```

```
cat vainfo.log
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: Open new log file /tmp/libva_trace.log.004941.thd-0x0001fb72 for the thread 0x0001fb72
libva info: LIBVA_TRACE is on, save log into /tmp/libva_trace.log.004941.thd-0x0001fb72
libva info: VA-API version 1.10.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.10 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI
VAProfileHEVCMain : VAEntrypointEncSliceLP
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointEncSliceLP
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSliceLP
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointEncSliceLP
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointEncSliceLP
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointEncSliceLP
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileHEVCMain12 : VAEntrypointEncSlice
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointEncSlice
VAProfileHEVCMain422_12 : VAEntrypointVLD
VAProfileHEVCMain422_12 : VAEntrypointEncSlice
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
VAProfileHEVCSccMain444_10 : VAEntrypointVLD
VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP
```

I have tried kernels 5.10 - 5.14, tried compiling media-driver from source, tried gstreamer and also intel_qsv instead of vaapi. All encoding works for H.264 and H.265 - only VP9 fails. 1 out of 5 times it works successfully, the remaining times it begins and randomly fails.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.