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 <code@mstoeckl.com>
This commit is contained in:
Manuel Stoeckl 2025-04-17 18:30:11 -04:00
parent 6137c8c213
commit 02bfe1f430

View file

@ -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.
</description>
<arg name="format" type="uint" enum="format" summary="buffer pixel format"/>
</event>