dri: add __DRI_IMAGE_FORMAT_SXRGB8
authorTapani Pälli <tapani.palli@intel.com>
Fri, 15 Nov 2019 07:12:15 +0000 (09:12 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 17 Dec 2019 09:28:25 +0000 (09:28 +0000)
Add format definition and required plumbing to create images.

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3077>

include/GL/internal/dri_interface.h
src/loader/loader_dri3_helper.c
src/mesa/drivers/dri/common/dri_util.c

index f19ec5168a52a1726b0aa2729c9233f5097b98c8..09782c8baeb84296432614d3f63604312e234870 100644 (file)
@@ -1343,6 +1343,7 @@ struct __DRIdri2ExtensionRec {
 #define __DRI_IMAGE_FORMAT_UYVY         0x1013
 #define __DRI_IMAGE_FORMAT_XBGR16161616F 0x1014
 #define __DRI_IMAGE_FORMAT_ABGR16161616F 0x1015
 #define __DRI_IMAGE_FORMAT_UYVY         0x1013
 #define __DRI_IMAGE_FORMAT_XBGR16161616F 0x1014
 #define __DRI_IMAGE_FORMAT_ABGR16161616F 0x1015
+#define __DRI_IMAGE_FORMAT_SXRGB8       0x1016
 
 #define __DRI_IMAGE_USE_SHARE          0x0001
 #define __DRI_IMAGE_USE_SCANOUT                0x0002
 
 #define __DRI_IMAGE_USE_SHARE          0x0001
 #define __DRI_IMAGE_USE_SCANOUT                0x0002
@@ -1370,6 +1371,7 @@ struct __DRIdri2ExtensionRec {
 
 #define __DRI_IMAGE_FOURCC_SARGB8888   0x83324258
 #define __DRI_IMAGE_FOURCC_SABGR8888   0x84324258
 
 #define __DRI_IMAGE_FOURCC_SARGB8888   0x83324258
 #define __DRI_IMAGE_FOURCC_SABGR8888   0x84324258
+#define __DRI_IMAGE_FOURCC_SXRGB8888   0x85324258
 
 /**
  * Queryable on images created by createImageFromNames.
 
 /**
  * Queryable on images created by createImageFromNames.
index be33575e1a8f59dcdafdc470590824df33bd4b48..45e1c102ed152692e5b78c85584164dd88d25242 100644 (file)
@@ -1119,6 +1119,7 @@ dri3_cpp_for_format(uint32_t format) {
    case  __DRI_IMAGE_FORMAT_ABGR2101010:
    case  __DRI_IMAGE_FORMAT_SARGB8:
    case  __DRI_IMAGE_FORMAT_SABGR8:
    case  __DRI_IMAGE_FORMAT_ABGR2101010:
    case  __DRI_IMAGE_FORMAT_SARGB8:
    case  __DRI_IMAGE_FORMAT_SABGR8:
+   case  __DRI_IMAGE_FORMAT_SXRGB8:
       return 4;
    case __DRI_IMAGE_FORMAT_XBGR16161616F:
    case __DRI_IMAGE_FORMAT_ABGR16161616F:
       return 4;
    case __DRI_IMAGE_FORMAT_XBGR16161616F:
    case __DRI_IMAGE_FORMAT_ABGR16161616F:
@@ -1172,6 +1173,7 @@ image_format_to_fourcc(int format)
    switch (format) {
    case __DRI_IMAGE_FORMAT_SARGB8: return __DRI_IMAGE_FOURCC_SARGB8888;
    case __DRI_IMAGE_FORMAT_SABGR8: return __DRI_IMAGE_FOURCC_SABGR8888;
    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_SXRGB8: return __DRI_IMAGE_FOURCC_SXRGB8888;
    case __DRI_IMAGE_FORMAT_RGB565: return DRM_FORMAT_RGB565;
    case __DRI_IMAGE_FORMAT_XRGB8888: return DRM_FORMAT_XRGB8888;
    case __DRI_IMAGE_FORMAT_ARGB8888: return DRM_FORMAT_ARGB8888;
    case __DRI_IMAGE_FORMAT_RGB565: return DRM_FORMAT_RGB565;
    case __DRI_IMAGE_FORMAT_XRGB8888: return DRM_FORMAT_XRGB8888;
    case __DRI_IMAGE_FORMAT_ARGB8888: return DRM_FORMAT_ARGB8888;
index 3a03e4d0b0161fbbad4994268d4e26f78d9bf48e..e3ea4d6cfffdbbf2b46cd14f49e9ccd0d4ef3d5e 100644 (file)
@@ -950,6 +950,10 @@ static const struct {
       .image_format = __DRI_IMAGE_FORMAT_SARGB8,
       .mesa_format  =        MESA_FORMAT_B8G8R8A8_SRGB,
    },
       .image_format = __DRI_IMAGE_FORMAT_SARGB8,
       .mesa_format  =        MESA_FORMAT_B8G8R8A8_SRGB,
    },
+   {
+      .image_format = __DRI_IMAGE_FORMAT_SXRGB8,
+      .mesa_format  =        MESA_FORMAT_B8G8R8X8_SRGB,
+   },
    {
       .image_format = __DRI_IMAGE_FORMAT_R16,
       .mesa_format  =        MESA_FORMAT_R_UNORM16,
    {
       .image_format = __DRI_IMAGE_FORMAT_R16,
       .mesa_format  =        MESA_FORMAT_R_UNORM16,