Skip to content

Commit 0884fb5

Browse files
committed
modesetting: Split chosing gbm format into drmmode_gbm_format_for_depth
Signed-off-by: stefan11111 <[email protected]>
1 parent 17ceba3 commit 0884fb5

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

hw/xfree86/drivers/video/modesetting/drmmode_display.c

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,27 @@ drmmode_bo_import(drmmode_ptr drmmode, drmmode_bo *bo,
11271127
drmmode_bo_get_handle(bo), fb_id);
11281128
}
11291129

1130+
#ifdef GLAMOR_HAS_GBM
1131+
/* formats taken from glamor/glamor_egl.c */
1132+
static inline uint32_t
1133+
drmmode_gbm_format_for_depth(int depth)
1134+
{
1135+
switch (depth) {
1136+
case 8:
1137+
return GBM_FORMAT_R8;
1138+
case 15:
1139+
return GBM_FORMAT_ARGB1555;
1140+
case 16:
1141+
return GBM_FORMAT_RGB565;
1142+
case 30:
1143+
/* XXX Is this format right? https://github.com/X11Libre/xserver/pull/1396/files#r2523698616 XXX */
1144+
return GBM_FORMAT_ARGB2101010;
1145+
default:
1146+
return GBM_FORMAT_ARGB8888;
1147+
}
1148+
}
1149+
#endif
1150+
11301151
static Bool
11311152
drmmode_create_front_bo(drmmode_ptr drmmode, drmmode_bo *bo,
11321153
unsigned width, unsigned height, unsigned bpp)
@@ -1136,22 +1157,7 @@ drmmode_create_front_bo(drmmode_ptr drmmode, drmmode_bo *bo,
11361157

11371158
#ifdef GLAMOR_HAS_GBM
11381159
if (drmmode->glamor) {
1139-
uint32_t format;
1140-
1141-
switch (drmmode->scrn->depth) {
1142-
case 15:
1143-
format = GBM_FORMAT_ARGB1555;
1144-
break;
1145-
case 16:
1146-
format = GBM_FORMAT_RGB565;
1147-
break;
1148-
case 30:
1149-
format = GBM_FORMAT_ARGB2101010;
1150-
break;
1151-
default:
1152-
format = GBM_FORMAT_ARGB8888;
1153-
break;
1154-
}
1160+
uint32_t format = drmmode_gbm_format_for_depth(drmmode->scrn->depth);
11551161

11561162
#ifdef GBM_BO_WITH_MODIFIERS
11571163
uint32_t num_modifiers;

0 commit comments

Comments
 (0)