* [PATCH v2] drm: rockchip: add drm_plane_create_blend_mode_property
@ 2026-09-09 21:20 Johan Jonker via B4 Relay
2026-09-09 21:29 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Johan Jonker via B4 Relay @ 2026-09-09 21:20 UTC (permalink / raw)
To: Sandy Huang, Heiko Stübner, Andy Yan, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, linux-rockchip, linux-arm-kernel, linux-kernel,
Johan Jonker
From: Johan Jonker <jbx6244@gmail.com>
A validate_blend_mode_for_alpha_formats() function was added that
fills the kernel log with warnings for Rockchip VOP version 1 SoCs.
Add a drm_plane_create_blend_mode_property() function as fix.
VOP version 1 doesn't support blending with a pixel alpha background
layer, only with a constant alpha. Advertise blending capability with
DRM_MODE_BLEND_PIXEL_NONE.
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
Changed V2:
Add comment line
---
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 0090d8ff0c79..0bc5b606f021 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1850,6 +1850,8 @@ static void vop_plane_add_properties(struct drm_plane *plane,
if (flags)
drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0,
DRM_MODE_ROTATE_0 | flags);
+ drm_plane_create_blend_mode_property(plane,
+ BIT(DRM_MODE_BLEND_PIXEL_NONE));
}
static int vop_create_crtc(struct vop *vop)
---
base-commit: 9d80aa4617b32f5054c5aa471d06b66704854935
change-id: 20260909-blend-c89d2c9f6984
Best regards,
--
Johan Jonker <jbx6244@gmail.com>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] drm: rockchip: add drm_plane_create_blend_mode_property
2026-09-09 21:20 [PATCH v2] drm: rockchip: add drm_plane_create_blend_mode_property Johan Jonker via B4 Relay
@ 2026-09-09 21:29 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-09-09 21:29 UTC (permalink / raw)
To: Johan Jonker; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The patch advertises DRM_MODE_BLEND_PIXEL_NONE as the only supported blend mode for all planes. However, the driver internally hardcodes pre-multiplied alpha blending for overlay planes, contradicting the advertised property and causing performance regressions in compositors.
--
commit 7635dc169cfab0b1a798ba56a1baaa9f77713842
Author: Johan Jonker <jbx6244@gmail.com>
drm: rockchip: add drm_plane_create_blend_mode_property
A validate_blend_mode_for_alpha_formats() function was added that
fills the kernel log with warnings for Rockchip VOP version 1 SoCs.
Add a drm_plane_create_blend_mode_property() function as fix.
VOP version 1 doesn't support blending with a pixel alpha background
layer, only with a constant alpha. Advertise blending capability with
DRM_MODE_BLEND_PIXEL_NONE.
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> index 0090d8ff0c79e..0bc5b606f0213 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> @@ -1850,6 +1850,8 @@ static void vop_plane_add_properties(struct drm_plane *plane,
> if (flags)
> drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0,
> DRM_MODE_ROTATE_0 | flags);
> + drm_plane_create_blend_mode_property(plane,
> + BIT(DRM_MODE_BLEND_PIXEL_NONE));
[Severity: High]
Does advertising only DRM_MODE_BLEND_PIXEL_NONE here cause a performance
regression for userspace compositors?
When compositors query this property and see only DRM_MODE_BLEND_PIXEL_NONE
is supported, they may assume the hardware cannot perform alpha blending at
all and fall back to software or GPU composition for translucent layers like
cursors and ARGB windows.
Also, does this contradict the blending mode currently programmed in the driver?
Looking at vop_plane_atomic_update(), the driver explicitly programs
pre-multiplied alpha blending for overlay planes if the format has alpha:
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:vop_plane_atomic_update() {
...
if (fb->format->has_alpha && win_index > 0) {
...
val = SRC_ALPHA_EN(1) | SRC_COLOR_M0(ALPHA_SRC_PRE_MUL) |
...
...
VOP_WIN_SET(vop, win, alpha_pre_mul, ALPHA_SRC_PRE_MUL);
...
}
}
Since the driver hardcodes pre-multiplied alpha for these planes, does this
violate the advertised API contract of only supporting
DRM_MODE_BLEND_PIXEL_NONE?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260909-blend-v2-1-37e27af4faee@gmail.com?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-09 21:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-09 21:20 [PATCH v2] drm: rockchip: add drm_plane_create_blend_mode_property Johan Jonker via B4 Relay
2026-09-09 21:29 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox