gbm: Add GBM_FORMAT_ARGB1555 support
[mesa.git] / src / gbm / backends / dri / gbm_dri.c
index 0d088bd62b629b543ee15f80ecff881c6077df4e..35ec3a1c3a2a1911cf4043229cf7aa7a26f0c091 100644 (file)
@@ -552,6 +552,10 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
      GBM_FORMAT_GR88, __DRI_IMAGE_FORMAT_GR88,
      { 0x000000ff, 0x0000ff00, 0x00000000, 0x00000000 },
    },
+   {
+     GBM_FORMAT_ARGB1555, __DRI_IMAGE_FORMAT_ARGB1555,
+     { 0x00007c00, 0x000003e0, 0x0000001f, 0x00008000 },
+   },
    {
      GBM_FORMAT_RGB565, __DRI_IMAGE_FORMAT_RGB565,
      { 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000 },
@@ -562,7 +566,7 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
    },
    {
      GBM_FORMAT_ARGB8888, __DRI_IMAGE_FORMAT_ARGB8888,
-     { 0x00ff0000, 0x0000ff00, 0x000000ff, 0x000000ff },
+     { 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
    },
    {
      GBM_FORMAT_XBGR8888, __DRI_IMAGE_FORMAT_XBGR8888,
@@ -570,7 +574,7 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
    },
    {
      GBM_FORMAT_ABGR8888, __DRI_IMAGE_FORMAT_ABGR8888,
-     { 0x000000ff, 0x0000ff00, 0x00ff0000, 0x000000ff },
+     { 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 },
    },
    {
      GBM_FORMAT_XRGB2101010, __DRI_IMAGE_FORMAT_XRGB2101010,
@@ -580,6 +584,14 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
      GBM_FORMAT_ARGB2101010, __DRI_IMAGE_FORMAT_ARGB2101010,
      { 0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000 },
    },
+   {
+     GBM_FORMAT_XBGR2101010, __DRI_IMAGE_FORMAT_XBGR2101010,
+     { 0x000003ff, 0x000ffc00, 0x3ff00000, 0x00000000 },
+   },
+   {
+     GBM_FORMAT_ABGR2101010, __DRI_IMAGE_FORMAT_ABGR2101010,
+     { 0x000003ff, 0x000ffc00, 0x3ff00000, 0xc0000000 },
+   },
 };
 
 /* The two GBM_BO_FORMAT_[XA]RGB8888 formats alias the GBM_FORMAT_*
@@ -849,6 +861,7 @@ gbm_dri_bo_get_offset(struct gbm_bo *_bo, int plane)
       dri->image->queryImage(image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
       dri->image->destroyImage(image);
    } else {
+      assert(plane == 0);
       dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_OFFSET, &offset);
    }