No `va` features on Haswell on Fedora 41

Hi

I’m trying to get va working on a Haswell GPU on Fedora 41.

On Fedora 40, decode was working, but not GTK graphics offloading. On Fedora 41 not even decode is working.

vainfo does list profiles/entrypoints:

user@dell-tower ~ % vainfo
Trying display: wayland
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/lib64/dri-nonfree/i965_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/i965_drv_video.so
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
error: failed to resolve wl_drm_interface(): /lib64/libEGL_mesa.so.0: undefined symbol: wl_drm_interface
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Server - 2.4.0.pre1 (2.4.0.pre1)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD

But gst-inspect-1.0 va list 0 features:

user@dell-tower ~ % rm .cache/gstreamer-1.0 -r; GST_DEBUG=va*:4 gst-inspect-1.0 va 
0:00:00.108006837 696255 0x560e034c9620 INFO               vadisplay gstvadisplay_drm.c:155:gst_va_display_drm_create_va_display:<vadisplaydrm0> DRM render node with kernel driver i915
0:00:00.108061401 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: VA-API version 1.22.0
0:00:00.108073539 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib64/dri-nonfree/iHD_drv_video.so
0:00:00.108103153 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
0:00:00.108153872 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib64/dri/iHD_drv_video.so
0:00:00.108203430 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: va_openDriver() returns -1
0:00:00.108210041 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib64/dri-nonfree/i965_drv_video.so
0:00:00.108265611 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib64/dri-freeworld/i965_drv_video.so
0:00:00.108288019 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Trying to open /usr/lib64/dri/i965_drv_video.so
0:00:00.108613834 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: Found init function __vaDriverInit_1_22
0:00:00.110434223 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:353:_va_info:<vadisplaydrm0> VA info: va_openDriver() returns 0
0:00:00.110443440 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:405:gst_va_display_initialize:<vadisplaydrm0> VA-API version 1.22
0:00:00.110447754 696255 0x560e034c9620 INFO               vadisplay gstvadisplay.c:176:_gst_va_display_filter_driver: VA-API driver vendor: Intel i965 driver for Intel(R) Haswell Server - 2.4.0.pre1 (2.4.0.pre1)
0:00:00.110455011 696255 0x560e034c9620 INFO                      va gstvadevice_linux.c:104:gst_va_device_find_devices: Found VA-API device: /dev/dri/renderD128
0:00:00.110567695 696255 0x560e034c9620 WARN                      va plugin.c:329:plugin_register_elements: vaQueryConfigEntrypoints: the requested VAProfile is not supported
Plugin Details:
  Name                     va
  Description              VA-API codecs plugin
  Filename                 /usr/lib64/gstreamer-1.0/libgstva.so
  Version                  1.24.10
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/va/
  Source release date      2024-12-03
  Binary package           Fedora GStreamer-plugins-bad package
  Origin URL               http://download.fedoraproject.org


  0 features:

Is there anything I can do to get this working?

Thanks in advance

I guess you need to fix this error above first. You have Mismatch between EGL and Wayland libraries:

Thank you for looking at it.

So that error was fixed by this patch, which causes that error to be treated as a warning. The version of intel-vaapi-driver that I’m using on fedora has that patch.

I have tried on Arch linux, and after recompiling libva-intel-driver with that patch, it works, so I guess it is a bug in a Fedora package. I’m going to try investigate futher.

intel vaapi driver has been replaced by va-api driver. You can forget vaapi.

You are mixing up the gstreamer vaapi module with VA-API.

You are correct that gstreamer va is replacing gstreamer vaapi.

Both of these gstreamer modules use libva (an implementation of VA-API), and libva needs drivers for your hardware.

For intel gpu’s for haswell and older, you need the driver that you need is intel-vaapi-driver.

1 Like