-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path0059-gbm-add-GBM_FORMAT_AXBXGXRX106106106106.patch
82 lines (77 loc) · 3.15 KB
/
0059-gbm-add-GBM_FORMAT_AXBXGXRX106106106106.patch
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 <[email protected]>
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 */