From 51523ab9fa21ef3ee02dfa9e5995eab654cfe43a Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 30 May 2017 15:07:13 +0200 Subject: [PATCH] st/dri: allow direct YUYV import Push this format to the pipe driver unchanged. Signed-off-by: Lucas Stach Reviewed-by: Philipp Zabel --- include/GL/internal/dri_interface.h | 1 + src/gallium/state_trackers/dri/dri2.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index b47947380c4..5b6cc8d70e4 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1226,6 +1226,7 @@ struct __DRIdri2ExtensionRec { #define __DRI_IMAGE_FORMAT_ARGB1555 0x100c #define __DRI_IMAGE_FORMAT_R16 0x100d #define __DRI_IMAGE_FORMAT_GR1616 0x100e +#define __DRI_IMAGE_FORMAT_YUYV 0x100f #define __DRI_IMAGE_USE_SHARE 0x0001 #define __DRI_IMAGE_USE_SCANOUT 0x0002 diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c index d5ae9cbd69b..3388b17da53 100644 --- a/src/gallium/state_trackers/dri/dri2.c +++ b/src/gallium/state_trackers/dri/dri2.c @@ -121,6 +121,10 @@ static int convert_fourcc(int format, int *dri_components_p) format = __DRI_IMAGE_FORMAT_GR1616; dri_components = __DRI_IMAGE_COMPONENTS_RG; break; + case __DRI_IMAGE_FOURCC_YUYV: + format = __DRI_IMAGE_FORMAT_YUYV; + dri_components = __DRI_IMAGE_COMPONENTS_Y_XUXV; + break; /* * For multi-planar YUV formats, we return the format of the first * plane only. Since there is only one caller which supports multi- @@ -210,6 +214,9 @@ static enum pipe_format dri2_format_to_pipe_format (int format) case __DRI_IMAGE_FORMAT_GR1616: pf = PIPE_FORMAT_R16G16_UNORM; break; + case __DRI_IMAGE_FORMAT_YUYV: + pf = PIPE_FORMAT_YUYV; + break; default: pf = PIPE_FORMAT_NONE; break; -- 2.30.2