Hi Thomas, On 9/1/26 8:30 PM, Thomas Zimmermann wrote: > Hi > > Am 01.09.26 um 13:54 schrieb Thomas Zimmermann: >> Hi, >> >> thanks for the updated patch. >> >> Did you see the review from the Sashiko bot? The default value is >> PRE_MULTI, but the driver only supports COVERAGE. This needs to be changed >> as part of this patch. The default assignment is at [1] in >> __drm_atomic_helper_plane_state_init(). >> >> The ast driver needs to override drm_plane_funcs.atomic_create_state for the >> cursor plane to update the value pixel_blend to COVERAGE for new plane >> states. Same goes for vbox. > > Or even better: I just sent out a patch to pick the right default value for > the plane state. Let's first see what comes out of this. Patch is at [1]. > > [1] > https://lore.kernel.org/dri-devel/[email protected]/ > > Best regards > Thomas > Thanks! I did see the Sashiko bot report and had started on a v3 that overrides drm_plane_funcs.atomic_create_state in ast and vboxvideo (for vboxvideo on both the primary and cursor planes).
But your approach looks better to me: drm_plane_create_blend_mode_property() already picks DRM_MODE_BLEND_COVERAGE as the property default when PREMULTI is not supported, so initializing the plane state from the property default fixes this for every COVERAGE-only plane without per-driver boilerplate. I'll hold off on v3 until your patch has settled. Best regards, Qinyun >> >> [1] >> https://gitlab.freedesktop.org/drm/misc/kernel/-/blob/drm-misc-next/drivers/gpu/drm/drm_atomic_state_helper.c?ref_type=heads#L281 >> >> Best regards >> Thomas >> >> >> Am 01.09.26 um 10:32 schrieb Qinyun Tan: >>> Since commit 860e748bddcc ("drm: ensure blend mode supported if pixel >>> format with alpha exposed"), drm_mode_config_validate() warns when a >>> plane exposes an alpha pixel format but not the "pixel blend mode" >>> property. The ast cursor plane (ARGB4444, ARGB8888) trips this on >>> driver load: >>> >>> [PLANE:37:plane-1] pixel format with alpha exposed but blend mode not >>> setup >>> WARNING: drivers/gpu/drm/drm_mode_config.c:872 at >>> drm_mode_config_validate+0x48f/0x510 [drm] >>> ... >>> Call Trace: >>> drm_dev_register+0x1ce/0x290 [drm] >>> ast_pci_probe+0x19d/0x3f0 [ast] >>> local_pci_probe+0x41/0x90 >>> >>> Per Thomas Zimmermann's review, the ASPEED documentation describes the >>> hardware cursor as blending with straight (non-pre-multiplied) alpha, >>> which corresponds to DRM_MODE_BLEND_COVERAGE. Expose a "pixel blend >>> mode" property advertising only DRM_MODE_BLEND_COVERAGE to make the >>> hardware semantics explicit and silence the warning. >>> >>> Fixes: 860e748bddcc ("drm: ensure blend mode supported if pixel format with >>> alpha exposed") >>> Suggested-by: Thomas Zimmermann <[email protected]> >>> Signed-off-by: Qinyun Tan <[email protected]> >>> --- >>> v2: advertise DRM_MODE_BLEND_COVERAGE instead of PREMULTI, per Thomas >>> Zimmermann's review and the ASPEED documentation. >>> >>> drivers/gpu/drm/ast/ast_cursor.c | 3 +++ >>> 1 file changed, 3 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/ast/ast_cursor.c >>> b/drivers/gpu/drm/ast/ast_cursor.c >>> index fd19c45f2abe2..690d4cd1db5ee 100644 >>> --- a/drivers/gpu/drm/ast/ast_cursor.c >>> +++ b/drivers/gpu/drm/ast/ast_cursor.c >>> @@ -25,6 +25,7 @@ >>> #include <linux/sizes.h> >>> #include <drm/drm_atomic.h> >>> +#include <drm/drm_blend.h> >>> #include <drm/drm_damage_helper.h> >>> #include <drm/drm_format_helper.h> >>> #include <drm/drm_gem_atomic_helper.h> >>> @@ -355,6 +356,8 @@ int ast_cursor_plane_init(struct ast_device *ast) >>> } >>> drm_plane_helper_add(cursor_plane, &ast_cursor_plane_helper_funcs); >>> drm_plane_enable_fb_damage_clips(cursor_plane); >>> + drm_plane_create_blend_mode_property(cursor_plane, >>> + BIT(DRM_MODE_BLEND_COVERAGE)); >>> return 0; >>> } >> >
