[RFC PATCH 00/10] Color Pipeline API w/ VKMS

Harry Wentland harry.wentland at amd.com
Fri Sep 8 15:02:25 UTC 2023

This is an early RFC set for a color pipeline API, along with a
sample implementation in VKMS. All the key API bits are here, but
I would like to show a larger variety of colorop types, as well
as examples of different possible color pipelines for a given plane.

The first patch is a doc patch that will explain the motivation
and reasoning behind this approach and give an overview over the

IGT tests can be found at

IGT patches are also being sent to the igt-dev mailing list.

libdrm changes to support the new IOCTLs are at

If you prefer a gitlab MR for review you can find it at

A slightly different approach for a Color Pipeline API was sent by
Uma Shankar and can be found at

The main difference is that his approach is not introducing a new DRM
core object but instead exposes color pipelines via blob properties.
There are pros and cons to both approaches.

Cc: Ville Syrjala <ville.syrjala at linux.intel.com>
Cc: Pekka Paalanen <pekka.paalanen at collabora.com>
Cc: Simon Ser <contact at emersion.fr>
Cc: Harry Wentland <harry.wentland at amd.com>
Cc: Melissa Wen <mwen at igalia.com>
Cc: Jonas Ådahl <jadahl at redhat.com>
Cc: Sebastian Wick <sebastian.wick at redhat.com>
Cc: Shashank Sharma <shashank.sharma at amd.com>
Cc: Alexander Goins <agoins at nvidia.com>
Cc: Joshua Ashton <joshua at froggi.es>
Cc: Michel Dänzer <mdaenzer at redhat.com>
Cc: Aleix Pol <aleixpol at kde.org>
Cc: Xaver Hugl <xaver.hugl at gmail.com>
Cc: Victoria Brekenfeld <victoria at system76.com>
Cc: Daniel Vetter <daniel at ffwll.ch>
Cc: Uma Shankar <uma.shankar at intel.com>
Cc: Naseer Ahmed <quic_naseer at quicinc.com>
Cc: Christopher Braga <quic_cbraga at quicinc.com>

Harry Wentland (10):
  drm/doc/rfc: Describe why prescriptive color pipeline is needed
  drm/colorop: Introduce new drm_colorop mode object
  drm/colorop: Add TYPE property
  drm/color: Add 1D Curve subtype
  drm/colorop: Add BYPASS property
  drm/colorop: Add NEXT property
  drm/colorop: Add atomic state print for drm_colorop
  drm/colorop: Add new IOCTLs to retrieve drm_colorop objects
  drm/plane: Add COLOR PIPELINE property
  drm/vkms: Add enumerated 1D curve colorop

 Documentation/gpu/rfc/color_pipeline.rst  | 278 ++++++++++++++++++
 drivers/gpu/drm/Makefile                  |   1 +
 drivers/gpu/drm/drm_atomic.c              | 154 ++++++++++
 drivers/gpu/drm/drm_atomic_helper.c       |  12 +
 drivers/gpu/drm/drm_atomic_state_helper.c |   5 +
 drivers/gpu/drm/drm_atomic_uapi.c         | 110 +++++++
 drivers/gpu/drm/drm_colorop.c             | 343 ++++++++++++++++++++++
 drivers/gpu/drm/drm_crtc_internal.h       |   4 +
 drivers/gpu/drm/drm_ioctl.c               |   5 +
 drivers/gpu/drm/drm_mode_config.c         |   7 +
 drivers/gpu/drm/drm_plane_helper.c        |   2 +-
 drivers/gpu/drm/vkms/Makefile             |   3 +-
 drivers/gpu/drm/vkms/vkms_colorop.c       | 108 +++++++
 drivers/gpu/drm/vkms/vkms_composer.c      | 316 ++++++++++++++++++++
 drivers/gpu/drm/vkms/vkms_drv.h           |   4 +
 drivers/gpu/drm/vkms/vkms_plane.c         |   2 +
 include/drm/drm_atomic.h                  |  82 ++++++
 include/drm/drm_atomic_uapi.h             |   3 +
 include/drm/drm_colorop.h                 | 233 +++++++++++++++
 include/drm/drm_mode_config.h             |  18 ++
 include/drm/drm_plane.h                   |  10 +
 include/uapi/drm/drm.h                    |   3 +
 include/uapi/drm/drm_mode.h               |  22 ++
 23 files changed, 1723 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/gpu/rfc/color_pipeline.rst
 create mode 100644 drivers/gpu/drm/drm_colorop.c
 create mode 100644 drivers/gpu/drm/vkms/vkms_colorop.c
 create mode 100644 include/drm/drm_colorop.h


More information about the wayland-devel mailing list