Re: [PATCH 2/3] drm/format-helper: Add drm_fb_xrgb8888_to_xrgb2101010_dstclip()

From: Hector Martin
Date: Mon Nov 22 2021 - 05:05:29 EST


On 22/11/2021 18.52, Pekka Paalanen wrote:
On Wed, 17 Nov 2021 23:58:28 +0900
Hector Martin <marcan@xxxxxxxxx> wrote:

Add XRGB8888 emulation support for devices that can only do XRGB2101010.

This is chiefly useful for simpledrm on Apple devices where the
bootloader-provided framebuffer is 10-bit, which already works fine with
simplefb. This is required to make simpledrm support this too.

Signed-off-by: Hector Martin <marcan@xxxxxxxxx>
---
drivers/gpu/drm/drm_format_helper.c | 64 +++++++++++++++++++++++++++++
include/drm/drm_format_helper.h | 4 ++
2 files changed, 68 insertions(+)

Hi Hector,

I'm curious, since the bootloader seems to always set up a 10-bit mode,
is there a reason for it that you can guess? Is the monitor in WCG or
even HDR mode?

My guess is that Apple prefer to use 10-bit framebuffers for seamless handover with their graphics stack, which presumably uses 10-bit framebuffers these days. It seems to be unconditional; I've never seen anything but 10 bits across all Apple devices, both with the internal panels on laptops and with bog standard external displays on the Mac Mini via HDMI. HDR is not necessary, even very dumb capture cards and old screens get a 10-bit framebufer in memory.

The only time I see an 8-bit framebuffer is with *no* monitor connected on the Mini, in which case you get an 8-bit 640x1136 dummy framebuffer (that's the iPhone 5 screen resolution... :-) )

--
Hector Martin (marcan@xxxxxxxxx)
Public Key: https://mrcn.st/pub