VAAPI vaDeriveImage returns VA_STATUS_ERROR_OPERATION_FAILED
Submitted by rej..@..er.com
Assigned to Default DRI bug account
Link to original bug (#111622)
Description
Created attachment 145311 Sample C code to reproduce error
Operating System: archlinux 5.2.13-arch1-1-ARCH GPU: Radeon RX 570 Mesa version: 19.1.6 Libva version: 2.5.0
vaDeriveImage() VAAPI returns VA_STATUS_ERROR_OPERATION_FAILED when radeonsi_drv_video.so used as driver. It runs successfully with i965_drv_video.so on intel integrated GPU.
https://bugs.freedesktop.org/show_bug.cgi?id=110850 related to this.
I found by debugging that error return occurs in the vlVaDeriveImage function. //vlVaDeriveImage function is in src/gallium/state_trackers/va/image.c if (surf->buffer->interlaced) return VA_STATUS_ERROR_OPERATION_FAILED;
Is there a problem with interlaced video in Mesa? I don't know much about computer graphics and how Mesa works, but Intel driver has no problem about it, so I think it's a bug.
Sample C code attached to reproduce error. This code was written by referring to the VLC's VAAPI source code. Compile command: gcc -o va va.c -lX11 -lva -lva-x11 -g
Result on Radeon GPU system: libva info: VA-API version 1.5.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/radeonsi_drv_video.so libva info: Found init function __vaDriverInit_1_5 libva info: va_openDriver() returns 0 vendor string : Mesa Gallium driver 19.1.6 for Radeon RX 570 Series (POLARIS10, DRM 3.32.0, 5.2.13-arch1-1-ARCH, LLVM 8.0.1) vaDeriveImage error : operation failed
Result on Intel GPU system: libva info: VA-API version 1.5.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_3 libva info: va_openDriver() returns 0 vendor string : Intel i965 driver for Intel(R) Broadwell - 2.3.0
vaDeriveImage : success (no error)
Attachment 145311, "Sample C code to reproduce error":
va.c
Version: 19.1