Thread (17 messages) 17 messages, 4 authors, 2026-02-13

Re: [PATCH v4 2/4] drm: Add CRTC background color property

From: Nícolas F. R. A. Prado <hidden>
Date: 2026-01-26 18:24:20
Also in: dri-devel, linux-rockchip, lkml

On Fri, 2025-12-19 at 23:46 +0200, Cristian Ciocaltea wrote:
Some display controllers can be hardware programmed to show non-black
colors for pixels that are either not covered by any plane or are
exposed through transparent regions of higher planes.  This feature
can
help reduce memory bandwidth usage, e.g. in compositors managing a UI
with a solid background color while using smaller planes to render
the
remaining content.

To support this capability, introduce the BACKGROUND_COLOR standard
DRM
mode property, which can be attached to a CRTC through the
drm_crtc_attach_background_color_property() helper function.

Additionally, define a 64-bit ARGB format value to be built with the
help of a couple of dedicated DRM_ARGB64_PREP*() helpers.  Individual
color components can be extracted with desired precision using the
corresponding DRM_ARGB64_GET*() macros.

Co-developed-by: Matt Roper <redacted>
Signed-off-by: Matt Roper <redacted>
Signed-off-by: Cristian Ciocaltea <redacted>
---
 drivers/gpu/drm/drm_atomic_state_helper.c |  1 +
 drivers/gpu/drm/drm_atomic_uapi.c         |  4 ++
 drivers/gpu/drm/drm_blend.c               | 39 ++++++++++++++++--
 drivers/gpu/drm/drm_mode_config.c         |  6 +++
 include/drm/drm_blend.h                   |  4 +-
 include/drm/drm_crtc.h                    | 12 ++++++
 include/drm/drm_mode_config.h             |  5 +++
 include/uapi/drm/drm_mode.h               | 67
+++++++++++++++++++++++++++++++
 8 files changed, 133 insertions(+), 5 deletions(-)
You should also add a dump for this property in
drm_atomic_crtc_print_state().
quoted hunk ↗ jump to hunk
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 66278ffeebd6..d99a74258d3d 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -274,6 +274,18 @@ struct drm_crtc_state {
 	 */
 	struct drm_property_blob *gamma_lut;
 
+	/**
+	 * @background_color:
+	 *
+	 * RGB value representing the pipe's background color.  The
background
+	 * color (aka "canvas color") of a pipe is the color that
will be used
+	 * for pixels not covered by a plane, or covered by
transparent pixels
+	 * of a plane.  The value here should be built using
DRM_ARGB64_PREP*()
+	 * helpers, while the individual color components can be
extracted with
+	 * desired precision via the DRM_ARGB64_GET*() macros.
+	 */
+	u64 background_color;
+
/s/pipe/CRTC/ . pipe is an intel term but this is a generic CRTC
property.


Other than that,

Reviewed-by: Nícolas F. R. A. Prado <redacted>

-- 
Thanks,

Nícolas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help