aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2019-02-08 10:16:13 +0100
committerGerd Hoffmann <kraxel@redhat.com>2019-02-08 10:16:13 +0100
commita51f16a108c083eacc216b1c7f4e67c7245189ae (patch)
tree0f9512fa20a4eaa66ac5fb86e2756e6d96900431
parent5edb7a1d011ad65d2dea03cc18e596cc477cd397 (diff)
downloaddrminfo-a51f16a108c083eacc216b1c7f4e67c7245189ae.tar.gz
order legacy last, skip tests without cairo support
-rw-r--r--drmtest.c5
-rw-r--r--drmtools.c76
2 files changed, 42 insertions, 39 deletions
diff --git a/drmtest.c b/drmtest.c
index 89556be..3093ba1 100644
--- a/drmtest.c
+++ b/drmtest.c
@@ -227,7 +227,10 @@ int main(int argc, char **argv)
drm_init_dev(card, output, modename, false);
if (!fmt) {
+ /* find first supported in list */
for (i = 0; i < fmtcnt; i++) {
+ if (fmts[i].cairo == CAIRO_FORMAT_INVALID)
+ continue;
if (!drm_probe_format(fd, &fmts[i]))
continue;
fmt = &fmts[i];
@@ -235,7 +238,7 @@ int main(int argc, char **argv)
}
if (!fmt) {
drm_fini_dev();
- fprintf(stderr, "Huh? No working drm format found.\n");
+ fprintf(stderr, "No drm format (with cairo support) found.\n");
exit(1);
}
}
diff --git a/drmtools.c b/drmtools.c
index 46bdb34..968eee3 100644
--- a/drmtools.c
+++ b/drmtools.c
@@ -39,44 +39,6 @@ const struct fbformat fmts[] = {
/*
* -----------------------------------------------------------------
- * legacy formats, native endian (DRM_IOCTL_MODE_ADDFB)
- */
- {
- .name = "24",
- .fields = "x:R:G:B",
- .bits = "8:8:8:8",
- .bpp = 32,
- .depth = 24,
- .cairo = CAIRO_FORMAT_RGB24,
- .pixman = PIXMAN_x8r8g8b8,
- },{
- .name = "30",
- .fields = "x:R:G:B",
- .bits = "2:10:10:10",
- .bpp = 32,
- .depth = 30,
- .cairo = CAIRO_FORMAT_RGB30,
- .pixman = PIXMAN_x2b10g10r10,
- },{
- .name = "15",
- .fields = "x:R:G:B",
- .bits = "1:5:5:5",
- .bpp = 16,
- .depth = 15,
- .cairo = CAIRO_FORMAT_INVALID,
- .pixman = PIXMAN_x1r5g5b5,
- },{
- .name = "16",
- .fields = "R:G:B",
- .bits = "5:6:5",
- .bpp = 16,
- .depth = 16,
- .cairo = CAIRO_FORMAT_RGB16_565,
- .pixman = PIXMAN_r5g6b5,
- },
-
- /*
- * -----------------------------------------------------------------
* fourcc formats, little endian (DRM_IOCTL_MODE_ADDFB2)
*/
@@ -442,6 +404,44 @@ const struct fbformat fmts[] = {
.cairo = CAIRO_FORMAT_INVALID,
.pixman = 0,
},
+
+ /*
+ * -----------------------------------------------------------------
+ * legacy formats, native endian (DRM_IOCTL_MODE_ADDFB)
+ */
+ {
+ .name = "24",
+ .fields = "x:R:G:B",
+ .bits = "8:8:8:8",
+ .bpp = 32,
+ .depth = 24,
+ .cairo = CAIRO_FORMAT_RGB24,
+ .pixman = PIXMAN_x8r8g8b8,
+ },{
+ .name = "30",
+ .fields = "x:R:G:B",
+ .bits = "2:10:10:10",
+ .bpp = 32,
+ .depth = 30,
+ .cairo = CAIRO_FORMAT_RGB30,
+ .pixman = PIXMAN_x2b10g10r10,
+ },{
+ .name = "15",
+ .fields = "x:R:G:B",
+ .bits = "1:5:5:5",
+ .bpp = 16,
+ .depth = 15,
+ .cairo = CAIRO_FORMAT_INVALID,
+ .pixman = PIXMAN_x1r5g5b5,
+ },{
+ .name = "16",
+ .fields = "R:G:B",
+ .bits = "5:6:5",
+ .bpp = 16,
+ .depth = 16,
+ .cairo = CAIRO_FORMAT_RGB16_565,
+ .pixman = PIXMAN_r5g6b5,
+ },
};
const uint32_t fmtcnt = sizeof(fmts)/sizeof(fmts[0]);