From ad165f7daf94dec5e7c91984bfffe122a1d2b8d7 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 29 Nov 2022 09:47:08 +0100 Subject: [PATCH] render/vulkan: explain format mapping with DRM --- render/vulkan/pixel_format.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/render/vulkan/pixel_format.c b/render/vulkan/pixel_format.c index 30a44b91..911cd217 100644 --- a/render/vulkan/pixel_format.c +++ b/render/vulkan/pixel_format.c @@ -5,8 +5,11 @@ #include #include "render/vulkan.h" -// Reversed endianess of shm and vulkan format names static const struct wlr_vk_format formats[] = { + // Vulkan non-packed 8-bits-per-channel formats have an inverted channel + // order compared to the DRM formats, because DRM format channel order + // is little-endian while Vulkan format channel order is in memory byte + // order. { .drm = DRM_FORMAT_ARGB8888, .vk = VK_FORMAT_B8G8R8A8_SRGB, @@ -27,6 +30,9 @@ static const struct wlr_vk_format formats[] = { .vk = VK_FORMAT_R8G8B8A8_SRGB, .is_srgb = true, }, + + // Vulkan packed formats have the same channel order as DRM formats on + // little endian systems. #if WLR_LITTLE_ENDIAN { .drm = DRM_FORMAT_RGB565,