summarylogtreecommitdiffstats
path: root/0059-gbm-add-GBM_FORMAT_AXBXGXRX106106106106.patch
blob: cb6701ef1ca3d7b5a803760a19b117bcd9b7e5d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
From 53f7a63e94f9e80d0e34e5d01adf50c59c9b0024 Mon Sep 17 00:00:00 2001
From: Brendan King <Brendan.King@imgtec.com>
Date: Mon, 18 Jul 2022 13:00:31 +0100
Subject: [PATCH] gbm: add GBM_FORMAT_AXBXGXRX106106106106

---
 include/GL/internal/dri_interface.h | 1 +
 src/egl/drivers/dri2/egl_dri2.c     | 1 +
 src/gbm/backends/dri/gbm_dri.c      | 5 +++++
 src/gbm/main/gbm.c                  | 1 +
 src/gbm/main/gbm.h                  | 6 ++++++
 5 files changed, 14 insertions(+)

diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index 618eba9..d04f601 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -1272,6 +1272,7 @@ struct __DRIdri2ExtensionRec {
 #define __DRI_IMAGE_FORMAT_YV12         0x101e
 #define __DRI_IMAGE_FORMAT_YVYU         0x101f
 #define __DRI_IMAGE_FORMAT_VYUY         0x1020
+#define __DRI_IMAGE_FORMAT_AXBXGXRX106106106106 0x1021
 
 #define __DRI_IMAGE_USE_SHARE		0x0001
 #define __DRI_IMAGE_USE_SCANOUT		0x0002
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 152da09..d803142 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -2865,6 +2865,7 @@ dri2_num_fourcc_format_planes(EGLint format)
    case DRM_FORMAT_BGRA1010102:
    case DRM_FORMAT_XBGR16161616F:
    case DRM_FORMAT_ABGR16161616F:
+   case DRM_FORMAT_AXBXGXRX106106106106:
    case DRM_FORMAT_YUYV:
    case DRM_FORMAT_YVYU:
    case DRM_FORMAT_UYVY:
diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
index 2b60a46..824495f 100644
--- a/src/gbm/backends/dri/gbm_dri.c
+++ b/src/gbm/backends/dri/gbm_dri.c
@@ -642,6 +642,11 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
      { 0, 10, 20, 30 },
      { 10, 10, 10, 2 },
    },
+   {
+     GBM_FORMAT_AXBXGXRX106106106106, __DRI_IMAGE_FORMAT_AXBXGXRX106106106106,
+     { 6, 22, 38, 54 },
+     { 10, 10, 10, 10 },
+   },
    {
      GBM_FORMAT_XBGR16161616F, __DRI_IMAGE_FORMAT_XBGR16161616F,
      { 0, 16, 32, -1 },
diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
index 3ce816f..e39d065 100644
--- a/src/gbm/main/gbm.c
+++ b/src/gbm/main/gbm.c
@@ -275,6 +275,7 @@ gbm_bo_get_bpp(struct gbm_bo *bo)
          return 32;
       case GBM_FORMAT_XBGR16161616F:
       case GBM_FORMAT_ABGR16161616F:
+      case GBM_FORMAT_AXBXGXRX106106106106:
          return 64;
    }
 }
diff --git a/src/gbm/main/gbm.h b/src/gbm/main/gbm.h
index bd4185b..f3ab799 100644
--- a/src/gbm/main/gbm.h
+++ b/src/gbm/main/gbm.h
@@ -166,6 +166,12 @@ enum gbm_bo_format {
 
 #define GBM_FORMAT_ABGR16161616F __gbm_fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
 
+/*
+ * RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits
+ * of unused padding per component:
+ */
+#define GBM_FORMAT_AXBXGXRX106106106106 __gbm_fourcc_code('A', 'B', '1', '0') /* [63:0] A:x:B:x:G:x:R:x 10:6:10:6:10:6:10:6 little endian */
+
 /* packed YCbCr */
 #define GBM_FORMAT_YUYV		__gbm_fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
 #define GBM_FORMAT_YVYU		__gbm_fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */