[Mesa-dev] [PATCH 1/2] dri: Add __DRI_IMAGE_FORMAT_SABGR8
Tapani Pälli
tapani.palli at intel.com
Tue Apr 3 09:48:54 UTC 2018
ping ..
(currently Android-IA sets EGL_KHR_gl_colorspace to false because these
are missing)
On 03/19/2018 01:41 PM, Tapani Pälli wrote:
> Add format definition and required plumbing to create images.
> Note that there is no match to drm_fourcc definition, just like
> with existing _DRI_IMAGE_FOURCC_SARGB8888.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
> include/GL/internal/dri_interface.h | 2 ++
> src/loader/loader_dri3_helper.c | 2 ++
> src/mesa/drivers/dri/common/dri_util.c | 4 ++++
> src/mesa/drivers/dri/common/utils.c | 1 +
> 4 files changed, 9 insertions(+)
>
> diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
> index 4f4795c7ae..319a1fe4f9 100644
> --- a/include/GL/internal/dri_interface.h
> +++ b/include/GL/internal/dri_interface.h
> @@ -1253,6 +1253,7 @@ struct __DRIdri2ExtensionRec {
> #define __DRI_IMAGE_FORMAT_YUYV 0x100f
> #define __DRI_IMAGE_FORMAT_XBGR2101010 0x1010
> #define __DRI_IMAGE_FORMAT_ABGR2101010 0x1011
> +#define __DRI_IMAGE_FORMAT_SABGR8 0x1012
>
> #define __DRI_IMAGE_USE_SHARE 0x0001
> #define __DRI_IMAGE_USE_SCANOUT 0x0002
> @@ -1289,6 +1290,7 @@ struct __DRIdri2ExtensionRec {
> #define __DRI_IMAGE_FOURCC_ABGR8888 0x34324241
> #define __DRI_IMAGE_FOURCC_XBGR8888 0x34324258
> #define __DRI_IMAGE_FOURCC_SARGB8888 0x83324258
> +#define __DRI_IMAGE_FOURCC_SABGR8888 0x84324258
> #define __DRI_IMAGE_FOURCC_ARGB2101010 0x30335241
> #define __DRI_IMAGE_FOURCC_XRGB2101010 0x30335258
> #define __DRI_IMAGE_FOURCC_ABGR2101010 0x30334241
> diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
> index c1d94c3c21..f8cdd9c642 100644
> --- a/src/loader/loader_dri3_helper.c
> +++ b/src/loader/loader_dri3_helper.c
> @@ -1022,6 +1022,7 @@ dri3_cpp_for_format(uint32_t format) {
> case __DRI_IMAGE_FORMAT_XBGR2101010:
> case __DRI_IMAGE_FORMAT_ABGR2101010:
> case __DRI_IMAGE_FORMAT_SARGB8:
> + case __DRI_IMAGE_FORMAT_SABGR8:
> return 4;
> case __DRI_IMAGE_FORMAT_NONE:
> default:
> @@ -1041,6 +1042,7 @@ image_format_to_fourcc(int format)
> /* Convert from __DRI_IMAGE_FORMAT to __DRI_IMAGE_FOURCC (sigh) */
> switch (format) {
> case __DRI_IMAGE_FORMAT_SARGB8: return __DRI_IMAGE_FOURCC_SARGB8888;
> + case __DRI_IMAGE_FORMAT_SABGR8: return __DRI_IMAGE_FOURCC_SABGR8888;
> case __DRI_IMAGE_FORMAT_RGB565: return __DRI_IMAGE_FOURCC_RGB565;
> case __DRI_IMAGE_FORMAT_XRGB8888: return __DRI_IMAGE_FOURCC_XRGB8888;
> case __DRI_IMAGE_FORMAT_ARGB8888: return __DRI_IMAGE_FOURCC_ARGB8888;
> diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
> index a34f38d611..214be4a3fc 100644
> --- a/src/mesa/drivers/dri/common/dri_util.c
> +++ b/src/mesa/drivers/dri/common/dri_util.c
> @@ -892,6 +892,8 @@ driGLFormatToImageFormat(mesa_format format)
> return __DRI_IMAGE_FORMAT_GR88;
> case MESA_FORMAT_NONE:
> return __DRI_IMAGE_FORMAT_NONE;
> + case MESA_FORMAT_R8G8B8A8_SRGB:
> + return __DRI_IMAGE_FORMAT_SABGR8;
> case MESA_FORMAT_B8G8R8A8_SRGB:
> return __DRI_IMAGE_FORMAT_SARGB8;
> default:
> @@ -929,6 +931,8 @@ driImageFormatToGLFormat(uint32_t image_format)
> return MESA_FORMAT_R16G16_UNORM;
> case __DRI_IMAGE_FORMAT_SARGB8:
> return MESA_FORMAT_B8G8R8A8_SRGB;
> + case __DRI_IMAGE_FORMAT_SABGR8:
> + return MESA_FORMAT_R8G8B8A8_SRGB;
> case __DRI_IMAGE_FORMAT_NONE:
> return MESA_FORMAT_NONE;
> default:
> diff --git a/src/mesa/drivers/dri/common/utils.c b/src/mesa/drivers/dri/common/utils.c
> index 1cffd3ad08..fc5e2d19f3 100644
> --- a/src/mesa/drivers/dri/common/utils.c
> +++ b/src/mesa/drivers/dri/common/utils.c
> @@ -208,6 +208,7 @@ driCreateConfigs(mesa_format format,
> masks = masks_table[2];
> break;
> case MESA_FORMAT_R8G8B8A8_UNORM:
> + case MESA_FORMAT_R8G8B8A8_SRGB:
> masks = masks_table[5];
> break;
> case MESA_FORMAT_R8G8B8X8_UNORM:
>
More information about the mesa-dev
mailing list