Hi Am 17.01.22 um 15:47 schrieb Helge Deller:
On 1/17/22 15:10, Geert Uytterhoeven wrote: [...]Using an XRGB32 intermediate would kill the user experience on old machines, due to both increased memory usage and copy overhead.Personally, I'd much appreciate if userspace would support more of the native formats and not rely on XRGB32.Supporting monochrome, 16 colors, and 256 colors would be nice.From this conversation it seems DRM completely lacks backwards compatibility, including a missing 2D bitblt copy. Isn't that all what's needed and then migrating existing drivers would be easy ?
What exactly do you mean by 'backwards compatibility'? The driver API is different, of course. My conversion helpers can provide a starting point to move fbdev code into DRM drivers.
For fbdev 2d-bitblt ioctls, you can add them to DRM drivers and set up DRM's fbdev emulation accordingly. Some DRM drivers do/did this. To my knowledge, so far there's not been a use case where that provides a benefit over simple memcpy. For fast 2d blitting from userspace, you should read Daniel's comment at [1]. tl;dr: a generic solution is non-trivial.
Best regards Thomas [1] https://blog.ffwll.ch/2018/08/no-2d-in-drm.html
HelgeThis not only to support "old" hardware, but also modern small OLED and e-ink displays.There's a DRM driver for Repaper e-Ink displays. So it seems doable at least.Which uses an DRM_FORMAT_XRGB8888 intermediate, and drm_fb_xrgb8888_to_gray8() and repaper_gray8_to_mono_reversed() to convert from truecolor to monochrome. I guess that would work, as this is a slow e-ink display. Have fun as a text console ;-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature