From 02bfe1f43068b0bfde1b9341d29cc4588d744bad Mon Sep 17 00:00:00 2001 From: Manuel Stoeckl Date: Thu, 17 Apr 2025 18:30:11 -0400 Subject: [PATCH] protocol: elaborate on drm_fourcc.h and wl_shm.format codes Wayland clients should not assume the format list will not grow, or assume the format descriptions in the Wayland protocol are complete. (The latter fact is clear for descriptionless enum entries like XRGB8888_A8; but, for example, the full XRGB16161616F format description explicitly requires IEEE 754 binary16 floats instead of bfloat16 or ARM's alternative half precision variant.) Signed-off-by: Manuel Stoeckl --- protocol/wayland.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 1af51d36..3b2601c1 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -304,7 +304,8 @@ The drm format codes match the macros defined in drm_fourcc.h, except argb8888 and xrgb8888. The formats actually supported by the compositor - will be reported by the format event. + will be reported by the format event. See drm_fourcc.h for more detailed + format descriptions. For all wl_shm formats and unless specified in another protocol extension, pre-multiplied alpha is used for pixel values. @@ -454,6 +455,10 @@ Informs the client about a valid pixel format that can be used for buffers. Known formats include argb8888 and xrgb8888. + + Extensions to drm_fourcc.h (or the format enum) do not require + increasing the wl_shm version; as a result, clients may receive format + codes which were not in the list at the time the client was made.