Skip to content

VAAPI no longer working with Vulkan/Wayland on Intel UHD

Hi, Sorry I'm not currently sure if this is a Vulkan, Wayland, Mesa, Intel, libplacebo or mpv bug but thought I would try here first.

Basically VAAPI (without copy) is no longer working on my laptop with Intel UHD graphics (Lenovo X1Y4 as apparently DMA-BUF import is not available.

[vo/gpu/vaapi-egl] VAAPI Vulkan interop requires support for dma_buf import in Vulkan.

Basically all software versions are from git head -

libplacebo: 30efeff0 Mesa: 688dda5 ffmpeg: ba6e2a2d mpv: a74b6619

Otherwise up to date FC33 install. intel-media-driver is installed for VAAPI.

Relevant log:

[vo/gpu] Probing for best GPU context.
[vo/gpu/vulkan] Initializing GPU context 'waylandvk'
[vo/gpu/vulkan/libplacebo] Initialized libplacebo v101
[vo/gpu/vulkan/libplacebo] Creating vulkan instance with extensions:
[vo/gpu/vulkan/libplacebo]     VK_KHR_get_physical_device_properties2
[vo/gpu/vulkan/libplacebo]     VK_KHR_surface
[vo/gpu/vulkan/libplacebo]     VK_KHR_external_memory_capabilities
[vo/gpu/vulkan/libplacebo]     VK_KHR_external_semaphore_capabilities
[vo/gpu/vulkan/libplacebo]     VK_KHR_surface
[vo/gpu/vulkan/libplacebo]     VK_KHR_wayland_surface
[vo/gpu/wayland] Registered for protocol wl_shm
[vo/gpu/wayland] Registered for protocol wl_compositor
[vo/gpu/wayland] Registered for protocol wl_data_device_manager
[vo/gpu/wayland] Registered for protocol zwp_idle_inhibit_manager_v1
[vo/gpu/wayland] Registered for protocol xdg_wm_base
[vo/gpu/wayland] Registered for protocol zxdg_decoration_manager_v1
[vo/gpu/wayland] Registered for protocol wp_presentation
[vo/gpu/wayland] Registered for protocol wl_seat
[vo/gpu/wayland] Registered for protocol wl_output
[vo/gpu/wayland] Enabling server decorations
[vo/gpu/vulkan/libplacebo] Probing for vulkan devices:
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

[vo/gpu/vulkan/libplacebo]     GPU 0: Intel(R) UHD Graphics 620 (WHL GT2) (integrated)
[vo/gpu/vulkan/libplacebo]            uuid: E4:63:14:29:40:C6:6A:16:87:41:F6:B7:9B:2E:6F:40
[vo/gpu/vulkan/libplacebo] Vulkan device properties:
[vo/gpu/vulkan/libplacebo]     Device Name: Intel(R) UHD Graphics 620 (WHL GT2)
[vo/gpu/vulkan/libplacebo]     Device ID: 8086:3ea0
[vo/gpu/vulkan/libplacebo]     Device UUID: E4:63:14:29:40:C6:6A:16:87:41:F6:B7:9B:2E:6F:40
[vo/gpu/vulkan/libplacebo]     Driver version: 84291683
[vo/gpu/vulkan/libplacebo]     API version: 1.2.145
[vo/gpu/vulkan/libplacebo] Queue families supported by device:
[vo/gpu/vulkan/libplacebo]     QF 0: flags 0x7 num 1
[vo/gpu/vulkan/libplacebo] Using graphics queue (QF 0)
[vo/gpu/vulkan/libplacebo] Creating vulkan device with extensions:
[vo/gpu/vulkan/libplacebo]     VK_KHR_swapchain
[vo/gpu/vulkan/libplacebo]     VK_KHR_swapchain
[vo/gpu/vulkan/libplacebo]     VK_KHR_push_descriptor
[vo/gpu/vulkan/libplacebo]     VK_KHR_external_memory_fd
[vo/gpu/vulkan/libplacebo]     VK_EXT_external_memory_dma_buf
[vo/gpu/vulkan/libplacebo]     VK_EXT_external_memory_host
[vo/gpu/vulkan/libplacebo]     VK_KHR_external_semaphore_fd
[vo/gpu/vulkan/libplacebo]     VK_EXT_pci_bus_info
[vo/gpu/vulkan/libplacebo] Initializing SPIR-V compiler 'shaderc'
[vo/gpu/vulkan/libplacebo] Memory heaps supported by device:
[vo/gpu/vulkan/libplacebo]     heap 0: flags 0x1 size 12313098240
[vo/gpu/vulkan/libplacebo] Memory types supported by device:
[vo/gpu/vulkan/libplacebo]     type 0: flags 0xf heap 0
[vo/gpu/vulkan/libplacebo] GPU information:
[vo/gpu/vulkan/libplacebo]     GLSL version: 450 (vulkan)
[vo/gpu/vulkan/libplacebo]     Capabilities: 0x39
[vo/gpu/vulkan/libplacebo]     Limits:
[vo/gpu/vulkan/libplacebo]       max_tex_1d_dim:            16384
[vo/gpu/vulkan/libplacebo]       max_tex_2d_dim:            16384
[vo/gpu/vulkan/libplacebo]       max_tex_3d_dim:            2048
[vo/gpu/vulkan/libplacebo]       max_pushc_size:            128
[vo/gpu/vulkan/libplacebo]       max_buf_size:              18446744073709551615
[vo/gpu/vulkan/libplacebo]       max_ubo_size:              134217728
[vo/gpu/vulkan/libplacebo]       max_ssbo_size:             1073741824
[vo/gpu/vulkan/libplacebo]       max_buffer_texels:         134217728
[vo/gpu/vulkan/libplacebo]       min_gather_offset:         -32
[vo/gpu/vulkan/libplacebo]       max_gather_offset:         31
[vo/gpu/vulkan/libplacebo]       subgroup_size:             32
[vo/gpu/vulkan/libplacebo]       max_shmem_size:            65536
[vo/gpu/vulkan/libplacebo]       max_group_threads:         1792
[vo/gpu/vulkan/libplacebo]       max_group_size[0]:         1792
[vo/gpu/vulkan/libplacebo]       max_group_size[1]:         1792
[vo/gpu/vulkan/libplacebo]       max_group_size[2]:         1792
[vo/gpu/vulkan/libplacebo]       max_dispatch[0]:           65535
[vo/gpu/vulkan/libplacebo]       max_dispatch[1]:           65535
[vo/gpu/vulkan/libplacebo]       max_dispatch[2]:           65535
[vo/gpu/vulkan/libplacebo]       align_tex_xfer_stride:     128
[vo/gpu/vulkan/libplacebo]       align_tex_xfer_offset:     128
[vo/gpu/vulkan/libplacebo]     External API interop:
[vo/gpu/vulkan/libplacebo]       UUID: E4:63:14:29:40:C6:6A:16:87:41:F6:B7:9B:2E:6F:40
[vo/gpu/vulkan/libplacebo]       PCI: 0000:00:02:0
[vo/gpu/vulkan/libplacebo]       buf export caps: 0x9
[vo/gpu/vulkan/libplacebo]       buf import caps: 0x19
[vo/gpu/vulkan/libplacebo]       tex export caps: 0x1
[vo/gpu/vulkan/libplacebo]       tex import caps: 0x1
[vo/gpu/vulkan/libplacebo]       sync export caps: 0x1
[vo/gpu/vulkan/libplacebo]       sync import caps: 0x0
[vo/gpu] Testing FBO format rgba16f
[vo/gpu/vulkan/libplacebo] Allocating 1048576 memory of type 0xf (id 0) in heap 0
[vo/gpu] Using FBO format rgba16f.
[vo/gpu/wayland] Registered output Unknown 0x07C8 (0x24):
[vo/gpu/wayland] 	x: 0px, y: 0px
[vo/gpu/wayland] 	w: 3840px (310mm), h: 2160px (170mm)
[vo/gpu/wayland] 	scale: 2
[vo/gpu/wayland] 	Hz: 60.000000
[vo/gpu] Resize: 0x0
[vd] Container reported FPS: 23.976024
[vd] Codec list:
[vd]     vp9 - Google VP9
[vd]     vp9_v4l2m2m (vp9) - V4L2 mem2mem VP9 decoder wrapper
[vd] Opening decoder vp9
[vd] Looking at hwdec vp9-vaapi...
[vo/gpu] Loading hwdec driver 'vaapi-egl'
[vo/gpu/vaapi-egl] VAAPI Vulkan interop requires support for dma_buf import in Vulkan.
[vo/gpu/vaapi-egl] VAAPI hwdec only works with OpenGL or Vulkan backends.
[vo/gpu] Loading failed.
[vo/gpu] Loading hwdec driver 'drmprime-drm'
[vo/gpu/drmprime-drm] Failed to retrieve DRM fd from native display.
[vo/gpu] Loading failed.
[vd] Could not create device.
[vd] Looking at hwdec vp9-vaapi-copy...
[vaapi] Initialized VAAPI: version 1.9
[vd] Trying hardware decoding via vp9-vaapi-copy.
[vd] Selected codec: vp9 (Google VP9)

vainfo:

libva info: VA-API version 1.9.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_9
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.9 (libva 2.9.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.3.0 ()
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
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD