gbm/dri: Add RGBA masks to GBM format table
authorDaniel Stone <daniels@collabora.com>
Tue, 6 Feb 2018 17:38:37 +0000 (17:38 +0000)
committerDaniel Stone <daniels@collabora.com>
Fri, 9 Feb 2018 16:17:16 +0000 (16:17 +0000)
Eventually, we can replace the visuals list inside GBM EGL driver with
this one.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gbm/backends/dri/gbm_dri.c

index fd5fb4b91c4181f059a91ee968c6fc3aef653ea7..7e2423e935f117d447f336e873a884b56d523a85 100644 (file)
@@ -546,16 +546,44 @@ dri_screen_create_sw(struct gbm_dri_device *dri)
 static const struct {
    uint32_t gbm_format;
    int dri_image_format;
+   uint32_t rgba_masks[4];
 } gbm_to_dri_image_formats[] = {
-   { GBM_FORMAT_R8,          __DRI_IMAGE_FORMAT_R8          },
-   { GBM_FORMAT_GR88,        __DRI_IMAGE_FORMAT_GR88        },
-   { GBM_FORMAT_RGB565,      __DRI_IMAGE_FORMAT_RGB565      },
-   { GBM_FORMAT_XRGB8888,    __DRI_IMAGE_FORMAT_XRGB8888    },
-   { GBM_FORMAT_ARGB8888,    __DRI_IMAGE_FORMAT_ARGB8888    },
-   { GBM_FORMAT_XBGR8888,    __DRI_IMAGE_FORMAT_XBGR8888    },
-   { GBM_FORMAT_ABGR8888,    __DRI_IMAGE_FORMAT_ABGR8888    },
-   { GBM_FORMAT_XRGB2101010, __DRI_IMAGE_FORMAT_XRGB2101010 },
-   { GBM_FORMAT_ARGB2101010, __DRI_IMAGE_FORMAT_ARGB2101010 },
+   {
+     GBM_FORMAT_R8, __DRI_IMAGE_FORMAT_R8,
+     { 0x000000ff, 0x00000000, 0x00000000, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_GR88, __DRI_IMAGE_FORMAT_GR88,
+     { 0x000000ff, 0x0000ff00, 0x00000000, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_RGB565, __DRI_IMAGE_FORMAT_RGB565,
+     { 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_XRGB8888, __DRI_IMAGE_FORMAT_XRGB8888,
+     { 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_ARGB8888, __DRI_IMAGE_FORMAT_ARGB8888,
+     { 0x00ff0000, 0x0000ff00, 0x000000ff, 0x000000ff },
+   },
+   {
+     GBM_FORMAT_XBGR8888, __DRI_IMAGE_FORMAT_XBGR8888,
+     { 0x000000ff, 0x0000ff00, 0x00ff0000, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_ABGR8888, __DRI_IMAGE_FORMAT_ABGR8888,
+     { 0x000000ff, 0x0000ff00, 0x00ff0000, 0x000000ff },
+   },
+   {
+     GBM_FORMAT_XRGB2101010, __DRI_IMAGE_FORMAT_XRGB2101010,
+     { 0x3ff00000, 0x000ffc00, 0x000003ff, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_ARGB2101010, __DRI_IMAGE_FORMAT_ARGB2101010,
+     { 0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000 },
+   },
 };
 
 /* The two GBM_BO_FORMAT_[XA]RGB8888 formats alias the GBM_FORMAT_*