aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorLouis Chauvet <louis.chauvet@bootlin.com>2025-04-15 15:55:32 +0200
committerLouis Chauvet <louis.chauvet@bootlin.com>2025-05-28 16:19:13 +0200
commitc76e2c78bc2a35ca04eead275f14b6d23ae9a89f (patch)
treec6e8e4fb61738d16bf9fc493680cd05cb8f45306 /drivers/gpu/drm
parentdrm/amdgpu: update trace format to match gpu_scheduler_trace (diff)
downloadlinux-c76e2c78bc2a35ca04eead275f14b6d23ae9a89f.tar.gz
linux-c76e2c78bc2a35ca04eead275f14b6d23ae9a89f.zip
drm/vkms: Document pixel_argb_u16
The meaning of each member of the structure was not specified. To clarify the format used and the reason behind those choices, add some documentation. Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com> Link: https://lore.kernel.org/r/20250415-yuv-v18-1-f2918f71ec4b@bootlin.com Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/vkms/vkms_drv.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
index a74a7fc3a056..3b7b46dd026f 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.h
+++ b/drivers/gpu/drm/vkms/vkms_drv.h
@@ -45,6 +45,23 @@ struct vkms_frame_info {
unsigned int rotation;
};
+/**
+ * struct pixel_argb_u16 - Internal representation of a pixel color.
+ * @a: Alpha component value, stored in 16 bits, without padding, using
+ * machine endianness
+ * @r: Red component value, stored in 16 bits, without padding, using
+ * machine endianness
+ * @g: Green component value, stored in 16 bits, without padding, using
+ * machine endianness
+ * @b: Blue component value, stored in 16 bits, without padding, using
+ * machine endianness
+ *
+ * The goal of this structure is to keep enough precision to ensure
+ * correct composition results in VKMS and simplifying color
+ * manipulation by splitting each component into its own field.
+ * Caution: the byte ordering of this structure is machine-dependent,
+ * you can't cast it directly to AR48 or xR48.
+ */
struct pixel_argb_u16 {
u16 a, r, g, b;
};