summaryrefslogtreecommitdiffstats
path: root/src/gbm
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2018-02-06 17:38:37 +0000
committerDaniel Stone <daniels@collabora.com>2018-02-09 16:17:16 +0000
commit2ed344645d65f379f819ffff6596b1b77534e28c (patch)
tree44725addad57553b9f5b1362aa75e6eda9c81767 /src/gbm
parent4732094cff302a10c167e0cb23851c19fccddbe0 (diff)
gbm/dri: Add RGBA masks to GBM format table
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>
Diffstat (limited to 'src/gbm')
-rw-r--r--src/gbm/backends/dri/gbm_dri.c46
1 files changed, 37 insertions, 9 deletions
diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
index fd5fb4b91c4..7e2423e935f 100644
--- a/src/gbm/backends/dri/gbm_dri.c
+++ b/src/gbm/backends/dri/gbm_dri.c
@@ -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_*