diff options
author | Hyungwon Hwang <human.hwang@samsung.com> | 2014-09-02 16:58:30 +0900 |
---|---|---|
committer | Joonyoung Shim <jy0922.shim@samsung.com> | 2017-02-15 13:37:33 +0900 |
commit | b5f30d7f911b817c0cf0ee4770f46cc2c1e4a72f (patch) | |
tree | af69e93c3133789f5915fd2528c1595da44ffc51 | |
parent | aa00f335dbd9ec30ab47dfb21b5d22bb7e478682 (diff) | |
download | libdrm-b5f30d7f911b817c0cf0ee4770f46cc2c1e4a72f.tar.gz libdrm-b5f30d7f911b817c0cf0ee4770f46cc2c1e4a72f.tar.bz2 libdrm-b5f30d7f911b817c0cf0ee4770f46cc2c1e4a72f.zip |
libdrm/exynos: add support for IPP blending, dithering, and colorfill
This patch adds the fields for IPP bleding, dithering, and colorfill.
Change-Id: Ib9cd7c7b22ee9f1017d1db3ae34d39dea342ffec
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
-rw-r--r-- | exynos/exynos_drm.h | 66 |
1 files changed, 63 insertions, 3 deletions
diff --git a/exynos/exynos_drm.h b/exynos/exynos_drm.h index 258a2f51..3e43663e 100644 --- a/exynos/exynos_drm.h +++ b/exynos/exynos_drm.h @@ -177,6 +177,57 @@ enum drm_exynos_planer { EXYNOS_DRM_PLANAR_MAX, }; +/* define of blending operation */ +enum drm_exynos_ipp_blending { + IPP_BLENDING_NO, + /* [0, 0] */ + IPP_BLENDING_CLR, + /* [Sa, Sc] */ + IPP_BLENDING_SRC, + /* [Da, Dc] */ + IPP_BLENDING_DST, + /* [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] */ + IPP_BLENDING_SRC_OVER, + /* [Sa + (1 - Sa)*Da, Rc = Dc + (1 - Da)*Sc] */ + IPP_BLENDING_DST_OVER, + /* [Sa * Da, Sc * Da] */ + IPP_BLENDING_SRC_IN, + /* [Sa * Da, Sa * Dc] */ + IPP_BLENDING_DST_IN, + /* [Sa * (1 - Da), Sc * (1 - Da)] */ + IPP_BLENDING_SRC_OUT, + /* [Da * (1 - Sa), Dc * (1 - Sa)] */ + IPP_BLENDING_DST_OUT, + /* [Da, Sc * Da + (1 - Sa) * Dc] */ + IPP_BLENDING_SRC_ATOP, + /* [Sa, Sc * (1 - Da) + Sa * Dc ] */ + IPP_BLENDING_DST_ATOP, + /* [-(Sa * Da), Sc * (1 - Da) + (1 - Sa) * Dc] */ + IPP_BLENDING_XOR, + /* [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)] */ + IPP_BLENDING_DARKEN, + /* [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] */ + IPP_BLENDING_LIGHTEN, + /* [Sa * Da, Sc * Dc] */ + IPP_BLENDING_MULTIPLY, + /* [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] */ + IPP_BLENDING_SCREEN, + /* Saturate(S + D) */ + IPP_BLENDING_ADD, + /* Max */ + IPP_BLENDING_MAX, +}; + +/* define of dithering operation */ +enum drm_exynos_ipp_dithering { + IPP_DITHERING_NO, + IPP_DITHERING_8BIT, + IPP_DITHERING_6BIT, + IPP_DITHERING_5BIT, + IPP_DITHERING_4BIT, + IPP_DITHERING_MAX, +}; + /** * A structure for ipp supported property list. * @@ -189,6 +240,9 @@ enum drm_exynos_planer { * @csc: flag of csc supporting. * @crop: flag of crop supporting. * @scale: flag of scale supporting. + * @blending: flag of blending supporting. + * @dithering: flag of dithering supporting. + * @colorfill: flag of colorfill supporting. * @refresh_min: min hz of refresh. * @refresh_max: max hz of refresh. * @crop_min: crop min resolution. @@ -206,9 +260,11 @@ struct drm_exynos_ipp_prop_list { __u32 csc; __u32 crop; __u32 scale; + __u32 blending; + __u32 dithering; + __u32 colorfill; __u32 refresh_min; __u32 refresh_max; - __u32 reserved; struct drm_exynos_sz crop_min; struct drm_exynos_sz crop_max; struct drm_exynos_sz scale_min; @@ -258,7 +314,9 @@ enum drm_exynos_color_range { * @prop_id: id of property. * @refresh_rate: refresh rate. * @range: dynamic range for csc. - * @pad: just padding to be 64-bit aligned. + * @blending: blending opeation config. + * @dithering: dithering opeation config. + * @color_fill: color fill value. */ struct drm_exynos_ipp_property { struct drm_exynos_ipp_config config[EXYNOS_DRM_OPS_MAX]; @@ -267,7 +325,9 @@ struct drm_exynos_ipp_property { __u32 prop_id; __u32 refresh_rate; __u32 range; - __u32 pad; + __u32 blending; + __u32 dithering; + __u32 color_fill; }; /* definition of buffer */ |