Hi all, This patch series fixes some endianness issues in libdrm. It has been tested on ARAnyM using a work-in-progress Atari DRM driver. After this, the smpte and tiles modetest patterns and the pwetty markers are rendered correctly using the XR24, RG16, and RG16BE formats on big-endian systems. Changes compared to v4[1]: - Add Reviewed-by, Changes compared to v3[2]: - Replace explicit #ifdef checks by a define set by meson, - Use new HAVE_BIG_ENDIAN symbol, Changes compared to v2[3]: - Increase indentation after definition of cpu_to_*() macros, - Update for suffix change from "be" to "_BE", cfr. commit ffb9375a505700ad ("xf86drm: handle DRM_FORMAT_BIG_ENDIAN in drmGetFormatName()"), - Replace hardcoded numbers in code by sizeof(), - Wrap byteswap_buffer{16,32}() implementation inside #if HAVE_CAIRO to avoid defined-but-not-used compiler warnings, - Drop "modetest: Fix printing of big-endian fourcc values", as it is no longer needed since commit ffb9375a505700ad ("xf86drm: handle DRM_FORMAT_BIG_ENDIAN in drmGetFormatName()"). Changes compared to v1[4]: - Consider arm, aarch64, microblaze, s390, and sh in endianness checks, - Add Acked-by, - Add swap32() intermediate helper, - Fix 16 bpp formats on big-endian, - Add support for big-endian XRGB1555 and RGB565, - Fix printing of big-endian fourcc values, - Fix pwetty on big-endian. I have also updated the merge request at [5]. Thanks for your comments! [1] "[PATCH libdrm v4 0/9] Big-endian fixes" https://lists.freedesktop.org/archives/dri-devel/2023-October/428234.html [2] "[PATCH libdrm v3 0/9] Big-endian fixes https://lore.kernel.org/r/cover.1698217235.git.geert@xxxxxxxxxxxxxx [3] "[PATCH libdrm v2 00/10] Big-endian fixes" https://lore.kernel.org/r/cover.1657302103.git.geert@xxxxxxxxxxxxxx/#t [4] "[PATCH RFC libdrm 0/2] Big-endian fixes" https://lore.kernel.org/r/cover.1646684158.git.geert@xxxxxxxxxxxxxx [5] https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/331 Geert Uytterhoeven (9): intel: determine target endianness using meson util: fix 32 bpp patterns on big-endian util: fix 16 bpp patterns on big-endian util: add missing big-endian RGB16 frame buffer formats modetest: add support for parsing big-endian formats util: add test pattern support for big-endian XRGB1555/RGB565 util: fix pwetty on big-endian util: add pwetty support for big-endian RGB565 modetest: add support for big-endian XRGB1555/RGB565 intel/uthash.h | 4 +- meson.build | 5 ++ tests/modetest/buffers.c | 4 ++ tests/modetest/modetest.c | 15 +++-- tests/util/format.c | 3 + tests/util/pattern.c | 117 +++++++++++++++++++++++++++++++------- 6 files changed, 120 insertions(+), 28 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