Hi all, A long outstanding issue with the DRM subsystem has been the lack of support for low-color displays, as used typically on older desktop systems, and on small embedded displays. This patch series adds support for color-indexed frame buffer formats with 2, 4, and 16 colors. It has been tested on ARAnyM using a work-in-progress Atari DRM driver. Changes compared to v3[1]: - Rename util_smpte_index_gamma() to util_smpte_fill_lut(), and its first parameter from size to ncolors, - Move smpte_color_lut[] down, - Kill FILL_COLOR() macro, - Add and use EXPAND_COLOR() macro, - Replace FILL_COLOR() use by bw_color_lut[], - Replace FILL_COLOR() use by pentile_color_lut[], - Add missing C[12] to oneline-summary, - Do not remove memset() of full lut, else some entries may stay uninitialized. Changes compared to v2[2]: - Add Acked-by, - Add Wikipedia link, - Dropped "[RFC] drm_fourcc: Add DRM_FORMAT_C[124]", as these were added in commit 329eebcf32793361 ("drm_fourcc: sync drm_fourcc with latest drm-next kernel") in libdrm-2.4.115. Changes compared to v1[3]: - SMPTE color LUT accuracy, - Factor out smpte color LUT, - Restructure patches, - Improve descriptions. - Store number of colors for indexed formats, - Add SMPTE pattern support for the C1 and C2 formats. I have also updated the merge request at [4]. Thanks for your comments! [1] https://lore.kernel.org/r/cover.1690537375.git.geert@xxxxxxxxxxxxxx [2] https://lore.kernel.org/r/cover.1657302034.git.geert@xxxxxxxxxxxxxx/ [3] https://lore.kernel.org/r/cover.1646683737.git.geert@xxxxxxxxxxxxxx/ [4] https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/314 Geert Uytterhoeven (9): util: improve SMPTE color LUT accuracy util: factor out and optimize C8 SMPTE color LUT util: add support for DRM_FORMAT_C[124] util: store number of colors for indexed formats util: add SMPTE pattern support for C4 format util: add SMPTE pattern support for C1 format util: add SMPTE pattern support for C2 format modetest: add support for DRM_FORMAT_C[124] modetest: add SMPTE pattern support for C[124] formats tests/modetest/buffers.c | 15 ++ tests/modetest/modetest.c | 9 +- tests/util/format.c | 5 +- tests/util/format.h | 1 + tests/util/pattern.c | 430 ++++++++++++++++++++++++++++++++++---- tests/util/pattern.h | 2 +- 6 files changed, 415 insertions(+), 47 deletions(-) -- 2.34.1 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds