No VA-API VAEntrypointVideoProc on Kaby Lake with the (free) intel-media-driver

Bug #2019917 reported by James Henstridge
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
GStreamer
Fix Released
Unknown
gstreamer (Ubuntu)
Fix Committed
Medium
Unassigned
intel-media-driver (Ubuntu)
Won't Fix
Undecided
Unassigned
intel-media-driver-non-free (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

On my laptop with an Intel Core i7-7500U CPU (Kaby Lake), the iHD VA-API driver does not report VAEntrypointVideoProc support in the output of vainfo:

    libva info: VA-API version 1.17.0
    libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_17
    libva info: va_openDriver() returns 0
    vainfo: VA-API version: 1.17 (libva 2.12.0)
    vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.2 ()
    vainfo: Supported profile and entrypoints
          VAProfileMPEG2Simple : VAEntrypointVLD
          VAProfileMPEG2Main : VAEntrypointVLD
          VAProfileH264Main : VAEntrypointVLD
          VAProfileH264Main : VAEntrypointEncSliceLP
          VAProfileH264High : VAEntrypointVLD
          VAProfileH264High : VAEntrypointEncSliceLP
          VAProfileJPEGBaseline : VAEntrypointVLD
          VAProfileJPEGBaseline : VAEntrypointEncPicture
          VAProfileH264ConstrainedBaseline: VAEntrypointVLD
          VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
          VAProfileVP8Version0_3 : VAEntrypointVLD
          VAProfileHEVCMain : VAEntrypointVLD
          VAProfileHEVCMain10 : VAEntrypointVLD
          VAProfileVP9Profile0 : VAEntrypointVLD
          VAProfileVP9Profile2 : VAEntrypointVLD

Normally I'd expect to also see a line like:

          VAProfileNone : VAEntrypointVideoProc

Among other things, this causes Totem to malfunction with the error "GStreamer element vaapipostproc is required to play the file, but it is not installed". Presumably it assumes that if hardware accelerated decoders are available, so is post processing.

This seems like it might possibly be related to bug 2019831, but that was about problems in Jammy and the version it suggests should fix the problem is older than what's shipped in Lunar. Either they reintroduced the problems, or it wasn't really fixed.

ProblemType: Bug
DistroRelease: Ubuntu 23.04
Package: intel-media-va-driver 23.1.2+dfsg1-1
ProcVersionSignature: Ubuntu 6.2.0-20.20-generic 6.2.6
Uname: Linux 6.2.0-20-generic x86_64
ApportVersion: 2.26.1-0ubuntu2
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: ubuntu:GNOME
Date: Wed May 17 12:39:40 2023
InstallationDate: Installed on 2017-09-02 (2082 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Alpha amd64 (20170901)
SourcePackage: intel-media-driver
UpgradeStatus: Upgraded to lunar on 2023-03-29 (49 days ago)

Revision history for this message
James Henstridge (jamesh) wrote :
summary: - No VA-API VAEntrypointVideoProc on Lunar
+ No VA-API VAEntrypointVideoProc on Kaby Lake
Revision history for this message
James Henstridge (jamesh) wrote : Re: No VA-API VAEntrypointVideoProc on Kaby Lake

It looks like this isn't related to the other bug report. I hadn't fully understood the table at the bottom of this readme file:

https://github.com/intel/media-driver/blob/master/README.md

Looks like my CPU is one year too old to support post-processing with the free shaders.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Ah right, that's confusing. KBLx only has one Yes per cell whereas you'd need two Yes's:
https://github.com/intel/media-driver/blob/master/README.md#video-processing-features

Last time I used the processing features it was on Haswell and Kaby Lake. That was using the old driver model though:

  sudo apt install i965-va-driver

So in conclusion, post processing isn't always available. It's therefore a gstreamer bug for depending on it. Reassigning....

affects: intel-media-driver (Ubuntu) → gstreamer-vaapi (Ubuntu)
Changed in intel-media-driver (Ubuntu):
status: New → Won't Fix
Changed in intel-media-driver-non-free (Ubuntu):
status: New → Invalid
summary: - No VA-API VAEntrypointVideoProc on Kaby Lake
+ No VA-API VAEntrypointVideoProc on Kaby Lake with the (free) intel-
+ media-driver
Revision history for this message
James Henstridge (jamesh) wrote :

The use of vaapipostproc in Totem appears to be through vaapidecodebin:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gstreamer-vaapi/gst/vaapi/gstvaapidecodebin.c#L326-329

The error path there calls post_missing_element_message(), which would trigger Totem's message. It seems like an odd choice though, since the two elements come from the same plugin: if it is missing, there's no other plugins you could install to fix it.

The creation of the postprocessing element is controlled by the "disable-vpp" GObject property, and defaults to true if the GST_VAAPI_DISABLE_VPP environment variable is set:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gstreamer-vaapi/gst/vaapi/gstvaapidecodebin.c#L406

And running "GST_VAAPI_DISABLE_VPP=1 totem filename.mp4" does seem to work.

I also gave the i965 driver a try with "LIBVA_DRIVER_NAME=i965 totem filename.mp4", which played the video but with corrupted video (maybe tiling related?). i965 with DISABLE_VPP=1 plays fine though, so is not necessarily a better choice for this generation of hardware.

On the GStreamer side, the best option would probably be to stop posting the missing element message and just disable VPP automatically if it can't create the element. I'll look at putting together an upstream bug for that.

Changed in gstreamer:
status: Unknown → New
Changed in gstreamer-vaapi (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Changed in gstreamer:
status: New → Fix Released
affects: gstreamer-vaapi (Ubuntu) → gstreamer (Ubuntu)
Changed in gstreamer (Ubuntu):
status: Triaged → Fix Committed
tags: added: fixed-in-gstreamer-1.23 fixed-upstream
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.