diff options
author | Johnson Lin <[email protected]> | 2017-06-16 13:51:34 +0800 |
---|---|---|
committer | Lionel Landwerlin <[email protected]> | 2017-06-30 10:16:26 +0100 |
commit | 165e704719b85cb43156f517803dd9a1f0187519 (patch) | |
tree | 568ade99104d7ff74607c4237a5384d815accfc8 /src/mesa/drivers/dri/i915/intel_screen.c | |
parent | 8ff4be44b727ccd4452f426391c8a05b264e30dc (diff) |
i965/i915: Add UYVY as the supported format
Trigger the correct sampler options for it. Similar with YUYV
Reviewed-by: Kristian H. Kristensen <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i915/intel_screen.c')
-rw-r--r-- | src/mesa/drivers/dri/i915/intel_screen.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/i915/intel_screen.c b/src/mesa/drivers/dri/i915/intel_screen.c index fe8ece78fca..686cbf5ec12 100644 --- a/src/mesa/drivers/dri/i915/intel_screen.c +++ b/src/mesa/drivers/dri/i915/intel_screen.c @@ -227,17 +227,20 @@ static struct intel_image_format intel_image_formats[] = { { { 0, 0, 0, __DRI_IMAGE_FORMAT_R8, 1 }, { 1, 1, 0, __DRI_IMAGE_FORMAT_GR88, 2 } } }, - /* For YUYV buffers, we set up two overlapping DRI images and treat - * them as planar buffers in the compositors. Plane 0 is GR88 and - * samples YU or YV pairs and places Y into the R component, while - * plane 1 is ARGB and samples YUYV clusters and places pairs and - * places U into the G component and V into A. This lets the - * texture sampler interpolate the Y components correctly when - * sampling from plane 0, and interpolate U and V correctly when - * sampling from plane 1. */ + /* For YUYV and UYVY buffers, we set up two overlapping DRI images + * and treat them as planar buffers in the compositors. + * Plane 0 is GR88 and samples YU or YV pairs and places Y into + * the R component, while plane 1 is ARGB/ABGR and samples YUYV/UYVY + * clusters and places pairs and places U into the G component and + * V into A. This lets the texture sampler interpolate the Y + * components correctly when sampling from plane 0, and interpolate + * U and V correctly when sampling from plane 1. */ { __DRI_IMAGE_FOURCC_YUYV, __DRI_IMAGE_COMPONENTS_Y_XUXV, 2, { { 0, 0, 0, __DRI_IMAGE_FORMAT_GR88, 2 }, - { 0, 1, 0, __DRI_IMAGE_FORMAT_ARGB8888, 4 } } } + { 0, 1, 0, __DRI_IMAGE_FORMAT_ARGB8888, 4 } } }, + { __DRI_IMAGE_FOURCC_UYVY, __DRI_IMAGE_COMPONENTS_Y_UXVX, 2, + { { 0, 0, 0, __DRI_IMAGE_FORMAT_GR88, 2 }, + { 0, 1, 0, __DRI_IMAGE_FORMAT_ABGR8888, 4 } } } }; static __DRIimage * |