Bug 97116

Summary: mpv needs VAAPI_DISABLE_INTERLACE=1 for swdecode -vo vaapi since st/va: add conversion for yv12 to nv12in putimage v2
Product: Mesa Reporter: Andy Furniss <adf.lists>
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Default DRI bug account <dri-devel>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Andy Furniss 2016-07-28 17:02:33 UTC
since 

mesa commit	34f46348438b29e20d06cca312616cfba8ee05f6

For putimage call, if image format is yv12 (or IYUV with U V field swap) and
surface format is nv12, then we need to convert yv12 to nv12 and then copy the
converted data from image to surface. We can't use the existing logic where
surface is destroyed and re-created with yv12 format.
 
v2 (chk): fix some compiler warnings and commit message 

mpv --vo=vaapi will produce corrupted output without the new env
VAAPI_DISABLE_INTERLACE=1

This only applies to s/w decode as hwdec uses nv12 and avoids the conversion.

Gstreamer vaapisink is not affected as (from what little debugging I did) it doesn't seem to use interlaced buffers doing putimage.
Comment 1 Andy Furniss 2017-01-07 12:40:04 UTC
Old bug - mpv --vo=vaapi is unstable with or without the env on current head and may well have only lucked into apparently working with VAAPI_DISABLE_INTERLACE=1
all along.

Will open new bug soon(ish).

Reverting this commit from head and running with VAAPI_DISABLE_INTERLACE=0
seems stable.
Comment 2 Andy Furniss 2017-11-18 20:37:08 UTC
env doesn't exist any more.

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.