[PATCH 0/5] drm: Provide helpers for programming gamma ramps and palettes

Thomas Zimmermann tzimmermann at suse.de
Mon May 12 11:48:00 UTC 2025



Am 09.05.25 um 10:23 schrieb Thomas Zimmermann:
> We have a number of drivers that offer simple gamma correction and
> palette modes. Depending on their hardware, the drivers process the
> provided data in similar ways. Unify the functionality in several
> DRM color-management helpers and update the drivers. The new helpers
> can load provided data or generate default data to load.
>
> With the drivers; ast, mgag200 ofdrm and vesadrm; gamma ramps are
> always 8 bit wide. For 24-bit color depth, 8-bit gamma ramps are being
> loaded to hardware as provided. For lower color depths the hardware
> often requires the gamma ramp to be reduced to the number of bits
> per pixel component, which the new helpers can do automatically. The
> exception is ast's hardware, which always uses 8-bit gamma ramps.

> The default gamma ramp uses a factor of 1.0 (as has been the case in
> existing the per-driver implementations). A later update could change
> this to the common value of 2.2 or a system-specific value.

That might not be such a great idea. See 
https://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&highlight_names=&date=2025-05-12&show_html=true

>
> Helpers for palettes either load an 8-bit palette or generate a default
> palette with increasing luminance. The goal for the default is to keep
> the display content visible with black at index 0. A later update could
> possibly load a system-specific default palette.
>
> Thomas Zimmermann (5):
>    drm: Add helpers for programming hardware gamma LUTs
>    drm/ast: Use helpers for programming gamma ramps and palettes
>    drm/mgag200: Use helpers for programming gamma ramps
>    drm/ofdrm: Use helpers for programming gamma ramps
>    drm/vesadrm: Use helpers for programming gamma ramps
>
>   drivers/gpu/drm/ast/ast_mode.c           |  69 +++++---
>   drivers/gpu/drm/drm_color_mgmt.c         | 206 +++++++++++++++++++++++
>   drivers/gpu/drm/mgag200/mgag200_drv.h    |   4 +-
>   drivers/gpu/drm/mgag200/mgag200_g200er.c |   4 +-
>   drivers/gpu/drm/mgag200/mgag200_g200ev.c |   4 +-
>   drivers/gpu/drm/mgag200/mgag200_g200se.c |   4 +-
>   drivers/gpu/drm/mgag200/mgag200_mode.c   |  78 ++++-----
>   drivers/gpu/drm/sysfb/ofdrm.c            |  78 ++++-----
>   drivers/gpu/drm/sysfb/vesadrm.c          | 100 ++++-------
>   include/drm/drm_color_mgmt.h             |  27 +++
>   10 files changed, 380 insertions(+), 194 deletions(-)
>
>
> base-commit: 842c3c276c106040f9b96d72b9df35ed6aed9ae9

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)



More information about the dri-devel mailing list