Bug 111622

Summary: VAAPI vaDeriveImage returns VA_STATUS_ERROR_OPERATION_FAILED
Product: Mesa Reporter: reject5514
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED MOVED QA Contact: Default DRI bug account <dri-devel>
Severity: normal    
Priority: not set    
Version: 19.1   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Sample C code to reproduce error

Description reject5514 2019-09-10 05:07:10 UTC
Created attachment 145311 [details]
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)
Comment 1 GitLab Migration User 2019-09-25 18:50:45 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1428.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.