sna: Added AYUV format support for textured and sprite video adapters

Graphics / X.Org / xf86-video-intel - Stanislav Lisovskiy [intel.com] - 13 November 2018 20:38 EST

v2: Renamed DRM_FORMAT_XYUV to DRM_FORMAT_XYUV8888. Added comment about AYUV byte ordering in Gstreamer.

v3: Removed sna_composite_op flags related change to the separate patch.

v4: Fixed review comments, done code refactoring

v5: Fixed following review comments:
- Fixed comment in shader code for ayuv kernel.
- Fixed naming to VIDEO_AYUV_BT601/BT709 for ayuv kernels.- Removed duplicate gen9_kernel parameter, left from previous patches- Added colorspace handling for new AYUV kernel- Fixed naming of sna_copy_packed_data_ayuv to sna_copy_ayuv_data- Started using standard bswap_32 function for byte swapping in sna_copy_ayuv_data- Removed redundant code in sna_copy_ayuv_data so that it looks more neat- Fixed XVIMAGE_AYUV structure initialization to contain proper byte sequence for GST- Fixed bogus comment about subsampling for DRM_FORMAT_XYUV8888- Fixed AYUV advertisement for all platforms
- Removed unnecessary RGB888 declaration.

v6:- Fixed surface format not to use alpha as supposed- Now doing byte swapping always during copy- Changed hack, required for GST to work to be at one place- Fixed invalid sampling values for XVIMAGE_AYUV
- Fixed sprite format checking order and images_ayuv definition.

v7:- Removed reverse_bytes bool parameter, now swapping bytes for XYUV unconditionally both for textured and sprite modes.

v8:- Added gen9_images structure, in order to expose AYUV format to proper platforms.

746ab3bb sna: Added AYUV format support for textured and sprite video adapters.
src/render_program/Makefile.am | 2 +
src/render_program/exa_wm_src_sample_argb_ayuv.g8a | 76 ++++++++++++++++++++++
src/render_program/exa_wm_src_sample_argb_ayuv.g8b | 8 +++
src/sna/gen9_render.c | 23 +++++++
src/sna/sna_render.h | 3 +
src/sna/sna_video.c | 72 +++++++++++++++++++-
src/sna/sna_video.h | 19 ++++++
src/sna/sna_video_sprite.c | 20 +++++-
src/sna/sna_video_textured.c | 21 +++++-
9 files changed, 239 insertions(+), 5 deletions(-)

Upstream: cgit.freedesktop.org


  • Share